diff --git a/CHANGELOG.md b/CHANGELOG.md index c24f75ecd..fb81aeb18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Improved the language localization for Polish (`pl`) + ## 2.250.0 - 2026-03-17 ### Added diff --git a/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts b/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts index 6030e62d4..40b45a115 100644 --- a/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts +++ b/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts @@ -16,7 +16,7 @@ import { LookupResponse } from '@ghostfolio/common/interfaces'; -import { Injectable } from '@nestjs/common'; +import { Injectable, OnModuleInit } from '@nestjs/common'; import { DataSource, SymbolProfile } from '@prisma/client'; import Alphavantage from 'alphavantage'; import { format, isAfter, isBefore, parse } from 'date-fns'; @@ -24,12 +24,16 @@ import { format, isAfter, isBefore, parse } from 'date-fns'; import { AlphaVantageHistoricalResponse } from './interfaces/interfaces'; @Injectable() -export class AlphaVantageService implements DataProviderInterface { +export class AlphaVantageService + implements DataProviderInterface, OnModuleInit +{ public alphaVantage; public constructor( private readonly configurationService: ConfigurationService - ) { + ) {} + + public onModuleInit() { this.alphaVantage = Alphavantage({ key: this.configurationService.get('API_KEY_ALPHA_VANTAGE') }); diff --git a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts index d0d96acac..d5ed69d06 100644 --- a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts +++ b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts @@ -17,7 +17,7 @@ import { LookupResponse } from '@ghostfolio/common/interfaces'; -import { Injectable, Logger } from '@nestjs/common'; +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; import { AssetClass, AssetSubClass, @@ -27,13 +27,15 @@ import { import { format, fromUnixTime, getUnixTime } from 'date-fns'; @Injectable() -export class CoinGeckoService implements DataProviderInterface { - private readonly apiUrl: string; - private readonly headers: HeadersInit = {}; +export class CoinGeckoService implements DataProviderInterface, OnModuleInit { + private apiUrl: string; + private headers: HeadersInit = {}; public constructor( private readonly configurationService: ConfigurationService - ) { + ) {} + + public onModuleInit() { const apiKeyDemo = this.configurationService.get('API_KEY_COINGECKO_DEMO'); const apiKeyPro = this.configurationService.get('API_KEY_COINGECKO_PRO'); diff --git a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts index cd20fca44..8c718108c 100644 --- a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts +++ b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts @@ -22,7 +22,7 @@ import { } from '@ghostfolio/common/interfaces'; import { MarketState } from '@ghostfolio/common/types'; -import { Injectable, Logger } from '@nestjs/common'; +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; import { AssetClass, AssetSubClass, @@ -33,14 +33,18 @@ import { addDays, format, isSameDay, isToday } from 'date-fns'; import { isNumber } from 'lodash'; @Injectable() -export class EodHistoricalDataService implements DataProviderInterface { +export class EodHistoricalDataService + implements DataProviderInterface, OnModuleInit +{ private apiKey: string; private readonly URL = 'https://eodhistoricaldata.com/api'; public constructor( private readonly configurationService: ConfigurationService, private readonly symbolProfileService: SymbolProfileService - ) { + ) {} + + public onModuleInit() { this.apiKey = this.configurationService.get('API_KEY_EOD_HISTORICAL_DATA'); } diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index 2b4193af5..27391130e 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -23,7 +23,7 @@ import { } from '@ghostfolio/common/interfaces'; import { MarketState } from '@ghostfolio/common/types'; -import { Injectable, Logger } from '@nestjs/common'; +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; import { AssetClass, AssetSubClass, @@ -44,7 +44,9 @@ import { import { uniqBy } from 'lodash'; @Injectable() -export class FinancialModelingPrepService implements DataProviderInterface { +export class FinancialModelingPrepService + implements DataProviderInterface, OnModuleInit +{ private static countriesMapping = { 'Korea (the Republic of)': 'South Korea', 'Russian Federation': 'Russia', @@ -57,7 +59,9 @@ export class FinancialModelingPrepService implements DataProviderInterface { private readonly configurationService: ConfigurationService, private readonly cryptocurrencyService: CryptocurrencyService, private readonly prismaService: PrismaService - ) { + ) {} + + public onModuleInit() { this.apiKey = this.configurationService.get( 'API_KEY_FINANCIAL_MODELING_PREP' ); diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index 96d248f57..4e83268a4 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -141,18 +141,18 @@ export class GfAppComponent implements OnInit { if ( (this.currentRoute === internalRoutes.home.path && this.currentSubRoute === - internalRoutes.home.subRoutes.holdings.path) || + internalRoutes.home.subRoutes?.holdings.path) || (this.currentRoute === internalRoutes.portfolio.path && !this.currentSubRoute) || (this.currentRoute === internalRoutes.portfolio.path && this.currentSubRoute === - internalRoutes.portfolio.subRoutes.activities.path) || + internalRoutes.portfolio.subRoutes?.activities.path) || (this.currentRoute === internalRoutes.portfolio.path && this.currentSubRoute === - internalRoutes.portfolio.subRoutes.allocations.path) || + internalRoutes.portfolio.subRoutes?.allocations.path) || (this.currentRoute === internalRoutes.zen.path && this.currentSubRoute === - internalRoutes.home.subRoutes.holdings.path) + internalRoutes.home.subRoutes?.holdings.path) ) { this.hasPermissionToChangeFilters = true; } else { diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts index 874bbc1db..3b57ba1c8 100644 --- a/apps/client/src/app/components/admin-users/admin-users.component.ts +++ b/apps/client/src/app/components/admin-users/admin-users.component.ts @@ -89,7 +89,7 @@ export class GfAdminUsersComponent implements OnInit { public isLoading = false; public pageSize = DEFAULT_PAGE_SIZE; public routerLinkAdminControlUsers = - internalRoutes.adminControl.subRoutes.users.routerLink; + internalRoutes.adminControl.subRoutes?.users.routerLink; public totalItems = 0; public user: User; diff --git a/apps/client/src/app/components/footer/footer.component.ts b/apps/client/src/app/components/footer/footer.component.ts index 48f010565..d06e711b9 100644 --- a/apps/client/src/app/components/footer/footer.component.ts +++ b/apps/client/src/app/components/footer/footer.component.ts @@ -33,13 +33,13 @@ export class GfFooterComponent implements OnChanges { public hasPermissionToAccessFearAndGreedIndex: boolean; public routerLinkAbout = publicRoutes.about.routerLink; public routerLinkAboutChangelog = - publicRoutes.about.subRoutes.changelog.routerLink; + publicRoutes.about.subRoutes?.changelog.routerLink; public routerLinkAboutLicense = - publicRoutes.about.subRoutes.license.routerLink; + publicRoutes.about.subRoutes?.license.routerLink; public routerLinkAboutPrivacyPolicy = - publicRoutes.about.subRoutes.privacyPolicy.routerLink; + publicRoutes.about.subRoutes?.privacyPolicy.routerLink; public routerLinkAboutTermsOfService = - publicRoutes.about.subRoutes.termsOfService.routerLink; + publicRoutes.about.subRoutes?.termsOfService.routerLink; public routerLinkBlog = publicRoutes.blog.routerLink; public routerLinkFaq = publicRoutes.faq.routerLink; public routerLinkFeatures = publicRoutes.features.routerLink; diff --git a/apps/client/src/app/components/home-overview/home-overview.component.ts b/apps/client/src/app/components/home-overview/home-overview.component.ts index 58284d27d..9b4f646c3 100644 --- a/apps/client/src/app/components/home-overview/home-overview.component.ts +++ b/apps/client/src/app/components/home-overview/home-overview.component.ts @@ -56,7 +56,7 @@ export class GfHomeOverviewComponent implements OnInit { public routerLinkAccounts = internalRoutes.accounts.routerLink; public routerLinkPortfolio = internalRoutes.portfolio.routerLink; public routerLinkPortfolioActivities = - internalRoutes.portfolio.subRoutes.activities.routerLink; + internalRoutes.portfolio.subRoutes?.activities.routerLink; public showDetails = false; public unit: string; public user: User; diff --git a/apps/client/src/app/components/markets/markets.component.ts b/apps/client/src/app/components/markets/markets.component.ts index 4b83e897f..4214ee989 100644 --- a/apps/client/src/app/components/markets/markets.component.ts +++ b/apps/client/src/app/components/markets/markets.component.ts @@ -19,12 +19,11 @@ import { ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, - OnDestroy, + DestroyRef, OnInit } from '@angular/core'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { DeviceDetectorService } from 'ngx-device-detector'; -import { Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -39,7 +38,7 @@ import { takeUntil } from 'rxjs/operators'; styleUrls: ['./markets.scss'], templateUrl: './markets.html' }) -export class GfMarketsComponent implements OnDestroy, OnInit { +export class GfMarketsComponent implements OnInit { public benchmarks: Benchmark[]; public deviceType: string; public fearAndGreedIndex: number; @@ -55,18 +54,17 @@ export class GfMarketsComponent implements OnDestroy, OnInit { public readonly numberOfDays = 365; public user: User; - private unsubscribeSubject = new Subject(); - public constructor( private changeDetectorRef: ChangeDetectorRef, private dataService: DataService, + private destroyRef: DestroyRef, private deviceService: DeviceDetectorService, private userService: UserService ) { this.deviceType = this.deviceService.getDeviceInfo().deviceType; this.userService.stateChanged - .pipe(takeUntil(this.unsubscribeSubject)) + .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe((state) => { if (state?.user) { this.user = state.user; @@ -79,7 +77,7 @@ export class GfMarketsComponent implements OnDestroy, OnInit { public ngOnInit() { this.dataService .fetchMarketDataOfMarkets({ includeHistoricalData: this.numberOfDays }) - .pipe(takeUntil(this.unsubscribeSubject)) + .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe(({ fearAndGreedIndex }) => { this.fearAndGreedIndexData = fearAndGreedIndex; @@ -90,7 +88,7 @@ export class GfMarketsComponent implements OnDestroy, OnInit { this.dataService .fetchBenchmarks() - .pipe(takeUntil(this.unsubscribeSubject)) + .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe(({ benchmarks }) => { this.benchmarks = benchmarks; @@ -119,9 +117,4 @@ export class GfMarketsComponent implements OnDestroy, OnInit { this.initialize(); } - - public ngOnDestroy() { - this.unsubscribeSubject.next(); - this.unsubscribeSubject.complete(); - } } diff --git a/apps/client/src/app/pages/about/about-page.routes.ts b/apps/client/src/app/pages/about/about-page.routes.ts index 4cb13280a..b4466fbab 100644 --- a/apps/client/src/app/pages/about/about-page.routes.ts +++ b/apps/client/src/app/pages/about/about-page.routes.ts @@ -15,29 +15,29 @@ export const routes: Routes = [ import('./overview/about-overview-page.routes').then((m) => m.routes) }, { - path: publicRoutes.about.subRoutes.changelog.path, + path: publicRoutes.about.subRoutes?.changelog.path, loadChildren: () => import('./changelog/changelog-page.routes').then((m) => m.routes) }, { - path: publicRoutes.about.subRoutes.license.path, + path: publicRoutes.about.subRoutes?.license.path, loadChildren: () => import('./license/license-page.routes').then((m) => m.routes) }, { - path: publicRoutes.about.subRoutes.ossFriends.path, + path: publicRoutes.about.subRoutes?.ossFriends.path, loadChildren: () => import('./oss-friends/oss-friends-page.routes').then((m) => m.routes) }, { - path: publicRoutes.about.subRoutes.privacyPolicy.path, + path: publicRoutes.about.subRoutes?.privacyPolicy.path, loadChildren: () => import('./privacy-policy/privacy-policy-page.routes').then( (m) => m.routes ) }, { - path: publicRoutes.about.subRoutes.termsOfService.path, + path: publicRoutes.about.subRoutes?.termsOfService.path, loadChildren: () => import('./terms-of-service/terms-of-service-page.routes').then( (m) => m.routes diff --git a/apps/client/src/app/pages/about/changelog/changelog-page.routes.ts b/apps/client/src/app/pages/about/changelog/changelog-page.routes.ts index 523218acc..7b67283e9 100644 --- a/apps/client/src/app/pages/about/changelog/changelog-page.routes.ts +++ b/apps/client/src/app/pages/about/changelog/changelog-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfChangelogPageComponent, path: '', - title: publicRoutes.about.subRoutes.changelog.title + title: publicRoutes.about.subRoutes?.changelog.title } ]; diff --git a/apps/client/src/app/pages/about/license/license-page.routes.ts b/apps/client/src/app/pages/about/license/license-page.routes.ts index 1684bb0c5..45de6aaa2 100644 --- a/apps/client/src/app/pages/about/license/license-page.routes.ts +++ b/apps/client/src/app/pages/about/license/license-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfLicensePageComponent, path: '', - title: publicRoutes.about.subRoutes.license.title + title: publicRoutes.about.subRoutes?.license.title } ]; diff --git a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.routes.ts b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.routes.ts index 8dbb9d52a..dfe65d962 100644 --- a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.routes.ts +++ b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfOpenSourceSoftwareFriendsPageComponent, path: '', - title: publicRoutes.about.subRoutes.ossFriends.title + title: publicRoutes.about.subRoutes?.ossFriends.title } ]; diff --git a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.routes.ts b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.routes.ts index e87436c17..934e06289 100644 --- a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.routes.ts +++ b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfPrivacyPolicyPageComponent, path: '', - title: publicRoutes.about.subRoutes.privacyPolicy.title + title: publicRoutes.about.subRoutes?.privacyPolicy.title } ]; diff --git a/apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.routes.ts b/apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.routes.ts index 34d7a72d0..caf8751f1 100644 --- a/apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.routes.ts +++ b/apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfTermsOfServicePageComponent, path: '', - title: publicRoutes.about.subRoutes.termsOfService.title + title: publicRoutes.about.subRoutes?.termsOfService.title } ]; diff --git a/apps/client/src/app/pages/admin/admin-page.routes.ts b/apps/client/src/app/pages/admin/admin-page.routes.ts index c5309edbb..08fce248c 100644 --- a/apps/client/src/app/pages/admin/admin-page.routes.ts +++ b/apps/client/src/app/pages/admin/admin-page.routes.ts @@ -20,29 +20,29 @@ export const routes: Routes = [ title: internalRoutes.adminControl.title }, { - path: internalRoutes.adminControl.subRoutes.jobs.path, + path: internalRoutes.adminControl.subRoutes?.jobs.path, component: GfAdminJobsComponent, - title: internalRoutes.adminControl.subRoutes.jobs.title + title: internalRoutes.adminControl.subRoutes?.jobs.title }, { - path: internalRoutes.adminControl.subRoutes.marketData.path, + path: internalRoutes.adminControl.subRoutes?.marketData.path, component: GfAdminMarketDataComponent, - title: internalRoutes.adminControl.subRoutes.marketData.title + title: internalRoutes.adminControl.subRoutes?.marketData.title }, { - path: internalRoutes.adminControl.subRoutes.settings.path, + path: internalRoutes.adminControl.subRoutes?.settings.path, component: GfAdminSettingsComponent, - title: internalRoutes.adminControl.subRoutes.settings.title + title: internalRoutes.adminControl.subRoutes?.settings.title }, { - path: internalRoutes.adminControl.subRoutes.users.path, + path: internalRoutes.adminControl.subRoutes?.users.path, component: GfAdminUsersComponent, - title: internalRoutes.adminControl.subRoutes.users.title + title: internalRoutes.adminControl.subRoutes?.users.title }, { - path: `${internalRoutes.adminControl.subRoutes.users.path}/:userId`, + path: `${internalRoutes.adminControl.subRoutes?.users.path}/:userId`, component: GfAdminUsersComponent, - title: internalRoutes.adminControl.subRoutes.users.title + title: internalRoutes.adminControl.subRoutes?.users.title } ], component: AdminPageComponent, diff --git a/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts index c5a9cf178..4b62e4449 100644 --- a/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -12,6 +12,6 @@ import { RouterModule } from '@angular/router'; }) export class GhostfolioJoinsOssFriendsPageComponent { public routerLinkAboutOssFriends = - publicRoutes.about.subRoutes.ossFriends.routerLink; + publicRoutes.about.subRoutes?.ossFriends.routerLink; public routerLinkBlog = publicRoutes.blog.routerLink; } diff --git a/apps/client/src/app/pages/faq/faq-page.routes.ts b/apps/client/src/app/pages/faq/faq-page.routes.ts index 2999e3c80..f80304a08 100644 --- a/apps/client/src/app/pages/faq/faq-page.routes.ts +++ b/apps/client/src/app/pages/faq/faq-page.routes.ts @@ -15,12 +15,12 @@ export const routes: Routes = [ import('./overview/faq-overview-page.routes').then((m) => m.routes) }, { - path: publicRoutes.faq.subRoutes.saas.path, + path: publicRoutes.faq.subRoutes?.saas.path, loadChildren: () => import('./saas/saas-page.routes').then((m) => m.routes) }, { - path: publicRoutes.faq.subRoutes.selfHosting.path, + path: publicRoutes.faq.subRoutes?.selfHosting.path, loadChildren: () => import('./self-hosting/self-hosting-page.routes').then( (m) => m.routes diff --git a/apps/client/src/app/pages/faq/saas/saas-page.component.ts b/apps/client/src/app/pages/faq/saas/saas-page.component.ts index b47d45fe2..4429fe492 100644 --- a/apps/client/src/app/pages/faq/saas/saas-page.component.ts +++ b/apps/client/src/app/pages/faq/saas/saas-page.component.ts @@ -25,7 +25,7 @@ export class GfSaasPageComponent implements OnDestroy { public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${publicRoutes.pricing.path}`; public routerLinkAccount = internalRoutes.account.routerLink; public routerLinkAccountMembership = - internalRoutes.account.subRoutes.membership.routerLink; + internalRoutes.account.subRoutes?.membership.routerLink; public routerLinkMarkets = publicRoutes.markets.routerLink; public routerLinkRegister = publicRoutes.register.routerLink; public user: User; diff --git a/apps/client/src/app/pages/faq/saas/saas-page.routes.ts b/apps/client/src/app/pages/faq/saas/saas-page.routes.ts index dcb574c38..d68893640 100644 --- a/apps/client/src/app/pages/faq/saas/saas-page.routes.ts +++ b/apps/client/src/app/pages/faq/saas/saas-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfSaasPageComponent, path: '', - title: `${publicRoutes.faq.subRoutes.saas.title} - ${publicRoutes.faq.title}` + title: `${publicRoutes.faq.subRoutes?.saas.title} - ${publicRoutes.faq.title}` } ]; diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.routes.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.routes.ts index d08cdb312..ccf034421 100644 --- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.routes.ts +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfSelfHostingPageComponent, path: '', - title: `${publicRoutes.faq.subRoutes.selfHosting.title} - ${publicRoutes.faq.title}` + title: `${publicRoutes.faq.subRoutes?.selfHosting.title} - ${publicRoutes.faq.title}` } ]; diff --git a/apps/client/src/app/pages/home/home-page.routes.ts b/apps/client/src/app/pages/home/home-page.routes.ts index 82ef1e521..436826674 100644 --- a/apps/client/src/app/pages/home/home-page.routes.ts +++ b/apps/client/src/app/pages/home/home-page.routes.ts @@ -20,29 +20,29 @@ export const routes: Routes = [ component: GfHomeOverviewComponent }, { - path: internalRoutes.home.subRoutes.holdings.path, + path: internalRoutes.home.subRoutes?.holdings.path, component: GfHomeHoldingsComponent, - title: internalRoutes.home.subRoutes.holdings.title + title: internalRoutes.home.subRoutes?.holdings.title }, { - path: internalRoutes.home.subRoutes.summary.path, + path: internalRoutes.home.subRoutes?.summary.path, component: GfHomeSummaryComponent, - title: internalRoutes.home.subRoutes.summary.title + title: internalRoutes.home.subRoutes?.summary.title }, { - path: internalRoutes.home.subRoutes.markets.path, + path: internalRoutes.home.subRoutes?.markets.path, component: GfHomeMarketComponent, - title: internalRoutes.home.subRoutes.markets.title + title: internalRoutes.home.subRoutes?.markets.title }, { - path: internalRoutes.home.subRoutes.marketsPremium.path, + path: internalRoutes.home.subRoutes?.marketsPremium.path, component: GfMarketsComponent, - title: internalRoutes.home.subRoutes.marketsPremium.title + title: internalRoutes.home.subRoutes?.marketsPremium.title }, { - path: internalRoutes.home.subRoutes.watchlist.path, + path: internalRoutes.home.subRoutes?.watchlist.path, component: GfHomeWatchlistComponent, - title: internalRoutes.home.subRoutes.watchlist.title + title: internalRoutes.home.subRoutes?.watchlist.title } ], component: GfHomePageComponent, diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.routes.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.routes.ts index c96c8a558..e1c75f6cc 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.routes.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfActivitiesPageComponent, path: '', - title: internalRoutes.portfolio.subRoutes.activities.title + title: internalRoutes.portfolio.subRoutes?.activities.title } ]; diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.routes.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.routes.ts index 91cf4c91b..343d6ced5 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.routes.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.routes.ts @@ -10,6 +10,6 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: GfAnalysisPageComponent, path: '', - title: internalRoutes.portfolio.subRoutes.analysis.title + title: internalRoutes.portfolio.subRoutes?.analysis.title } ]; diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.routes.ts b/apps/client/src/app/pages/portfolio/portfolio-page.routes.ts index aeebf4a6b..a4fdc3f61 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.routes.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page.routes.ts @@ -15,22 +15,22 @@ export const routes: Routes = [ import('./analysis/analysis-page.routes').then((m) => m.routes) }, { - path: internalRoutes.portfolio.subRoutes.activities.path, + path: internalRoutes.portfolio.subRoutes?.activities.path, loadChildren: () => import('./activities/activities-page.routes').then((m) => m.routes) }, { - path: internalRoutes.portfolio.subRoutes.allocations.path, + path: internalRoutes.portfolio.subRoutes?.allocations.path, loadChildren: () => import('./allocations/allocations-page.routes').then((m) => m.routes) }, { - path: internalRoutes.portfolio.subRoutes.fire.path, + path: internalRoutes.portfolio.subRoutes?.fire.path, loadChildren: () => import('./fire/fire-page.routes').then((m) => m.routes) }, { - path: internalRoutes.portfolio.subRoutes.xRay.path, + path: internalRoutes.portfolio.subRoutes?.xRay.path, loadChildren: () => import('./x-ray/x-ray-page.routes').then((m) => m.routes) } diff --git a/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts b/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts index 112619239..9c86f2c83 100644 --- a/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts +++ b/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts @@ -16,7 +16,7 @@ export class ResourcesGlossaryPageComponent implements OnInit { public hasPermissionForSubscription: boolean; public info: InfoItem; public routerLinkResourcesPersonalFinanceTools = - publicRoutes.resources.subRoutes.personalFinanceTools.routerLink; + publicRoutes.resources.subRoutes?.personalFinanceTools.routerLink; public constructor(private dataService: DataService) { this.info = this.dataService.fetchInfo(); diff --git a/apps/client/src/app/pages/resources/glossary/resources-glossary.routes.ts b/apps/client/src/app/pages/resources/glossary/resources-glossary.routes.ts index 2f864155a..4096dfecd 100644 --- a/apps/client/src/app/pages/resources/glossary/resources-glossary.routes.ts +++ b/apps/client/src/app/pages/resources/glossary/resources-glossary.routes.ts @@ -8,6 +8,6 @@ export const routes: Routes = [ { component: ResourcesGlossaryPageComponent, path: '', - title: publicRoutes.resources.subRoutes.glossary.title + title: publicRoutes.resources.subRoutes?.glossary.title } ]; diff --git a/apps/client/src/app/pages/resources/guides/resources-guides.routes.ts b/apps/client/src/app/pages/resources/guides/resources-guides.routes.ts index f9f65f44a..eb8c39e24 100644 --- a/apps/client/src/app/pages/resources/guides/resources-guides.routes.ts +++ b/apps/client/src/app/pages/resources/guides/resources-guides.routes.ts @@ -8,6 +8,6 @@ export const routes: Routes = [ { component: ResourcesGuidesComponent, path: '', - title: publicRoutes.resources.subRoutes.guides.title + title: publicRoutes.resources.subRoutes?.guides.title } ]; diff --git a/apps/client/src/app/pages/resources/markets/resources-markets.routes.ts b/apps/client/src/app/pages/resources/markets/resources-markets.routes.ts index 4bcb66789..a56dc7cf7 100644 --- a/apps/client/src/app/pages/resources/markets/resources-markets.routes.ts +++ b/apps/client/src/app/pages/resources/markets/resources-markets.routes.ts @@ -8,6 +8,6 @@ export const routes: Routes = [ { component: ResourcesMarketsComponent, path: '', - title: publicRoutes.resources.subRoutes.markets.title + title: publicRoutes.resources.subRoutes?.markets.title } ]; diff --git a/apps/client/src/app/pages/resources/overview/resources-overview.component.ts b/apps/client/src/app/pages/resources/overview/resources-overview.component.ts index 81338200f..310f16a5e 100644 --- a/apps/client/src/app/pages/resources/overview/resources-overview.component.ts +++ b/apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -20,20 +20,20 @@ export class ResourcesOverviewComponent { { description: 'Explore our guides to help you get started with investing and managing your finances.', - routerLink: publicRoutes.resources.subRoutes.guides.routerLink, - title: publicRoutes.resources.subRoutes.guides.title + routerLink: publicRoutes.resources.subRoutes?.guides.routerLink, + title: publicRoutes.resources.subRoutes?.guides.title }, { description: 'Access various market resources and tools to stay informed about financial markets.', - routerLink: publicRoutes.resources.subRoutes.markets.routerLink, - title: publicRoutes.resources.subRoutes.markets.title + routerLink: publicRoutes.resources.subRoutes?.markets.routerLink, + title: publicRoutes.resources.subRoutes?.markets.title }, { description: 'Learn key financial terms and concepts in our comprehensive glossary.', - routerLink: publicRoutes.resources.subRoutes.glossary.routerLink, - title: publicRoutes.resources.subRoutes.glossary.title + routerLink: publicRoutes.resources.subRoutes?.glossary.routerLink, + title: publicRoutes.resources.subRoutes?.glossary.title } ]; } diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.routes.ts b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.routes.ts index 9081f6b28..081c34000 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.routes.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.routes.ts @@ -11,7 +11,7 @@ export const routes: Routes = [ canActivate: [AuthGuard], component: PersonalFinanceToolsPageComponent, path: '', - title: publicRoutes.resources.subRoutes.personalFinanceTools.title + title: publicRoutes.resources.subRoutes?.personalFinanceTools.title }, ...personalFinanceTools.map(({ alias, key, name }) => { return { @@ -23,8 +23,8 @@ export const routes: Routes = [ return GfProductPageComponent; } ), - path: `${publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes.product.path}-${alias ?? key}`, - title: `${publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes.product.title} ${name}` + path: `${publicRoutes.resources.subRoutes?.personalFinanceTools.subRoutes?.product.path}-${alias ?? key}`, + title: `${publicRoutes.resources.subRoutes?.personalFinanceTools.subRoutes?.product.title} ${name}` }; }) ]; diff --git a/apps/client/src/app/pages/resources/resources-page.routes.ts b/apps/client/src/app/pages/resources/resources-page.routes.ts index 107988238..6e59f0995 100644 --- a/apps/client/src/app/pages/resources/resources-page.routes.ts +++ b/apps/client/src/app/pages/resources/resources-page.routes.ts @@ -16,22 +16,22 @@ export const routes: Routes = [ import('./overview/resources-overview.routes').then((m) => m.routes) }, { - path: publicRoutes.resources.subRoutes.glossary.path, + path: publicRoutes.resources.subRoutes?.glossary.path, loadChildren: () => import('./glossary/resources-glossary.routes').then((m) => m.routes) }, { - path: publicRoutes.resources.subRoutes.guides.path, + path: publicRoutes.resources.subRoutes?.guides.path, loadChildren: () => import('./guides/resources-guides.routes').then((m) => m.routes) }, { - path: publicRoutes.resources.subRoutes.markets.path, + path: publicRoutes.resources.subRoutes?.markets.path, loadChildren: () => import('./markets/resources-markets.routes').then((m) => m.routes) }, { - path: publicRoutes.resources.subRoutes.personalFinanceTools.path, + path: publicRoutes.resources.subRoutes?.personalFinanceTools.path, loadChildren: () => import('./personal-finance-tools/personal-finance-tools-page.routes').then( (m) => m.routes diff --git a/apps/client/src/app/pages/user-account/user-account-page.routes.ts b/apps/client/src/app/pages/user-account/user-account-page.routes.ts index 5d0f5b202..7eac1298e 100644 --- a/apps/client/src/app/pages/user-account/user-account-page.routes.ts +++ b/apps/client/src/app/pages/user-account/user-account-page.routes.ts @@ -18,14 +18,14 @@ export const routes: Routes = [ title: internalRoutes.account.title }, { - path: internalRoutes.account.subRoutes.membership.path, + path: internalRoutes.account.subRoutes?.membership.path, component: GfUserAccountMembershipComponent, - title: internalRoutes.account.subRoutes.membership.title + title: internalRoutes.account.subRoutes?.membership.title }, { - path: internalRoutes.account.subRoutes.access.path, + path: internalRoutes.account.subRoutes?.access.path, component: GfUserAccountAccessComponent, - title: internalRoutes.account.subRoutes.access.title + title: internalRoutes.account.subRoutes?.access.title } ], component: GfUserAccountPageComponent, diff --git a/apps/client/src/app/pages/zen/zen-page.routes.ts b/apps/client/src/app/pages/zen/zen-page.routes.ts index 60e163ca4..38929dc85 100644 --- a/apps/client/src/app/pages/zen/zen-page.routes.ts +++ b/apps/client/src/app/pages/zen/zen-page.routes.ts @@ -16,9 +16,9 @@ export const routes: Routes = [ component: GfHomeOverviewComponent }, { - path: internalRoutes.zen.subRoutes.holdings.path, + path: internalRoutes.zen.subRoutes?.holdings.path, component: GfHomeHoldingsComponent, - title: internalRoutes.home.subRoutes.holdings.title + title: internalRoutes.home.subRoutes?.holdings.title } ], component: GfZenPageComponent, diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index e2083ccf7..c7c07967f 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -240,7 +240,7 @@ please - please + proszę apps/client/src/app/pages/pricing/pricing-page.html 333 @@ -284,7 +284,7 @@ with - with + z apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 87 @@ -1208,7 +1208,7 @@ Asset profile has been saved - Asset profile has been saved + Profil zasobu został zapisany apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 594 @@ -1224,7 +1224,7 @@ Explore - Explore + Eksploruj apps/client/src/app/pages/resources/overview/resources-overview.component.html 11 @@ -1232,7 +1232,7 @@ By - By + Przez apps/client/src/app/pages/portfolio/fire/fire-page.html 139 @@ -1248,7 +1248,7 @@ Current year - Current year + Obecny rok apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 204 @@ -1344,7 +1344,7 @@ No auto-renewal on membership. - No auto-renewal on membership. + Brak automatycznego odnawiania członkostwa. apps/client/src/app/components/user-account-membership/user-account-membership.html 74 @@ -1644,7 +1644,7 @@ Current week - Current week + Obecny tydzień apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 196 @@ -2588,7 +2588,7 @@ for - for + dla apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 128 @@ -2888,7 +2888,7 @@ Could not parse scraper configuration - Could not parse scraper configuration + Nie udało się przetworzyć konfiguracji scrapera apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 525 @@ -3044,7 +3044,7 @@ per week - per week + na tydzień apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 130 @@ -3220,7 +3220,7 @@ Edit access - Edit access + Edytuj dostęp apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html 11 @@ -3324,7 +3324,7 @@ Get access to 80’000+ tickers from over 50 exchanges - Get access to 80’000+ tickers from over 50 exchanges + Uzyskaj dostęp do 80 000+ tickerów z ponad 50 giełd apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 84 @@ -3460,7 +3460,7 @@ less than - less than + mniej niż apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 129 @@ -3524,7 +3524,7 @@ Ghostfolio Status - Ghostfolio Status + Ghostfolio Status apps/client/src/app/pages/about/overview/about-overview-page.html 62 @@ -3532,7 +3532,7 @@ with your university e-mail address - with your university e-mail address + używając swojego adresu e-mail uczelni apps/client/src/app/pages/pricing/pricing-page.html 348 @@ -3804,7 +3804,7 @@ or start a discussion at - or start a discussion at + lub rozpocznij dyskusję n apps/client/src/app/pages/about/overview/about-overview-page.html 94 @@ -4016,7 +4016,7 @@ Latest activities - Latest activities + Ostatnie transakcje apps/client/src/app/pages/public/public-page.html 210 @@ -4084,7 +4084,7 @@ Looking for a student discount? - Looking for a student discount? + Szukasz zniżki studenckiej? apps/client/src/app/pages/pricing/pricing-page.html 342 @@ -4617,7 +4617,7 @@ Website of Thomas Kaul - Website of Thomas Kaul + Strona internetowa Thomas'a Kaul'a apps/client/src/app/pages/about/overview/about-overview-page.html 44 @@ -4849,7 +4849,7 @@ Request it - Request it + Porpoś o apps/client/src/app/pages/pricing/pricing-page.html 344 @@ -4969,7 +4969,7 @@ , - , + , apps/client/src/app/pages/portfolio/fire/fire-page.html 145 @@ -4993,7 +4993,7 @@ contact us - contact us + skontaktuj się z nami apps/client/src/app/pages/pricing/pricing-page.html 336 @@ -5049,7 +5049,7 @@ Interest - Udział + Odsetki apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html 69 @@ -5317,7 +5317,7 @@ No Activities - No Activities + Brak transakcji apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 146 @@ -5417,7 +5417,7 @@ Sign in with OpenID Connect - Sign in with OpenID Connect + Zaloguj się za pomocą OpenID Connect apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 55 @@ -5529,7 +5529,7 @@ Authentication - Authentication + Uwierzytelnianie apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 54 @@ -5829,7 +5829,7 @@ Argentina - Argentina + Argentyna libs/ui/src/lib/i18n.ts 78 @@ -5885,7 +5885,7 @@ here - here + tutaj apps/client/src/app/pages/pricing/pricing-page.html 347 @@ -5893,7 +5893,7 @@ Close Holding - Close Holding + Zamknij pozycję apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 441 @@ -6274,7 +6274,7 @@ Include in - Include in + Uwzględnij w apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 377 @@ -6558,7 +6558,7 @@ View Holding - View Holding + Podgląd inwestycji libs/ui/src/lib/activities-table/activities-table.component.html 450 @@ -6702,7 +6702,7 @@ Oops! Could not update access. - Oops! Could not update access. + Ups! Nie udało się zaktualizować dostępu. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts 178 @@ -6830,7 +6830,7 @@ Role - Role + Rola apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 33 @@ -6870,7 +6870,7 @@ If you plan to open an account at - If you plan to open an account at + Jeśli planujesz otworzyć konto w apps/client/src/app/pages/pricing/pricing-page.html 312 @@ -6902,7 +6902,7 @@ send an e-mail to - send an e-mail to + wyślij e-mail do apps/client/src/app/pages/about/overview/about-overview-page.html 87 @@ -6982,7 +6982,7 @@ to use our referral link and get a Ghostfolio Premium membership for one year - to use our referral link and get a Ghostfolio Premium membership for one year + aby skorzystać z naszego linku polecającego i otrzymać roczną subskrypcję Ghostfolio Premium apps/client/src/app/pages/pricing/pricing-page.html 340 @@ -6990,7 +6990,7 @@ can be self-hosted - może być hostowany samodzielnie + może być hostowana samodzielnie apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 178 @@ -7014,7 +7014,7 @@ can be used anonymously - może być używany anonimowo + może być używana anonimowo apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 217 @@ -7026,7 +7026,7 @@ cannot be used anonymously - nie może być używany anonimowo + nie może być używana anonimowo apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 224 @@ -7376,7 +7376,7 @@ Check the system status at - Check the system status at + Sprawdź status systemu n apps/client/src/app/pages/about/overview/about-overview-page.html 57 @@ -7648,7 +7648,7 @@ Find account, holding or page... - Find account, holding or page... + Znajdź konto, pozycję lub stronę... libs/ui/src/lib/assistant/assistant.component.ts 115 @@ -7906,7 +7906,7 @@ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%) - The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%) + Opłaty przekraczają ${thresholdMax}% twojej całkowitej wartości inwestycji (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html 154 @@ -7914,7 +7914,7 @@ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%) - The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%) + Opłaty nie przekraczają ${thresholdMax}% twojej całkowitej wartości inwestycji (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html 158 @@ -8072,7 +8072,7 @@ Current month - Current month + Bieżący miesiąc apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 200 @@ -8365,7 +8365,7 @@ Emergency Fund - Emergency Fund + Fundusz Awaryjny apps/client/src/app/pages/i18n/i18n-page.html 144 @@ -8397,7 +8397,7 @@ Your buying power is below ${thresholdMin} ${baseCurrency} - Your buying power is below ${thresholdMin} ${baseCurrency} + Twoja siła nabywcza jest niższa niż ${thresholdMin} ${baseCurrency} apps/client/src/app/pages/i18n/i18n-page.html 73 @@ -8405,7 +8405,7 @@ Your buying power is 0 ${baseCurrency} - Your buying power is 0 ${baseCurrency} + Twoja siła nabywcza to 0 ${baseCurrency} apps/client/src/app/pages/i18n/i18n-page.html 77 @@ -8429,7 +8429,7 @@ No results found... - No results found... + Nie znaleziono wyników... libs/ui/src/lib/assistant/assistant.html 51 @@ -8445,7 +8445,7 @@ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) exceeds ${thresholdMax}% - The developed markets contribution of your current investment (${developedMarketsValueRatio}%) exceeds ${thresholdMax}% + Udział rynków rozwiniętych w Twojej obecnej inwestycji (${developedMarketsValueRatio}%) przekracza ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 112 @@ -8453,7 +8453,7 @@ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is below ${thresholdMin}% - The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is below ${thresholdMin}% + Udział rynków rozwiniętych w Twojej obecnej inwestycji (${developedMarketsValueRatio}%) jest poniżej ${thresholdMin}% apps/client/src/app/pages/i18n/i18n-page.html 117 @@ -8461,7 +8461,7 @@ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Udział rynków rozwiniętych w Twojej obecnej inwestycji (${developedMarketsValueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 122 @@ -8477,7 +8477,7 @@ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) exceeds ${thresholdMax}% - The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) exceeds ${thresholdMax}% + Udział rynków wschodzących w obecnej inwestycji (${emergingMarketsValueRatio}%) przekracza ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 130 @@ -8485,7 +8485,7 @@ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is below ${thresholdMin}% - The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is below ${thresholdMin}% + Udział rynków wschodzących w obecnej inwestycji (${emergingMarketsValueRatio}%) jest poniżej ${thresholdMin}% apps/client/src/app/pages/i18n/i18n-page.html 135 @@ -8493,7 +8493,7 @@ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Udział rynków wschodzących w obecnej inwestycji (${emergingMarketsValueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 140 @@ -8501,7 +8501,7 @@ No accounts have been set up - No accounts have been set up + Nie utworzono żadnych kont apps/client/src/app/pages/i18n/i18n-page.html 21 @@ -8509,7 +8509,7 @@ Your net worth is managed by 0 accounts - Your net worth is managed by 0 accounts + Twój majątek jest zarządzany przez 0 kont apps/client/src/app/pages/i18n/i18n-page.html 33 @@ -8517,7 +8517,7 @@ Asia-Pacific - Asia-Pacific + Asia-Pacific apps/client/src/app/pages/i18n/i18n-page.html 165 @@ -8525,7 +8525,7 @@ The Asia-Pacific market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - The Asia-Pacific market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% + Udział rynku Azji i Pacyfiku w Twojej obecnej inwestycji (${valueRatio}%) przekracza ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 167 @@ -8533,7 +8533,7 @@ The Asia-Pacific market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - The Asia-Pacific market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% + Udział rynku Azji i Pacyfiku w Twojej obecnej inwestycji (${valueRatio}%) jest poniżej ${thresholdMin}% apps/client/src/app/pages/i18n/i18n-page.html 171 @@ -8541,7 +8541,7 @@ The Asia-Pacific market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - The Asia-Pacific market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Udział rynku Azji i Pacyfiku w Twojej obecnej inwestycji (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 175 @@ -8549,7 +8549,7 @@ Emerging Markets - Emerging Markets + Rynki wschodzące apps/client/src/app/pages/i18n/i18n-page.html 180 @@ -8557,7 +8557,7 @@ The Emerging Markets contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - The Emerging Markets contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% + Udział rynków wschodzących w Twojej obecnej inwestycji (${valueRatio}%) przekracza ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 183 @@ -8565,7 +8565,7 @@ The Emerging Markets contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - The Emerging Markets contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% + Udział rynków wschodzących w Twojej obecnej inwestycji (${valueRatio}%) jest poniżej ${thresholdMin}% apps/client/src/app/pages/i18n/i18n-page.html 187 @@ -8573,7 +8573,7 @@ The Emerging Markets contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - The Emerging Markets contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Udział rynków wschodzących w Twojej obecnej inwestycji (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 191 @@ -8589,7 +8589,7 @@ The Europe market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - The Europe market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% + Udział rynku europejskiego w obecnej inwestycji (${valueRatio}%) przekracza ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 197 @@ -8597,7 +8597,7 @@ The Europe market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - The Europe market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% + Udział rynku europejskiego w obecnej inwestycji (${valueRatio}%) jest poniżej ${thresholdMin}% apps/client/src/app/pages/i18n/i18n-page.html 201 @@ -8605,7 +8605,7 @@ The Europe market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - The Europe market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Udział rynku europejskiego w obecnej inwestycji (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 205 @@ -8621,7 +8621,7 @@ The Japan market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - The Japan market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% + Udział rynku japońskiego w obecnej inwestycj (${valueRatio}%) przekracza ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 211 @@ -8629,7 +8629,7 @@ The Japan market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - The Japan market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% + Udział rynku japońskiego w obecnej inwestycj (${valueRatio}%) jest poniżej ${thresholdMin}% apps/client/src/app/pages/i18n/i18n-page.html 215 @@ -8637,7 +8637,7 @@ The Japan market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - The Japan market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Udział rynku japońskiego w obecnej inwestycj (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 219 @@ -8645,7 +8645,7 @@ North America - North America + Północna Ameryka apps/client/src/app/pages/i18n/i18n-page.html 223 @@ -8653,7 +8653,7 @@ The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% + Udział rynku Ameryki Północnej w obecnej inwestycji (${valueRatio}%) przekracza ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 225 @@ -8661,7 +8661,7 @@ The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% + Udział rynku Ameryki Północnej w obecnej inwestycji (${valueRatio}%) jest poniżej ${thresholdMin}% apps/client/src/app/pages/i18n/i18n-page.html 229 @@ -8669,7 +8669,7 @@ The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% + Udział rynku Ameryki Północnej w obecnej inwestycji (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}% apps/client/src/app/pages/i18n/i18n-page.html 233 @@ -8677,7 +8677,7 @@ Find Ghostfolio on GitHub - Find Ghostfolio on GitHub + Znajdź Ghostfolio na GitHub apps/client/src/app/pages/about/overview/about-overview-page.html 99 @@ -8689,7 +8689,7 @@ Join the Ghostfolio Slack community - Join the Ghostfolio Slack community + Dołącz do społeczności Ghostfolio na Slacku apps/client/src/app/pages/about/overview/about-overview-page.html 109 @@ -8697,7 +8697,7 @@ Follow Ghostfolio on X (formerly Twitter) - Follow Ghostfolio on X (formerly Twitter) + Śledź Ghostfolio na X (poprzednio Twitter) apps/client/src/app/pages/about/overview/about-overview-page.html 118 @@ -8705,7 +8705,7 @@ Send an e-mail - Send an e-mail + Wyślij e-mail apps/client/src/app/pages/about/overview/about-overview-page.html 89 @@ -8717,7 +8717,7 @@ Registration Date - Registration Date + Data rejestracji apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 45 @@ -8725,7 +8725,7 @@ Follow Ghostfolio on LinkedIn - Follow Ghostfolio on LinkedIn + Śledź Ghostfolio na LinkedIn apps/client/src/app/pages/about/overview/about-overview-page.html 147 @@ -8733,7 +8733,7 @@ Ghostfolio is an independent & bootstrapped business - Ghostfolio is an independent & bootstrapped business + Ghostfolio to niezależna & samofinansująca się firma apps/client/src/app/pages/about/overview/about-overview-page.html 157 @@ -8741,7 +8741,7 @@ Support Ghostfolio - Support Ghostfolio + Wesprzyj Ghostfolio apps/client/src/app/pages/about/overview/about-overview-page.html 166