Browse Source

Feature/localize X-ray rule EmergencyFundSetup (#4835)

* Set up language localization for static portfolio analysis rule: Emergency Fund (Set up)

* Update changelog
pull/4833/head
Thomas Kaul 4 weeks ago
committed by GitHub
parent
commit
e2ec635bbf
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 1
      apps/api/src/app/portfolio/portfolio.service.ts
  3. 1
      apps/api/src/app/user/user.service.ts
  4. 19
      apps/api/src/models/rules/emergency-fund/emergency-fund-setup.ts
  5. 7
      apps/client/src/app/pages/i18n/i18n-page.html

1
CHANGELOG.md

@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Set up the language localization for the static portfolio analysis rule: _Emergency Fund_ (Setup)
- Set up the language localization for the static portfolio analysis rule: _Fees_ (Fee Ratio) - Set up the language localization for the static portfolio analysis rule: _Fees_ (Fee Ratio)
### Changed ### Changed

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

@ -1319,6 +1319,7 @@ export class PortfolioService {
[ [
new EmergencyFundSetup( new EmergencyFundSetup(
this.exchangeRateDataService, this.exchangeRateDataService,
userSettings.language,
this.getTotalEmergencyFund({ this.getTotalEmergencyFund({
userSettings, userSettings,
emergencyFundHoldingsValueInBaseCurrency: emergencyFundHoldingsValueInBaseCurrency:

1
apps/api/src/app/user/user.service.ts

@ -298,6 +298,7 @@ export class UserService {
undefined undefined
).getSettings(user.Settings.settings), ).getSettings(user.Settings.settings),
EmergencyFundSetup: new EmergencyFundSetup( EmergencyFundSetup: new EmergencyFundSetup(
undefined,
undefined, undefined,
undefined undefined
).getSettings(user.Settings.settings), ).getSettings(user.Settings.settings),

19
apps/api/src/models/rules/emergency-fund/emergency-fund-setup.ts

@ -1,16 +1,20 @@
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 { UserSettings } from '@ghostfolio/common/interfaces'; import { UserSettings } from '@ghostfolio/common/interfaces';
export class EmergencyFundSetup extends Rule<Settings> { export class EmergencyFundSetup extends Rule<Settings> {
private emergencyFund: number; private emergencyFund: number;
private i18nService = new I18nService();
public constructor( public constructor(
protected exchangeRateDataService: ExchangeRateDataService, protected exchangeRateDataService: ExchangeRateDataService,
languageCode: string,
emergencyFund: number emergencyFund: number
) { ) {
super(exchangeRateDataService, { super(exchangeRateDataService, {
languageCode,
key: EmergencyFundSetup.name key: EmergencyFundSetup.name
}); });
@ -20,13 +24,19 @@ export class EmergencyFundSetup extends Rule<Settings> {
public evaluate() { public evaluate() {
if (!this.emergencyFund) { if (!this.emergencyFund) {
return { return {
evaluation: 'No emergency fund has been set up', evaluation: this.i18nService.getTranslation({
id: 'rule.emergencyFundSetup.false',
languageCode: this.getLanguageCode()
}),
value: false value: false
}; };
} }
return { return {
evaluation: 'An emergency fund has been set up', evaluation: this.i18nService.getTranslation({
id: 'rule.emergencyFundSetup.true',
languageCode: this.getLanguageCode()
}),
value: true value: true
}; };
} }
@ -36,7 +46,10 @@ export class EmergencyFundSetup extends Rule<Settings> {
} }
public getName() { public getName() {
return 'Emergency Fund: Set up'; return this.i18nService.getTranslation({
id: 'rule.emergencyFundSetup',
languageCode: this.getLanguageCode()
});
} }
public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings { public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings {

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

@ -11,6 +11,13 @@
performance, portfolio, software, stock, trading, wealth, web3 performance, portfolio, software, stock, trading, wealth, web3
</li> </li>
<li i18n="@@myAccount">My Account</li> <li i18n="@@myAccount">My Account</li>
<li i18n="@@rule.emergencyFundSetup">Emergency Fund: Set up</li>
<li i18n="@@rule.emergencyFundSetup.false">
No emergency fund has been set up
</li>
<li i18n="@@rule.emergencyFundSetup.true">
An emergency fund has been set up
</li>
<li i18n="@@rule.feeRatioInitialInvestment">Fee Ratio</li> <li i18n="@@rule.feeRatioInitialInvestment">Fee Ratio</li>
<li i18n="@@rule.feeRatioInitialInvestment.false"> <li i18n="@@rule.feeRatioInitialInvestment.false">
The fees do exceed &#123;thresholdMax&#125;% of your initial investment The fees do exceed &#123;thresholdMax&#125;% of your initial investment

Loading…
Cancel
Save