Browse Source

CurrencyClusterRiskCurrentInvestment localized

pull/5038/head
csehatt741 5 days ago
parent
commit
604ba7f2d1
  1. 8
      apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts
  2. 41
      apps/api/src/models/rules/currency-cluster-risk/current-investment.ts
  3. 10
      apps/client/src/app/pages/i18n/i18n-page.html

8
apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts

@ -56,10 +56,10 @@ export class CurrencyClusterRiskBaseCurrencyCurrentInvestment extends Rule<Setti
id: 'rule.currencyClusterRiskBaseCurrencyCurrentInvestment.false', id: 'rule.currencyClusterRiskBaseCurrencyCurrentInvestment.false',
languageCode: this.getLanguageCode(), languageCode: this.getLanguageCode(),
placeholders: { placeholders: {
baseCurrency: ruleSettings.baseCurrency,
baseCurrencyValueRatio: (baseCurrencyValueRatio * 100).toPrecision( baseCurrencyValueRatio: (baseCurrencyValueRatio * 100).toPrecision(
3 3
), )
baseCurrency: ruleSettings.baseCurrency
} }
}), }),
value: false value: false
@ -71,8 +71,8 @@ export class CurrencyClusterRiskBaseCurrencyCurrentInvestment extends Rule<Setti
id: 'rule.currencyClusterRiskBaseCurrencyCurrentInvestment.true', id: 'rule.currencyClusterRiskBaseCurrencyCurrentInvestment.true',
languageCode: this.getLanguageCode(), languageCode: this.getLanguageCode(),
placeholders: { placeholders: {
baseCurrencyValueRatio: (baseCurrencyValueRatio * 100).toPrecision(3), baseCurrency: ruleSettings.baseCurrency,
baseCurrency: ruleSettings.baseCurrency baseCurrencyValueRatio: (baseCurrencyValueRatio * 100).toPrecision(3)
} }
}), }),
value: true value: true

41
apps/api/src/models/rules/currency-cluster-risk/current-investment.ts

@ -1,6 +1,7 @@
import { RuleSettings } from '@ghostfolio/api/models/interfaces/rule-settings.interface'; import { RuleSettings } from '@ghostfolio/api/models/interfaces/rule-settings.interface';
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; 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'; import { PortfolioPosition, UserSettings } from '@ghostfolio/common/interfaces';
export class CurrencyClusterRiskCurrentInvestment extends Rule<Settings> { export class CurrencyClusterRiskCurrentInvestment extends Rule<Settings> {
@ -8,10 +9,13 @@ export class CurrencyClusterRiskCurrentInvestment extends Rule<Settings> {
public constructor( public constructor(
protected exchangeRateDataService: ExchangeRateDataService, protected exchangeRateDataService: ExchangeRateDataService,
holdings: PortfolioPosition[] private i18nService: I18nService,
holdings: PortfolioPosition[],
languageCode: string
) { ) {
super(exchangeRateDataService, { super(exchangeRateDataService, {
key: CurrencyClusterRiskCurrentInvestment.name key: CurrencyClusterRiskCurrentInvestment.name,
languageCode
}); });
this.holdings = holdings; this.holdings = holdings;
@ -41,21 +45,29 @@ export class CurrencyClusterRiskCurrentInvestment extends Rule<Settings> {
if (maxValueRatio > ruleSettings.thresholdMax) { if (maxValueRatio > ruleSettings.thresholdMax) {
return { return {
evaluation: `Over ${ evaluation: this.i18nService.getTranslation({
ruleSettings.thresholdMax * 100 id: 'rule.currencyClusterRiskCurrentInvestment.false',
}% of your current investment is in ${maxItem.groupKey} (${( languageCode: this.getLanguageCode(),
maxValueRatio * 100 placeholders: {
).toPrecision(3)}%)`, currency: maxItem.groupKey as string,
maxValueRatio: (maxValueRatio * 100).toPrecision(3),
thresholdMax: ruleSettings.thresholdMax * 100
}
}),
value: false value: false
}; };
} }
return { return {
evaluation: `The major part of your current investment is in ${ evaluation: this.i18nService.getTranslation({
maxItem?.groupKey ?? ruleSettings.baseCurrency id: 'rule.currencyClusterRiskCurrentInvestment.true',
} (${(maxValueRatio * 100).toPrecision(3)}%) and does not exceed ${ languageCode: this.getLanguageCode(),
ruleSettings.thresholdMax * 100 placeholders: {
}%`, currency: maxItem.groupKey as string,
maxValueRatio: (maxValueRatio * 100).toPrecision(3),
thresholdMax: ruleSettings.thresholdMax * 100
}
}),
value: true value: true
}; };
} }
@ -73,7 +85,10 @@ export class CurrencyClusterRiskCurrentInvestment extends Rule<Settings> {
} }
public getName() { public getName() {
return 'Investment'; return this.i18nService.getTranslation({
id: 'rule.currencyClusterRiskCurrentInvestment',
languageCode: this.getLanguageCode()
});
} }
public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings { public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings {

10
apps/client/src/app/pages/i18n/i18n-page.html

@ -68,6 +68,16 @@
The major part of your current investment is in your base currency The major part of your current investment is in your base currency
($&#123;baseCurrencyValueRatio&#125;% in $&#123;baseCurrency&#125;) ($&#123;baseCurrencyValueRatio&#125;% in $&#123;baseCurrency&#125;)
</li> </li>
<li i18n="@@rule.currencyClusterRiskCurrentInvestment">Investment</li>
<li i18n="@@rule.currencyClusterRiskCurrentInvestment.false">
Over $&#123;thresholdMax&#125;% of your current investment is in
$&#123;currency&#125; ($&#123;maxValueRatio&#125;%)
</li>
<li i18n="@@rule.currencyClusterRiskCurrentInvestment.true">
The major part of your current investment is in $&#123;currency&#125;
($&#123;maxValueRatio&#125;%) and does not exceed
$&#123;thresholdMax&#125;%
</li>
<li i18n="@@rule.emergencyFundSetup">Emergency Fund: Set up</li> <li i18n="@@rule.emergencyFundSetup">Emergency Fund: Set up</li>
<li i18n="@@rule.emergencyFundSetup.false"> <li i18n="@@rule.emergencyFundSetup.false">
No emergency fund has been set up No emergency fund has been set up

Loading…
Cancel
Save