diff --git a/CHANGELOG.md b/CHANGELOG.md index 329fb2962..518d167ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Set up the language localization for the static portfolio analysis rule: _Asset Class Cluster Risks_ (Equity) +- Set up the language localization for the static portfolio analysis rule: _Asset Class Cluster Risks_ (Fixed Income) +- Set up the language localization for the static portfolio analysis rule: _Currency Cluster Risks_ (Investment) +- Set up the language localization for the static portfolio analysis rule: _Currency Cluster Risks_ (Investment: Base Currency) + ### Changed +- Extended the selector handling of the scraper configuration for more use cases - Extended the _AI_ service by an access to _OpenRouter_ (experimental) +- Changed `node main` to `exec node main` in the `entrypoint.sh` file to improve the container signal handling +- Improved the language localization for Catalan (`ca`) +- Improved the language localization for Dutch (`nl`) +- Improved the language localization for Español (`es`) +- Improved the language localization for German (`de`) +- Improved the language localization for Turkish (`tr`) + +### Fixed + +- Fixed an issue with the locale in the scraper configuration ## 2.174.0 - 2025-06-24 diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index 82524ef9b..8531cf95c 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -17,7 +17,8 @@ import { AdminData, AdminMarketData, AdminUsers, - EnhancedSymbolProfile + EnhancedSymbolProfile, + ScraperConfiguration } from '@ghostfolio/common/interfaces'; import { permissions } from '@ghostfolio/common/permissions'; import type { @@ -222,13 +223,12 @@ export class AdminController { @Post('market-data/:dataSource/:symbol/test') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) public async testMarketData( - @Body() data: { scraperConfiguration: string }, + @Body() data: { scraperConfiguration: ScraperConfiguration }, @Param('dataSource') dataSource: DataSource, @Param('symbol') symbol: string ): Promise<{ price: number }> { try { - const scraperConfiguration = JSON.parse(data.scraperConfiguration); - const price = await this.manualService.test(scraperConfiguration); + const price = await this.manualService.test(data.scraperConfiguration); if (price) { return { price }; diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index deb48b7bb..ed55198f0 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -648,7 +648,7 @@ export class AdminService { if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { where = { NOT: { - Analytics: null + analytics: null } }; } @@ -806,13 +806,13 @@ export class AdminService { if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { orderBy = { - Analytics: { + analytics: { lastRequestAt: 'desc' } }; where = { NOT: { - Analytics: null + analytics: null } }; } @@ -826,7 +826,7 @@ export class AdminService { _count: { select: { accounts: true, activities: true } }, - Analytics: { + analytics: { select: { activityCount: true, country: true, @@ -852,11 +852,11 @@ export class AdminService { }); return usersWithAnalytics.map( - ({ _count, Analytics, createdAt, id, role, subscriptions }) => { + ({ _count, analytics, createdAt, id, role, subscriptions }) => { const daysSinceRegistration = differenceInDays(new Date(), createdAt) + 1; - const engagement = Analytics - ? Analytics.activityCount / daysSinceRegistration + const engagement = analytics + ? analytics.activityCount / daysSinceRegistration : undefined; const subscription = @@ -873,9 +873,9 @@ export class AdminService { subscription, accountCount: _count.accounts || 0, activityCount: _count.activities || 0, - country: Analytics?.country, - dailyApiRequests: Analytics?.dataProviderGhostfolioDailyRequests || 0, - lastActivity: Analytics?.updatedAt + country: analytics?.country, + dailyApiRequests: analytics?.dataProviderGhostfolioDailyRequests || 0, + lastActivity: analytics?.updatedAt }; } ); diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index 9581807b9..327245ade 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -133,11 +133,11 @@ export class InfoService { AND: [ { NOT: { - Analytics: null + analytics: null } }, { - Analytics: { + analytics: { lastRequestAt: { gt: subDays(new Date(), aDays) } @@ -216,7 +216,7 @@ export class InfoService { AND: [ { NOT: { - Analytics: null + analytics: null } }, { diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts index ba818eb40..5c633817e 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts @@ -63,7 +63,7 @@ describe('PortfolioCalculator', () => { beforeAll(() => { activityDtos = loadActivityExportFile( - join(__dirname, '../../../../../../../test/import/ok-btceur.json') + join(__dirname, '../../../../../../../test/import/ok/btceur.json') ); }); diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts index cf07eff97..4e84ba05c 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts @@ -63,7 +63,7 @@ describe('PortfolioCalculator', () => { beforeAll(() => { activityDtos = loadActivityExportFile( - join(__dirname, '../../../../../../../test/import/ok-btcusd.json') + join(__dirname, '../../../../../../../test/import/ok/btcusd.json') ); }); diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts index 92a3e33ed..2d66695a2 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts @@ -65,7 +65,7 @@ describe('PortfolioCalculator', () => { activityDtos = loadActivityExportFile( join( __dirname, - '../../../../../../../test/import/ok-novn-buy-and-sell-partially.json' + '../../../../../../../test/import/ok/novn-buy-and-sell-partially.json' ) ); }); diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts index 3d4760be7..1a090496a 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts @@ -65,7 +65,7 @@ describe('PortfolioCalculator', () => { activityDtos = loadActivityExportFile( join( __dirname, - '../../../../../../../test/import/ok-novn-buy-and-sell.json' + '../../../../../../../test/import/ok/novn-buy-and-sell.json' ) ); }); diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index aed8e0acb..fc125656b 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1280,10 +1280,14 @@ export class PortfolioService { [ new AssetClassClusterRiskEquity( this.exchangeRateDataService, + this.i18nService, + userSettings.language, Object.values(holdings) ), new AssetClassClusterRiskFixedIncome( this.exchangeRateDataService, + this.i18nService, + userSettings.language, Object.values(holdings) ) ], @@ -1296,11 +1300,15 @@ export class PortfolioService { [ new CurrencyClusterRiskBaseCurrencyCurrentInvestment( this.exchangeRateDataService, - Object.values(holdings) + this.i18nService, + Object.values(holdings), + userSettings.language ), new CurrencyClusterRiskCurrentInvestment( this.exchangeRateDataService, - Object.values(holdings) + this.i18nService, + Object.values(holdings), + userSettings.language ) ], userSettings diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 46b46bce2..a229e36c4 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -182,7 +182,7 @@ export class UserService { Access, accessToken, accounts, - Analytics, + analytics, authChallenge, createdAt, id, @@ -198,7 +198,7 @@ export class UserService { accounts: { include: { platform: true } }, - Analytics: true, + analytics: true, Settings: true, subscriptions: true }, @@ -217,9 +217,9 @@ export class UserService { Settings: Settings as UserWithSettings['Settings'], thirdPartyId, updatedAt, - activityCount: Analytics?.activityCount, + activityCount: analytics?.activityCount, dataProviderGhostfolioDailyRequests: - Analytics?.dataProviderGhostfolioDailyRequests + analytics?.dataProviderGhostfolioDailyRequests }; if (user?.Settings) { @@ -272,20 +272,28 @@ export class UserService { {} ).getSettings(user.Settings.settings), AssetClassClusterRiskEquity: new AssetClassClusterRiskEquity( + undefined, + undefined, undefined, undefined ).getSettings(user.Settings.settings), AssetClassClusterRiskFixedIncome: new AssetClassClusterRiskFixedIncome( + undefined, + undefined, undefined, undefined ).getSettings(user.Settings.settings), CurrencyClusterRiskBaseCurrencyCurrentInvestment: new CurrencyClusterRiskBaseCurrencyCurrentInvestment( + undefined, + undefined, undefined, undefined ).getSettings(user.Settings.settings), CurrencyClusterRiskCurrentInvestment: new CurrencyClusterRiskCurrentInvestment( + undefined, + undefined, undefined, undefined ).getSettings(user.Settings.settings), @@ -380,7 +388,7 @@ export class UserService { frequency = 6; } - if (Analytics?.activityCount % frequency === 1) { + if (analytics?.activityCount % frequency === 1) { currentPermissions.push(permissions.enableSubscriptionInterstitial); } diff --git a/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts b/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts index b386f3e18..704cfdb85 100644 --- a/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts +++ b/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts @@ -1,6 +1,7 @@ import { RuleSettings } from '@ghostfolio/api/models/interfaces/rule-settings.interface'; import { Rule } from '@ghostfolio/api/models/rule'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; +import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { PortfolioPosition, UserSettings } from '@ghostfolio/common/interfaces'; export class AssetClassClusterRiskEquity extends Rule { @@ -8,9 +9,12 @@ export class AssetClassClusterRiskEquity extends Rule { public constructor( protected exchangeRateDataService: ExchangeRateDataService, + private i18nService: I18nService, + languageCode: string, holdings: PortfolioPosition[] ) { super(exchangeRateDataService, { + languageCode, key: AssetClassClusterRiskEquity.name }); @@ -40,26 +44,39 @@ export class AssetClassClusterRiskEquity extends Rule { if (equityValueRatio > ruleSettings.thresholdMax) { return { - evaluation: `The equity contribution of your current investment (${(equityValueRatio * 100).toPrecision(3)}%) exceeds ${( - ruleSettings.thresholdMax * 100 - ).toPrecision(3)}%`, + evaluation: this.i18nService.getTranslation({ + id: 'rule.assetClassClusterRiskEquity.false.max', + languageCode: this.getLanguageCode(), + placeholders: { + equityValueRatio: (equityValueRatio * 100).toPrecision(3), + thresholdMax: (ruleSettings.thresholdMax * 100).toPrecision(3) + } + }), value: false }; } else if (equityValueRatio < ruleSettings.thresholdMin) { return { - evaluation: `The equity contribution of your current investment (${(equityValueRatio * 100).toPrecision(3)}%) is below ${( - ruleSettings.thresholdMin * 100 - ).toPrecision(3)}%`, + evaluation: this.i18nService.getTranslation({ + id: 'rule.assetClassClusterRiskEquity.false.min', + languageCode: this.getLanguageCode(), + placeholders: { + equityValueRatio: (equityValueRatio * 100).toPrecision(3), + thresholdMin: (ruleSettings.thresholdMin * 100).toPrecision(3) + } + }), value: false }; } - return { - evaluation: `The equity contribution of your current investment (${(equityValueRatio * 100).toPrecision(3)}%) is within the range of ${( - ruleSettings.thresholdMin * 100 - ).toPrecision( - 3 - )}% and ${(ruleSettings.thresholdMax * 100).toPrecision(3)}%`, + evaluation: this.i18nService.getTranslation({ + id: 'rule.assetClassClusterRiskEquity.true', + languageCode: this.getLanguageCode(), + placeholders: { + equityValueRatio: (equityValueRatio * 100).toPrecision(3), + thresholdMax: (ruleSettings.thresholdMax * 100).toPrecision(3), + thresholdMin: (ruleSettings.thresholdMin * 100).toPrecision(3) + } + }), value: true }; } @@ -78,7 +95,10 @@ export class AssetClassClusterRiskEquity extends Rule { } public getName() { - return 'Equity'; + return this.i18nService.getTranslation({ + id: 'rule.assetClassClusterRiskEquity', + languageCode: this.getLanguageCode() + }); } public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings { diff --git a/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts b/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts index 918856c45..e0ca92311 100644 --- a/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts +++ b/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts @@ -1,6 +1,7 @@ import { RuleSettings } from '@ghostfolio/api/models/interfaces/rule-settings.interface'; import { Rule } from '@ghostfolio/api/models/rule'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; +import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { PortfolioPosition, UserSettings } from '@ghostfolio/common/interfaces'; export class AssetClassClusterRiskFixedIncome extends Rule { @@ -8,9 +9,12 @@ export class AssetClassClusterRiskFixedIncome extends Rule { public constructor( protected exchangeRateDataService: ExchangeRateDataService, + private i18nService: I18nService, + languageCode: string, holdings: PortfolioPosition[] ) { super(exchangeRateDataService, { + languageCode, key: AssetClassClusterRiskFixedIncome.name }); @@ -40,26 +44,39 @@ export class AssetClassClusterRiskFixedIncome extends Rule { if (fixedIncomeValueRatio > ruleSettings.thresholdMax) { return { - evaluation: `The fixed income contribution of your current investment (${(fixedIncomeValueRatio * 100).toPrecision(3)}%) exceeds ${( - ruleSettings.thresholdMax * 100 - ).toPrecision(3)}%`, + evaluation: this.i18nService.getTranslation({ + id: 'rule.assetClassClusterRiskFixedIncome.false.max', + languageCode: this.getLanguageCode(), + placeholders: { + fixedIncomeValueRatio: (fixedIncomeValueRatio * 100).toPrecision(3), + thresholdMax: (ruleSettings.thresholdMax * 100).toPrecision(3) + } + }), value: false }; } else if (fixedIncomeValueRatio < ruleSettings.thresholdMin) { return { - evaluation: `The fixed income contribution of your current investment (${(fixedIncomeValueRatio * 100).toPrecision(3)}%) is below ${( - ruleSettings.thresholdMin * 100 - ).toPrecision(3)}%`, + evaluation: this.i18nService.getTranslation({ + id: 'rule.assetClassClusterRiskFixedIncome.false.min', + languageCode: this.getLanguageCode(), + placeholders: { + fixedIncomeValueRatio: (fixedIncomeValueRatio * 100).toPrecision(3), + thresholdMin: (ruleSettings.thresholdMin * 100).toPrecision(3) + } + }), value: false }; } - return { - evaluation: `The fixed income contribution of your current investment (${(fixedIncomeValueRatio * 100).toPrecision(3)}%) is within the range of ${( - ruleSettings.thresholdMin * 100 - ).toPrecision( - 3 - )}% and ${(ruleSettings.thresholdMax * 100).toPrecision(3)}%`, + evaluation: this.i18nService.getTranslation({ + id: 'rule.assetClassClusterRiskFixedIncome.true', + languageCode: this.getLanguageCode(), + placeholders: { + fixedIncomeValueRatio: (fixedIncomeValueRatio * 100).toPrecision(3), + thresholdMax: (ruleSettings.thresholdMax * 100).toPrecision(3), + thresholdMin: (ruleSettings.thresholdMin * 100).toPrecision(3) + } + }), value: true }; } @@ -78,7 +95,10 @@ export class AssetClassClusterRiskFixedIncome extends Rule { } public getName() { - return 'Fixed Income'; + return this.i18nService.getTranslation({ + id: 'rule.assetClassClusterRiskFixedIncome', + languageCode: this.getLanguageCode() + }); } public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings { diff --git a/apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts b/apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts index 6de686a9e..0bf93e9b9 100644 --- a/apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts +++ b/apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts @@ -1,6 +1,7 @@ import { RuleSettings } from '@ghostfolio/api/models/interfaces/rule-settings.interface'; import { Rule } from '@ghostfolio/api/models/rule'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; +import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { PortfolioPosition, UserSettings } from '@ghostfolio/common/interfaces'; export class CurrencyClusterRiskBaseCurrencyCurrentInvestment extends Rule { @@ -8,10 +9,13 @@ export class CurrencyClusterRiskBaseCurrencyCurrentInvestment extends Rule { @@ -8,10 +9,13 @@ export class CurrencyClusterRiskCurrentInvestment extends Rule { public constructor( protected exchangeRateDataService: ExchangeRateDataService, - holdings: PortfolioPosition[] + private i18nService: I18nService, + holdings: PortfolioPosition[], + languageCode: string ) { super(exchangeRateDataService, { - key: CurrencyClusterRiskCurrentInvestment.name + key: CurrencyClusterRiskCurrentInvestment.name, + languageCode }); this.holdings = holdings; @@ -41,21 +45,29 @@ export class CurrencyClusterRiskCurrentInvestment extends Rule { if (maxValueRatio > ruleSettings.thresholdMax) { return { - evaluation: `Over ${ - ruleSettings.thresholdMax * 100 - }% of your current investment is in ${maxItem.groupKey} (${( - maxValueRatio * 100 - ).toPrecision(3)}%)`, + evaluation: this.i18nService.getTranslation({ + id: 'rule.currencyClusterRiskCurrentInvestment.false', + languageCode: this.getLanguageCode(), + placeholders: { + currency: maxItem.groupKey as string, + maxValueRatio: (maxValueRatio * 100).toPrecision(3), + thresholdMax: ruleSettings.thresholdMax * 100 + } + }), value: false }; } return { - evaluation: `The major part of your current investment is in ${ - maxItem?.groupKey ?? ruleSettings.baseCurrency - } (${(maxValueRatio * 100).toPrecision(3)}%) and does not exceed ${ - ruleSettings.thresholdMax * 100 - }%`, + evaluation: this.i18nService.getTranslation({ + id: 'rule.currencyClusterRiskCurrentInvestment.true', + languageCode: this.getLanguageCode(), + placeholders: { + currency: maxItem.groupKey as string, + maxValueRatio: (maxValueRatio * 100).toPrecision(3), + thresholdMax: ruleSettings.thresholdMax * 100 + } + }), value: true }; } @@ -73,7 +85,10 @@ export class CurrencyClusterRiskCurrentInvestment extends Rule { } public getName() { - return 'Investment'; + return this.i18nService.getTranslation({ + id: 'rule.currencyClusterRiskCurrentInvestment', + languageCode: this.getLanguageCode() + }); } public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings { diff --git a/apps/api/src/services/data-provider/manual/manual.service.ts b/apps/api/src/services/data-provider/manual/manual.service.ts index 66e625e47..1c1c4c2da 100644 --- a/apps/api/src/services/data-provider/manual/manual.service.ts +++ b/apps/api/src/services/data-provider/manual/manual.service.ts @@ -104,7 +104,7 @@ export class ManualService implements DataProviderInterface { } return historical; - } else if (selector === undefined || url === undefined) { + } else if (!selector || !url) { return {}; } @@ -162,7 +162,11 @@ export class ManualService implements DataProviderInterface { const symbolProfilesWithScraperConfigurationAndInstantMode = symbolProfiles.filter(({ scraperConfiguration }) => { - return scraperConfiguration?.mode === 'instant'; + return ( + scraperConfiguration?.mode === 'instant' && + scraperConfiguration?.selector && + scraperConfiguration?.url + ); }); const scraperResultPromises = @@ -282,14 +286,12 @@ export class ManualService implements DataProviderInterface { ) }); + let value: string; + if (response.headers.get('content-type')?.includes('application/json')) { const data = await response.json(); - const value = String( - jsonpath.query(data, scraperConfiguration.selector)[0] - ); - - return extractNumberFromString({ locale, value }); + value = String(jsonpath.query(data, scraperConfiguration.selector)[0]); } else { const $ = cheerio.load(await response.text()); @@ -299,10 +301,24 @@ export class ManualService implements DataProviderInterface { } catch {} } + value = $(scraperConfiguration.selector).first().text(); + + const lines = value?.split('\n') ?? []; + + const lineWithDigits = lines.find((line) => { + return /\d/.test(line); + }); + + if (lineWithDigits) { + value = lineWithDigits; + } + return extractNumberFromString({ locale, - value: $(scraperConfiguration.selector).first().text() + value }); } + + return extractNumberFromString({ locale, value }); } } diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index d9b344699..c52d9137d 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -11,6 +11,7 @@ import { AdminMarketDataDetails, AssetProfileIdentifier, LineChartItem, + ScraperConfiguration, User } from '@ghostfolio/common/interfaces'; import { translate } from '@ghostfolio/ui/i18n'; @@ -41,6 +42,7 @@ import { AssetClass, AssetSubClass, MarketData, + Prisma, SymbolProfile } from '@prisma/client'; import { format } from 'date-fns'; @@ -343,7 +345,10 @@ export class AssetProfileDialog implements OnDestroy, OnInit { public async onSubmitAssetProfileForm() { let countries = []; - let scraperConfiguration = {}; + let scraperConfiguration: ScraperConfiguration = { + selector: '', + url: '' + }; let sectors = []; let symbolMapping = {}; @@ -354,9 +359,9 @@ export class AssetProfileDialog implements OnDestroy, OnInit { try { scraperConfiguration = { defaultMarketPrice: - this.assetProfileForm.controls['scraperConfiguration'].controls[ + (this.assetProfileForm.controls['scraperConfiguration'].controls[ 'defaultMarketPrice' - ].value, + ].value as number) || undefined, headers: JSON.parse( this.assetProfileForm.controls['scraperConfiguration'].controls[ 'headers' @@ -365,10 +370,10 @@ export class AssetProfileDialog implements OnDestroy, OnInit { locale: this.assetProfileForm.controls['scraperConfiguration'].controls[ 'locale' - ].value, + ].value || undefined, mode: this.assetProfileForm.controls['scraperConfiguration'].controls[ 'mode' - ].value, + ].value as ScraperConfiguration['mode'], selector: this.assetProfileForm.controls['scraperConfiguration'].controls[ 'selector' @@ -377,6 +382,10 @@ export class AssetProfileDialog implements OnDestroy, OnInit { 'url' ].value }; + + if (!scraperConfiguration.selector || !scraperConfiguration.url) { + scraperConfiguration = undefined; + } } catch {} try { @@ -391,7 +400,6 @@ export class AssetProfileDialog implements OnDestroy, OnInit { const assetProfile: UpdateAssetProfileDto = { countries, - scraperConfiguration, sectors, symbolMapping, assetClass: this.assetProfileForm.get('assetClass').value, @@ -400,6 +408,8 @@ export class AssetProfileDialog implements OnDestroy, OnInit { currency: this.assetProfileForm.get('currency').value, isActive: this.assetProfileForm.get('isActive').value, name: this.assetProfileForm.get('name').value, + scraperConfiguration: + scraperConfiguration as unknown as Prisma.InputJsonObject, url: this.assetProfileForm.get('url').value || null }; @@ -493,11 +503,10 @@ export class AssetProfileDialog implements OnDestroy, OnInit { this.adminService .testMarketData({ dataSource: this.data.dataSource, - scraperConfiguration: JSON.stringify({ - defaultMarketPrice: - this.assetProfileForm.controls['scraperConfiguration'].controls[ - 'defaultMarketPrice' - ].value, + scraperConfiguration: { + defaultMarketPrice: this.assetProfileForm.controls[ + 'scraperConfiguration' + ].controls['defaultMarketPrice'].value as number, headers: JSON.parse( this.assetProfileForm.controls['scraperConfiguration'].controls[ 'headers' @@ -506,7 +515,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { locale: this.assetProfileForm.controls['scraperConfiguration'].controls[ 'locale' - ].value, + ].value || undefined, mode: this.assetProfileForm.controls['scraperConfiguration'].controls[ 'mode' ].value, @@ -517,7 +526,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { url: this.assetProfileForm.controls['scraperConfiguration'].controls[ 'url' ].value - }), + }, symbol: this.data.symbol }) .pipe( diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.html b/apps/client/src/app/components/admin-settings/admin-settings.component.html index cb93a1e13..af64f034b 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.component.html +++ b/apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -62,7 +62,7 @@ /> @if (isGhostfolioApiKeyValid === false) { new diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.scss b/apps/client/src/app/components/admin-settings/admin-settings.component.scss index 28bab4deb..4724d4817 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.component.scss +++ b/apps/client/src/app/components/admin-settings/admin-settings.component.scss @@ -9,13 +9,6 @@ } } - .badge { - &.new { - border: 1px solid var(--mat-table-row-item-outline-color); - padding-bottom: 0.05rem; - } - } - .mat-mdc-card { --mdc-outlined-card-container-color: whitesmoke; diff --git a/apps/client/src/app/pages/admin/admin-page.component.ts b/apps/client/src/app/pages/admin/admin-page.component.ts index 7c8ebfdae..f47771a31 100644 --- a/apps/client/src/app/pages/admin/admin-page.component.ts +++ b/apps/client/src/app/pages/admin/admin-page.component.ts @@ -33,7 +33,7 @@ export class AdminPageComponent implements OnDestroy, OnInit { iconName: 'settings-outline', label: internalRoutes.adminControl.subRoutes.settings.title + - '' + + '' + $localize`new` + '', routerLink: internalRoutes.adminControl.subRoutes.settings.routerLink diff --git a/apps/client/src/app/pages/i18n/i18n-page.html b/apps/client/src/app/pages/i18n/i18n-page.html index 20fa23f9a..232dabba3 100644 --- a/apps/client/src/app/pages/i18n/i18n-page.html +++ b/apps/client/src/app/pages/i18n/i18n-page.html @@ -28,6 +28,56 @@
  • Your net worth is managed by ${accountsLength} accounts
  • +
  • Equity
  • +
  • + The equity contribution of your current investment + (${equityValueRatio}%) exceeds ${thresholdMax}% +
  • +
  • + The equity contribution of your current investment + (${equityValueRatio}%) is below ${thresholdMin}% +
  • +
  • + The equity contribution of your current investment + (${equityValueRatio}%) is within the range of + ${thresholdMin}% and ${thresholdMax}% +
  • +
  • Fixed Income
  • +
  • + The fixed income contribution of your current investment + (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% +
  • +
  • + The fixed income contribution of your current investment + (${fixedIncomeValueRatio}%) is below + ${thresholdMin}% +
  • +
  • + The fixed income contribution of your current investment + (${fixedIncomeValueRatio}%) is within the range of + ${thresholdMin}% and ${thresholdMax}% +
  • +
  • + Investment: Base Currency +
  • +
  • + The major part of your current investment is not in your base currency + (${baseCurrencyValueRatio}% in ${baseCurrency}) +
  • +
  • + The major part of your current investment is in your base currency + (${baseCurrencyValueRatio}% in ${baseCurrency}) +
  • +
  • Investment
  • +
  • + Over ${thresholdMax}% of your current investment is in + ${currency} (${maxValueRatio}%) +
  • +
  • + The major part of your current investment is in ${currency} + (${maxValueRatio}%) and does not exceed + ${thresholdMax}% +
  • Emergency Fund: Set up
  • No emergency fund has been set up diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html index bba859fc2..f5a3612ac 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -90,13 +90,13 @@ >The following file formats are supported: CSV or JSON diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 6914f5f80..b93fdf3ec 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -404,7 +404,7 @@ license - llicències + llicencies kebab-case libs/common/src/lib/routes/routes.ts @@ -417,7 +417,7 @@ privacy-policy - política de privacitat + politica-de-privacitat kebab-case libs/common/src/lib/routes/routes.ts @@ -451,7 +451,7 @@ features - característiques + caracteristiques kebab-case libs/common/src/lib/routes/routes.ts @@ -1463,7 +1463,7 @@ El preu de mercat actual és apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -3808,7 +3808,7 @@ Programari de gestió patrimonial de codi obert apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -4829,7 +4829,7 @@ 4% Rule - 4% Rule + 4% Regla apps/client/src/app/pages/portfolio/fire/fire-page.html 40 @@ -4845,7 +4845,7 @@ Currency Cluster Risks - Currency Cluster Risks + Riscos del clúster de divises apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 93 @@ -4853,7 +4853,7 @@ Account Cluster Risks - Account Cluster Risks + Riscos del clúster de comptes apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 141 @@ -4861,7 +4861,7 @@ Pricing - Pricing + Preus apps/client/src/app/pages/pricing/pricing-page-routing.module.ts 13 @@ -4873,7 +4873,7 @@ Pricing Plans - Pricing Plans + Plans de preus apps/client/src/app/pages/pricing/pricing-page.html 4 @@ -4881,7 +4881,7 @@ Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover the costs of the hosting infrastructure and to fund ongoing development. - Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover the costs of the hosting infrastructure and to fund ongoing development. + La nostra oferta oficial al núvol Ghostfolio Premium és la manera més senzilla de començar. A causa del temps que estalvia, aquesta serà la millor opció per a la majoria de la gent. Els ingressos s’utilitzen per cobrir els costos de la infraestructura d’allotjament i per finançar el desenvolupament en curs. apps/client/src/app/pages/pricing/pricing-page.html 6 @@ -4897,7 +4897,7 @@ For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure. - For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure. + Per a inversors experts en tecnologia que prefereixen executar Ghostfolio a la seva pròpia infraestructura. apps/client/src/app/pages/pricing/pricing-page.html 24 @@ -4905,7 +4905,7 @@ Unlimited Transactions - Unlimited Transactions + Transaccions il·limitades apps/client/src/app/pages/pricing/pricing-page.html 31 @@ -4921,7 +4921,7 @@ Unlimited Accounts - Unlimited Accounts + Comptes il·limitats apps/client/src/app/pages/pricing/pricing-page.html 35 @@ -4937,7 +4937,7 @@ Portfolio Performance - Portfolio Performance + Rendiment de la cartera apps/client/src/app/pages/pricing/pricing-page.html 39 @@ -4953,7 +4953,7 @@ Data Import and Export - Data Import and Export + Importació i exportació de dades apps/client/src/app/pages/pricing/pricing-page.html 59 @@ -4969,7 +4969,7 @@ Community Support - Community Support + Suport comunitari apps/client/src/app/pages/pricing/pricing-page.html 76 @@ -4977,7 +4977,7 @@ Self-hosted, update manually. - Self-hosted, update manually. + S’allotja automàticament, actualitza manualment. apps/client/src/app/pages/pricing/pricing-page.html 80 @@ -4985,7 +4985,7 @@ Free - Free + Gratuït apps/client/src/app/pages/pricing/pricing-page.html 81 @@ -4997,7 +4997,7 @@ For new investors who are just getting started with trading. - For new investors who are just getting started with trading. + Per a nous inversors que acaben de començar a operar. apps/client/src/app/pages/pricing/pricing-page.html 114 @@ -5005,7 +5005,7 @@ Fully managed Ghostfolio cloud offering. - Fully managed Ghostfolio cloud offering. + Oferta al núvol Ghostfolio totalment gestionada. apps/client/src/app/pages/pricing/pricing-page.html 143 @@ -5017,7 +5017,7 @@ For ambitious investors who need the full picture of their financial assets. - For ambitious investors who need the full picture of their financial assets. + Per a inversors ambiciosos que necessiten la imatge completa dels seus actius financers. apps/client/src/app/pages/pricing/pricing-page.html 185 @@ -5025,7 +5025,7 @@ Email and Chat Support - Email and Chat Support + Suport per correu electrònic i xat apps/client/src/app/pages/pricing/pricing-page.html 265 @@ -5033,7 +5033,7 @@ One-time payment, no auto-renewal. - One-time payment, no auto-renewal. + Pagament únic, sense renovació automàtica. apps/client/src/app/pages/pricing/pricing-page.html 302 @@ -5041,7 +5041,7 @@ It’s free. - It’s free. + És gratuït. apps/client/src/app/pages/pricing/pricing-page.html 352 @@ -5057,7 +5057,7 @@ Currencies - Currencies + Monedes apps/client/src/app/pages/public/public-page.html 88 @@ -5065,7 +5065,7 @@ Continents - Continents + Continents apps/client/src/app/pages/public/public-page.html 124 @@ -5081,7 +5081,7 @@ Ghostfolio empowers you to keep track of your wealth. - Ghostfolio empowers you to keep track of your wealth. + Ghostfolio us permet fer un seguiment de la vostra riquesa. apps/client/src/app/pages/public/public-page.html 215 @@ -5089,7 +5089,7 @@ Registration - Registration + Inscripció libs/common/src/lib/routes/routes.ts 266 @@ -5097,7 +5097,7 @@ Continue with Internet Identity - Continue with Internet Identity + Continueu amb Internet Identity apps/client/src/app/pages/register/register-page.html 42 @@ -5105,7 +5105,7 @@ Continue with Google - Continue with Google + Continueu amb Google apps/client/src/app/pages/register/register-page.html 53 @@ -5113,7 +5113,7 @@ Copy to clipboard - Copy to clipboard + Copia al porta-retalls apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 88 @@ -6569,7 +6569,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7171,7 +7171,7 @@ Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7179,7 +7179,7 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7219,7 +7219,7 @@ end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7227,7 +7227,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7436,7 +7436,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7444,7 +7444,7 @@ An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7597,7 +7597,7 @@ Emergency Fund: Set up apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7605,7 +7605,7 @@ No emergency fund has been set up apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7613,7 +7613,7 @@ An emergency fund has been set up apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7621,7 +7621,7 @@ Fee Ratio apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7629,7 +7629,7 @@ The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7637,7 +7637,7 @@ The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7842,6 +7842,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 01cfda12a..a24402b61 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -5676,7 +5676,7 @@ Open Source Software für die Vermögensverwaltung apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5804,7 +5804,7 @@ Der aktuelle Marktpreis ist apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -6593,7 +6593,7 @@ Fehler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7195,7 +7195,7 @@ Verzögert apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7203,7 +7203,7 @@ Sofort apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7243,7 +7243,7 @@ Tagesende apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7251,7 +7251,7 @@ in Echtzeit apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7460,7 +7460,7 @@ () wird bereits verwendet. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7468,7 +7468,7 @@ Bei der Änderung zu () ist ein Fehler aufgetreten. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7597,7 +7597,7 @@ Notfallfonds: Einrichtung apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7605,7 +7605,7 @@ Es wurde kein Notfallfonds eingerichtet apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7613,7 +7613,7 @@ Ein Notfallfonds wurde eingerichtet apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7621,7 +7621,7 @@ Gebührenverhältnis apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7629,7 +7629,7 @@ Die Gebühren übersteigen ${thresholdMax}% deiner ursprünglichen Investition (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7637,7 +7637,7 @@ Die Gebühren übersteigen ${thresholdMax}% deiner ursprünglichen Investition (${feeRatio}%) nicht apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7842,6 +7842,131 @@ 19 + + Equity + Beteiligungskapital + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + Der Beteiligungskapitalanteil deiner aktuellen Investition (${equityValueRatio}%) übersteigt ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + Der Beteiligungskapitalanteil deiner aktuellen Investition (${equityValueRatio}%) liegt unter ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Der Beteiligungskapitalanteil deiner aktuellen Investition (${equityValueRatio}%) liegt im Bereich zwischen ${thresholdMin}% und ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Feste Einkünfte + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + Der Anteil der festen Einkünfte deiner aktuellen Investition (${fixedIncomeValueRatio}%) übersteigt ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + Der Anteil der festen Einkünfte deiner aktuellen Investition (${fixedIncomeValueRatio}%) liegt unter ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Der Anteil der festen Einkünfte deiner aktuellen Investition (${fixedIncomeValueRatio}%) liegt im Bereich zwischen ${thresholdMin}% und ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investition: Basiswährung + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + Der Hauptteil deiner aktuellen Investition ist nicht in deiner Basiswährung (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + Der Hauptteil deiner aktuellen Investition ist in deiner Basiswährung (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investition + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Über ${thresholdMax}% deiner aktuellen Investition ist in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + Der Hauptteil deiner aktuellen Investition ist in ${currency} (${maxValueRatio}%) und übersteigt ${thresholdMax}% nicht + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 6a442e524..ad10e9d9e 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -5653,7 +5653,7 @@ Software de gestión de patrimonio de código abierto apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5781,7 +5781,7 @@ El precio actual de mercado es apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -5850,7 +5850,7 @@ Market data is delayed for - Market data is delayed for + Los datos del mercado se retrasan por apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts 87 @@ -5874,7 +5874,7 @@ Absolute Asset Performance - Absolute Asset Performance + Rendimiento absoluto de los activos apps/client/src/app/pages/portfolio/analysis/analysis-page.html 102 @@ -5882,7 +5882,7 @@ Asset Performance - Asset Performance + Rendimiento de activos apps/client/src/app/pages/portfolio/analysis/analysis-page.html 123 @@ -5890,7 +5890,7 @@ Absolute Currency Performance - Absolute Currency Performance + Rendimiento absoluto de divisas apps/client/src/app/pages/portfolio/analysis/analysis-page.html 145 @@ -5898,7 +5898,7 @@ Currency Performance - Currency Performance + Rendimiento de la moneda apps/client/src/app/pages/portfolio/analysis/analysis-page.html 169 @@ -5906,7 +5906,7 @@ Absolute Net Performance - Absolute Net Performance + Rendimiento neto absoluto apps/client/src/app/pages/portfolio/analysis/analysis-page.html 192 @@ -5914,7 +5914,7 @@ Net Performance - Net Performance + Rendimiento neto apps/client/src/app/pages/portfolio/analysis/analysis-page.html 211 @@ -5922,7 +5922,7 @@ Week to date - Week to date + Semana hasta la fecha libs/ui/src/lib/assistant/assistant.component.ts 343 @@ -5930,7 +5930,7 @@ WTD - WTD + WTD libs/ui/src/lib/assistant/assistant.component.ts 343 @@ -5938,7 +5938,7 @@ Month to date - Month to date + Mes hasta la fecha libs/ui/src/lib/assistant/assistant.component.ts 347 @@ -5946,7 +5946,7 @@ MTD - MTD + MTD libs/ui/src/lib/assistant/assistant.component.ts 347 @@ -5954,7 +5954,7 @@ Year to date - Year to date + El año hasta la fecha libs/ui/src/lib/assistant/assistant.component.ts 351 @@ -5974,7 +5974,7 @@ Oops! A data provider is experiencing the hiccups. - Oops! A data provider is experiencing the hiccups. + ¡Ups! Un proveedor de datos está experimentando problemas. apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html 8 @@ -6022,7 +6022,7 @@ Data Gathering - Data Gathering + Recopilación de datos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 541 @@ -6066,7 +6066,7 @@ self-hosting - auto alojado + auto-alojado kebab-case libs/common/src/lib/routes/routes.ts @@ -6570,7 +6570,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7172,7 +7172,7 @@ Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7180,7 +7180,7 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7220,7 +7220,7 @@ end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7228,7 +7228,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7437,7 +7437,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7445,7 +7445,7 @@ An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7598,7 +7598,7 @@ Fondo de Emergencia: Establecer apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7606,7 +7606,7 @@ No se ha creado ningún fondo de emergencia apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7614,7 +7614,7 @@ Se ha creado un fondo de emergencia apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7622,7 +7622,7 @@ Relación de tarifas apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7630,7 +7630,7 @@ Las tarifas superan el ${thresholdMax}% de su inversión inicial (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7638,7 +7638,7 @@ Las tarifas no superan el ${thresholdMax}% de su inversión inicial (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7843,6 +7843,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 60148b120..feba67a5d 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -5652,7 +5652,7 @@ Logiciel libre de Gestion de Patrimoine apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5780,7 +5780,7 @@ Le prix actuel du marché est apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -6569,7 +6569,7 @@ Erreur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7171,7 +7171,7 @@ Paresseux apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7179,7 +7179,7 @@ Instantané apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7219,7 +7219,7 @@ fin de journée apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7227,7 +7227,7 @@ temps réel apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7436,7 +7436,7 @@ () est déjà utilisé. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7444,7 +7444,7 @@ Une erreur s’est produite lors de la mise à jour vers (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7597,7 +7597,7 @@ Fonds d’urgence : Mise en place apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7605,7 +7605,7 @@ Aucun fonds d’urgence n’a été mis en place apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7613,7 +7613,7 @@ Un fonds d’urgence a été mis en place apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7621,7 +7621,7 @@ Ratio de frais apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7629,7 +7629,7 @@ Les frais dépassent ${thresholdMax}% de votre investissement initial (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7637,7 +7637,7 @@ Les frais ne dépassent pas ${thresholdMax}% de votre investissement initial (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7842,6 +7842,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 6b196879a..01a935490 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -5653,7 +5653,7 @@ Software Open Source per la gestione della tua ricchezza apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5781,7 +5781,7 @@ L’attuale prezzo di mercato è apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -6570,7 +6570,7 @@ Errore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7172,7 +7172,7 @@ Pigro apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7180,7 +7180,7 @@ Istantaneo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7220,7 +7220,7 @@ fine giornata apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7228,7 +7228,7 @@ in tempo reale apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7437,7 +7437,7 @@ () e gia in uso. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7445,7 +7445,7 @@ Si è verificato un errore durante l’aggiornamento di (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7598,7 +7598,7 @@ Fondo di emergenza: istituito apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7606,7 +7606,7 @@ Non è stato istituito alcun fondo di emergenza apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7614,7 +7614,7 @@ È stato istituito un fondo di emergenza apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7622,7 +7622,7 @@ Rapporto tariffario apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7630,7 +7630,7 @@ Le commissioni superano il ${thresholdMax}% del tuo investimento iniziale (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7638,7 +7638,7 @@ Le commissioni non superano il ${thresholdMax}% del tuo investimento iniziale (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7843,6 +7843,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 276925ab8..af8b2c704 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -5652,7 +5652,7 @@ Open Source Vermogensbeheer Software apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5780,7 +5780,7 @@ De huidige markt waarde is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -5945,7 +5945,7 @@ MTD - MTD + MTD libs/ui/src/lib/assistant/assistant.component.ts 347 @@ -6065,7 +6065,7 @@ self-hosting - zelf hosten + zelf-hosten kebab-case libs/common/src/lib/routes/routes.ts @@ -6569,7 +6569,7 @@ Fout apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7171,7 +7171,7 @@ Lui apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7179,7 +7179,7 @@ Direct apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7219,7 +7219,7 @@ eind van de dag apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7227,7 +7227,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7436,7 +7436,7 @@ () is al in gebruik. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7444,7 +7444,7 @@ Er is een fout opgetreden tijdens het updaten naar (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7578,7 +7578,7 @@ Demo user account has been synced. - Demo user account has been synced. + Demo-gebruikersaccount is gesynchroniseerd. apps/client/src/app/components/admin-overview/admin-overview.component.ts 223 @@ -7586,7 +7586,7 @@ Sync Demo User Account - Sync Demo User Account + Synchroniseer demo-gebruikersaccount apps/client/src/app/components/admin-overview/admin-overview.html 181 @@ -7594,55 +7594,55 @@ Emergency Fund: Set up - Emergency Fund: Set up + Noodfonds: opgezet apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 No emergency fund has been set up - No emergency fund has been set up + Er is geen noodfonds ingesteld apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 An emergency fund has been set up - An emergency fund has been set up + Er is een noodfonds opgericht apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 Fee Ratio - Fee Ratio + Vergoedingsverhouding apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%) - The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%) + De kosten overschrijden ${thresholdMax}% van uw initiële investering (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%) - The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%) + De kosten bedragen niet meer dan ${thresholdMax}% van uw initiële investering (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 Name - Name + Naam libs/ui/src/lib/benchmark/benchmark.component.html 11 @@ -7650,7 +7650,7 @@ Find holding or page... - Find holding or page... + Zoek holding of pagina... libs/ui/src/lib/assistant/assistant.component.ts 154 @@ -7658,7 +7658,7 @@ Quick Links - Quick Links + Snelle koppelingen libs/ui/src/lib/assistant/assistant.html 43 @@ -7666,7 +7666,7 @@ Asset Profiles - Asset Profiles + Activaprofielen libs/ui/src/lib/assistant/assistant.html 97 @@ -7674,7 +7674,7 @@ Live Demo - Live Demo + Live-demo libs/common/src/lib/routes/routes.ts 216 @@ -7690,7 +7690,7 @@ Single Account - Single Account + Eén account apps/client/src/app/pages/i18n/i18n-page.html 24 @@ -7698,7 +7698,7 @@ Your net worth is managed by a single account - Your net worth is managed by a single account + Uw nettowaarde wordt beheerd door één enkele account apps/client/src/app/pages/i18n/i18n-page.html 25 @@ -7706,7 +7706,7 @@ Your net worth is managed by ${accountsLength} accounts - Your net worth is managed by ${accountsLength} accounts + Uw nettowaarde wordt beheerd door ${accountsLength}-accounts apps/client/src/app/pages/i18n/i18n-page.html 28 @@ -7714,7 +7714,7 @@ Holdings - Holdings + Bezit libs/ui/src/lib/assistant/assistant.html 68 @@ -7735,7 +7735,7 @@ markets - markets + markten kebab-case libs/common/src/lib/routes/routes.ts @@ -7756,7 +7756,7 @@ Get Access - Get Access + Krijg toegang apps/client/src/app/components/admin-settings/admin-settings.component.html 27 @@ -7764,7 +7764,7 @@ Learn more - Learn more + Meer informatie apps/client/src/app/components/admin-settings/admin-settings.component.html 38 @@ -7772,7 +7772,7 @@ new - new + nieuw apps/client/src/app/components/admin-settings/admin-settings.component.html 67 @@ -7780,7 +7780,7 @@ Limited Offer! - Limited Offer! + Beperkt aanbod! apps/client/src/app/pages/pricing/pricing-page.html 311 @@ -7796,7 +7796,7 @@ Available - Available + Beschikbaar apps/client/src/app/components/data-provider-status/data-provider-status.component.html 3 @@ -7804,7 +7804,7 @@ Unavailable - Unavailable + Niet beschikbaar apps/client/src/app/components/data-provider-status/data-provider-status.component.html 5 @@ -7812,7 +7812,7 @@ new - new + nieuw apps/client/src/app/pages/admin/admin-page.component.ts 37 @@ -7820,7 +7820,7 @@ Investment - Investment + Investering apps/client/src/app/pages/i18n/i18n-page.html 14 @@ -7828,7 +7828,7 @@ Over ${thresholdMax}% of your current investment is at ${maxAccountName} (${maxInvestmentRatio}%) - Over ${thresholdMax}% of your current investment is at ${maxAccountName} (${maxInvestmentRatio}%) + Meer dan ${thresholdMax}% van uw huidige investering bedraagt ​​${maxAccountName} (${maxInvestmentRatio}%) apps/client/src/app/pages/i18n/i18n-page.html 15 @@ -7836,12 +7836,137 @@ The major part of your current investment is at ${maxAccountName} (${maxInvestmentRatio}%) and does not exceed ${thresholdMax}% - The major part of your current investment is at ${maxAccountName} (${maxInvestmentRatio}%) and does not exceed ${thresholdMax}% + Het grootste deel van uw huidige investering bedraagt ​​${maxAccountName} (${maxInvestmentRatio}%) en bedraagt ​​niet meer dan ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 19 + + Equity + Eigen vermogen + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 2339475d4..5825595a1 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -3443,7 +3443,7 @@ Oprogramowanie Open Source do Zarządzania Majątkiem apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5780,7 +5780,7 @@ Obecna cena rynkowa wynosi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -6569,7 +6569,7 @@ Błąd apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7171,7 +7171,7 @@ Leniwy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7179,7 +7179,7 @@ Natychmiastowy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7219,7 +7219,7 @@ koniec dnia apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7227,7 +7227,7 @@ w czasie rzeczywistym apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7396,7 +7396,7 @@ terms-of-service - warunki-świadczenia-usług + warunki-swiadczenia-uslug kebab-case libs/common/src/lib/routes/routes.ts @@ -7436,7 +7436,7 @@ () jest już w użyciu. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7444,7 +7444,7 @@ Wystąpił błąd podczas aktualizacji do (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7565,7 +7565,7 @@ changelog - dziennik zmian + dziennik-zmian kebab-case libs/common/src/lib/routes/routes.ts @@ -7597,7 +7597,7 @@ Fundusz awaryjny: Utworzenie apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7605,7 +7605,7 @@ Nie utworzono funduszu awaryjnego apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7613,7 +7613,7 @@ Utworzono fundusz awaryjny apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7621,7 +7621,7 @@ Stosunek opłat apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7629,7 +7629,7 @@ Opłaty przekraczają ${thresholdMax}% początkowej inwestycji (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7637,7 +7637,7 @@ Opłaty nie przekraczają ${thresholdMax}% początkowej inwestycji (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7842,6 +7842,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index f755a694c..049ad4ab7 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -5652,7 +5652,7 @@ Software de gerenciamento de patrimônio de código aberto apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5780,7 +5780,7 @@ O preço de mercado atual é apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -6569,7 +6569,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7171,7 +7171,7 @@ Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7179,7 +7179,7 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7219,7 +7219,7 @@ end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7227,7 +7227,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7396,7 +7396,7 @@ terms-of-service - termos-de-serviço + termos-de-servico kebab-case libs/common/src/lib/routes/routes.ts @@ -7436,7 +7436,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7444,7 +7444,7 @@ An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7597,7 +7597,7 @@ Emergency Fund: Set up apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7605,7 +7605,7 @@ No emergency fund has been set up apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7613,7 +7613,7 @@ An emergency fund has been set up apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7621,7 +7621,7 @@ Fee Ratio apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7629,7 +7629,7 @@ The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7637,7 +7637,7 @@ The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7842,6 +7842,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index cf5f1f3d5..fa1d03d5d 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -4200,7 +4200,7 @@ open-source-alternative-to - Açık kaynak alternatif + acik-kaynak-alternatif kebab-case libs/common/src/lib/routes/routes.ts @@ -5652,7 +5652,7 @@ Açık Kaynak Varlık Yönetim Yazılımı apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5780,7 +5780,7 @@ Şu anki piyasa fiyatı apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -6065,7 +6065,7 @@ self-hosting - Kendini-Barındırma + kendini-barindirma kebab-case libs/common/src/lib/routes/routes.ts @@ -6569,7 +6569,7 @@ Hata apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -6934,7 +6934,7 @@ guides - kılavuzlar + kilavuzlar kebab-case libs/common/src/lib/routes/routes.ts @@ -6947,7 +6947,7 @@ glossary - sözlük + sozluk kebab-case libs/common/src/lib/routes/routes.ts @@ -7171,7 +7171,7 @@ Tembel apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7179,7 +7179,7 @@ Anında apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7219,7 +7219,7 @@ gün sonu apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7227,7 +7227,7 @@ gerçek zamanlı apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7396,7 +7396,7 @@ terms-of-service - Hizmet Koşulları + hizmet-kosullari kebab-case libs/common/src/lib/routes/routes.ts @@ -7436,7 +7436,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7444,7 +7444,7 @@ Güncelleştirilirken bir hata oluştu (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7597,7 +7597,7 @@ Acil Durum Fonu: Kurulum apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7605,7 +7605,7 @@ Acil durum fonu oluşturulmadı apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7613,7 +7613,7 @@ Acil durum fonu kuruldu apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7621,7 +7621,7 @@ Ücret Oranı apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7629,7 +7629,7 @@ Ücretler, ilk yatırımınızın %${thresholdMax} kadarını aşıyor (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7637,7 +7637,7 @@ Ücretler, ilk yatırımınızın %${thresholdMax}’ını (${feeRatio}%) aşmaz apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7674,7 +7674,7 @@ Live Demo - Live Demo + Canlı Demo libs/common/src/lib/routes/routes.ts 216 @@ -7682,7 +7682,7 @@ Open Source Alternative to - Open Source Alternative to + Açık Kaynak Alternatifi libs/common/src/lib/routes/routes.ts 306 @@ -7690,7 +7690,7 @@ Single Account - Single Account + Tek Hesap apps/client/src/app/pages/i18n/i18n-page.html 24 @@ -7698,7 +7698,7 @@ Your net worth is managed by a single account - Your net worth is managed by a single account + Net değeriniz tek bir hesap tarafından yönetiliyor apps/client/src/app/pages/i18n/i18n-page.html 25 @@ -7706,7 +7706,7 @@ Your net worth is managed by ${accountsLength} accounts - Your net worth is managed by ${accountsLength} accounts + Net değeriniz ${accountsLength} hesaplar tarafından yönetiliyor apps/client/src/app/pages/i18n/i18n-page.html 28 @@ -7714,7 +7714,7 @@ Holdings - Holdings + Holdingler libs/ui/src/lib/assistant/assistant.html 68 @@ -7722,7 +7722,7 @@ personal-finance-tools - personal-finance-tools + kisisel-finans-araclari kebab-case libs/common/src/lib/routes/routes.ts @@ -7735,7 +7735,7 @@ markets - markets + pazarlar kebab-case libs/common/src/lib/routes/routes.ts @@ -7842,6 +7842,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index adc1da6ee..b88220fd7 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -1355,7 +1355,7 @@ Помилка apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -1363,7 +1363,7 @@ Поточна ринкова ціна apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -3796,7 +3796,7 @@ self-hosting - самохостинг + samohosting kebab-case libs/common/src/lib/routes/routes.ts @@ -4016,7 +4016,7 @@ Програмне забезпечення управління багатством з відкритим кодом apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5511,7 +5511,7 @@ open-source-alternative-to - відкритий-альтернативний-для + vidkrytyi-alternatyvnyi-dlia kebab-case libs/common/src/lib/routes/routes.ts @@ -7171,7 +7171,7 @@ Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7179,7 +7179,7 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7219,7 +7219,7 @@ end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7227,7 +7227,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7436,7 +7436,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7444,7 +7444,7 @@ An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7597,7 +7597,7 @@ Emergency Fund: Set up apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7605,7 +7605,7 @@ No emergency fund has been set up apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7613,7 +7613,7 @@ An emergency fund has been set up apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7621,7 +7621,7 @@ Fee Ratio apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7629,7 +7629,7 @@ The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7637,7 +7637,7 @@ The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7842,6 +7842,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 95bd5aac2..e3274644a 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -3185,7 +3185,7 @@ Open Source Wealth Management Software apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5263,7 +5263,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -5951,7 +5951,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -6501,14 +6501,14 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -6522,14 +6522,14 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -6713,14 +6713,14 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -6841,42 +6841,42 @@ Emergency Fund: Set up apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 No emergency fund has been set up apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 An emergency fund has been set up apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 Fee Ratio apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7050,6 +7050,116 @@ 19 + + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 11233248c..90fa84b27 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -3452,7 +3452,7 @@ 开源财富管理软件 apps/client/src/app/pages/i18n/i18n-page.html - 47 + 97 @@ -5789,7 +5789,7 @@ 当前市场价格为 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 536 + 545 @@ -6570,7 +6570,7 @@ 错误 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 527 + 536 @@ -7172,7 +7172,7 @@ 延迟 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7180,7 +7180,7 @@ 即时 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7220,7 +7220,7 @@ 收盘 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 138 + 140 @@ -7228,7 +7228,7 @@ 实时 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 142 + 144 @@ -7437,7 +7437,7 @@ () 已在使用中。 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 462 + 472 @@ -7445,7 +7445,7 @@ 在更新到 () 时发生错误。 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 470 + 480 @@ -7598,7 +7598,7 @@ 应急资金:设置 apps/client/src/app/pages/i18n/i18n-page.html - 31 + 81 @@ -7606,7 +7606,7 @@ 未设置应急资金 apps/client/src/app/pages/i18n/i18n-page.html - 32 + 82 @@ -7614,7 +7614,7 @@ 已设置应急资金 apps/client/src/app/pages/i18n/i18n-page.html - 35 + 85 @@ -7622,7 +7622,7 @@ 费率 apps/client/src/app/pages/i18n/i18n-page.html - 38 + 88 @@ -7630,7 +7630,7 @@ 费用超过了您初始投资的 ${thresholdMax}% (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 39 + 89 @@ -7638,7 +7638,7 @@ 费用未超过您初始投资的 ${thresholdMax}% (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html - 43 + 93 @@ -7843,6 +7843,131 @@ 19 + + Equity + Equity + + apps/client/src/app/pages/i18n/i18n-page.html + 31 + + + + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 32 + + + + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 36 + + + + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 40 + + + + Fixed Income + Fixed Income + + apps/client/src/app/pages/i18n/i18n-page.html + 45 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 46 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% + + apps/client/src/app/pages/i18n/i18n-page.html + 50 + + + + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 55 + + + + Investment: Base Currency + Investment: Base Currency + + apps/client/src/app/pages/i18n/i18n-page.html + 60 + + + + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 63 + + + + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) + + apps/client/src/app/pages/i18n/i18n-page.html + 67 + + + + Investment + Investment + + apps/client/src/app/pages/i18n/i18n-page.html + 71 + + + + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) + + apps/client/src/app/pages/i18n/i18n-page.html + 72 + + + + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% + + apps/client/src/app/pages/i18n/i18n-page.html + 76 + + + + start + start + kebab-case + + libs/common/src/lib/routes/routes.ts + 316 + + + libs/common/src/lib/routes/routes.ts + 317 + + diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 71cf6f2dc..440886903 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -9,4 +9,4 @@ echo "Seeding the database" npx prisma db seed echo "Starting the server" -node main +exec node main diff --git a/libs/common/src/lib/routes/routes.ts b/libs/common/src/lib/routes/routes.ts index 65d63dce9..ee58d12a7 100644 --- a/libs/common/src/lib/routes/routes.ts +++ b/libs/common/src/lib/routes/routes.ts @@ -312,7 +312,8 @@ export const publicRoutes = { title: $localize`Resources` }, start: { - path: 'start', - routerLink: ['/start'] + excludeFromSitemap: true, + path: $localize`:kebab-case@@routes.start:start`, + routerLink: ['/' + $localize`:kebab-case@@routes.start:start`] } }; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index f1950569d..3d821987d 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -247,6 +247,7 @@ model User { accessToken String? accounts Account[] activities Order[] + analytics Analytics? apiKeys ApiKey[] authChallenge String? createdAt DateTime @default(now()) @@ -260,7 +261,6 @@ model User { watchlist SymbolProfile[] @relation("UserWatchlist") Access Access[] @relation("accessGet") AccessGive Access[] @relation("accessGive") - Analytics Analytics? AuthDevice AuthDevice[] Settings Settings? SymbolProfile SymbolProfile[] diff --git a/test/import/invalid-currency.csv b/test/import/not-ok/invalid-currency.csv similarity index 100% rename from test/import/invalid-currency.csv rename to test/import/not-ok/invalid-currency.csv diff --git a/test/import/invalid-data-source.json b/test/import/not-ok/invalid-data-source.json similarity index 100% rename from test/import/invalid-data-source.json rename to test/import/not-ok/invalid-data-source.json diff --git a/test/import/invalid-date-before-min.json b/test/import/not-ok/invalid-date-before-min.json similarity index 100% rename from test/import/invalid-date-before-min.json rename to test/import/not-ok/invalid-date-before-min.json diff --git a/test/import/invalid-date-yy.csv b/test/import/not-ok/invalid-date-yy.csv similarity index 100% rename from test/import/invalid-date-yy.csv rename to test/import/not-ok/invalid-date-yy.csv diff --git a/test/import/invalid-date.json b/test/import/not-ok/invalid-date.json similarity index 100% rename from test/import/invalid-date.json rename to test/import/not-ok/invalid-date.json diff --git a/test/import/invalid-fee.csv b/test/import/not-ok/invalid-fee.csv similarity index 100% rename from test/import/invalid-fee.csv rename to test/import/not-ok/invalid-fee.csv diff --git a/test/import/invalid-multi-line.csv b/test/import/not-ok/invalid-multi-line.csv similarity index 100% rename from test/import/invalid-multi-line.csv rename to test/import/not-ok/invalid-multi-line.csv diff --git a/test/import/invalid-symbol-btc-usd.csv b/test/import/not-ok/invalid-symbol-btc-usd.csv similarity index 100% rename from test/import/invalid-symbol-btc-usd.csv rename to test/import/not-ok/invalid-symbol-btc-usd.csv diff --git a/test/import/invalid-symbol.csv b/test/import/not-ok/invalid-symbol.csv similarity index 100% rename from test/import/invalid-symbol.csv rename to test/import/not-ok/invalid-symbol.csv diff --git a/test/import/invalid-symbol.json b/test/import/not-ok/invalid-symbol.json similarity index 100% rename from test/import/invalid-symbol.json rename to test/import/not-ok/invalid-symbol.json diff --git a/test/import/unavailable-exchange-rate.json b/test/import/not-ok/unavailable-exchange-rate.json similarity index 100% rename from test/import/unavailable-exchange-rate.json rename to test/import/not-ok/unavailable-exchange-rate.json diff --git a/test/import/unexpected-format.json b/test/import/not-ok/unexpected-format.json similarity index 100% rename from test/import/unexpected-format.json rename to test/import/not-ok/unexpected-format.json diff --git a/test/import/ok-500-activities.json b/test/import/ok/500-activities.json similarity index 100% rename from test/import/ok-500-activities.json rename to test/import/ok/500-activities.json diff --git a/test/import/ok-btceur.json b/test/import/ok/btceur.json similarity index 100% rename from test/import/ok-btceur.json rename to test/import/ok/btceur.json diff --git a/test/import/ok-btcusd.csv b/test/import/ok/btcusd.csv similarity index 100% rename from test/import/ok-btcusd.csv rename to test/import/ok/btcusd.csv diff --git a/test/import/ok-btcusd.json b/test/import/ok/btcusd.json similarity index 100% rename from test/import/ok-btcusd.json rename to test/import/ok/btcusd.json diff --git a/test/import/ok-derived-currency.json b/test/import/ok/derived-currency.json similarity index 100% rename from test/import/ok-derived-currency.json rename to test/import/ok/derived-currency.json diff --git a/test/import/ok-novn-buy-and-sell-partially.json b/test/import/ok/novn-buy-and-sell-partially.json similarity index 100% rename from test/import/ok-novn-buy-and-sell-partially.json rename to test/import/ok/novn-buy-and-sell-partially.json diff --git a/test/import/ok-novn-buy-and-sell.json b/test/import/ok/novn-buy-and-sell.json similarity index 100% rename from test/import/ok-novn-buy-and-sell.json rename to test/import/ok/novn-buy-and-sell.json diff --git a/test/import/ok.csv b/test/import/ok/sample.csv similarity index 100% rename from test/import/ok.csv rename to test/import/ok/sample.csv diff --git a/test/import/ok.json b/test/import/ok/sample.json similarity index 100% rename from test/import/ok.json rename to test/import/ok/sample.json diff --git a/test/import/ok-vti-buy-long-history.json b/test/import/ok/vti-buy-long-history.json similarity index 100% rename from test/import/ok-vti-buy-long-history.json rename to test/import/ok/vti-buy-long-history.json diff --git a/test/import/ok-vti-buy-on-ibkr.csv b/test/import/ok/vti-buy-on-ibkr.csv similarity index 100% rename from test/import/ok-vti-buy-on-ibkr.csv rename to test/import/ok/vti-buy-on-ibkr.csv diff --git a/test/import/ok-without-accounts.json b/test/import/ok/without-accounts.json similarity index 100% rename from test/import/ok-without-accounts.json rename to test/import/ok/without-accounts.json