From 757ff527d01427fd129fe598b568cc6c431af775 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 4 Aug 2024 08:35:01 +0200 Subject: [PATCH 01/23] Feature/extend personal finance tools 20240803 (#3634) * Add Capitalyse --- libs/common/src/lib/personal-finance-tools.ts | 133 ++++++++++-------- 1 file changed, 72 insertions(+), 61 deletions(-) diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts index 760629c8f..52ac20e49 100644 --- a/libs/common/src/lib/personal-finance-tools.ts +++ b/libs/common/src/lib/personal-finance-tools.ts @@ -15,7 +15,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'allvue-systems', name: 'Allvue Systems', - origin: `United States`, + origin: 'United States', slogan: 'Investment Software Suite' }, { @@ -30,7 +30,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'altoo', name: 'Altoo Wealth Platform', - origin: `Switzerland`, + origin: 'Switzerland', slogan: 'Simplicity for Complex Wealth' }, { @@ -40,7 +40,7 @@ export const personalFinanceTools: Product[] = [ key: 'anlage.app', languages: ['English'], name: 'Anlage.App', - origin: `Austria`, + origin: 'Austria', pricingPerYear: '$120', slogan: 'Analyze and track your portfolio.' }, @@ -58,16 +58,27 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'beanvest', name: 'Beanvest', - origin: `France`, + origin: 'France', pricingPerYear: '$100', slogan: 'Stock Portfolio Tracker for Smart Investors' }, + { + founded: 2022, + hasFreePlan: true, + hasSelfHostingAbility: false, + key: 'degiro-portfolio-tracker-by-capitalyse', + languages: ['English'], + name: 'DEGIRO Portfolio Tracker by Capitalyse', + origin: 'Netherlands', + pricingPerYear: '€24', + slogan: 'Democratizing Data Analytics' + }, { hasFreePlan: true, hasSelfHostingAbility: false, key: 'capitally', name: 'Capitally', - origin: `Poland`, + origin: 'Poland', pricingPerYear: '€50', slogan: 'Optimize your investments performance' }, @@ -75,7 +86,7 @@ export const personalFinanceTools: Product[] = [ founded: 2022, key: 'capmon', name: 'CapMon.org', - origin: `Germany`, + origin: 'Germany', note: 'CapMon.org was discontinued in 2023', slogan: 'Next Generation Assets Tracking' }, @@ -83,7 +94,7 @@ export const personalFinanceTools: Product[] = [ founded: 2019, key: 'compound-planning', name: 'Compound Planning', - origin: `United States`, + origin: 'United States', slogan: 'Modern Wealth & Investment Management' }, { @@ -92,7 +103,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'copilot-money', name: 'Copilot Money', - origin: `United States`, + origin: 'United States', pricingPerYear: '$70', slogan: 'Do money better with Copilot' }, @@ -110,7 +121,7 @@ export const personalFinanceTools: Product[] = [ key: 'delta', name: 'Delta Investment Tracker', note: 'Acquired by eToro', - origin: `Belgium`, + origin: 'Belgium', slogan: 'The app to track all your investments. Make smart moves only.' }, { @@ -120,7 +131,7 @@ export const personalFinanceTools: Product[] = [ key: 'divvydiary', languages: ['Deutsch', 'English'], name: 'DivvyDiary', - origin: `Germany`, + origin: 'Germany', pricingPerYear: '€65', slogan: 'Your personal Dividend Calendar' }, @@ -130,7 +141,7 @@ export const personalFinanceTools: Product[] = [ key: 'empower', name: 'Empower', note: 'Originally named as Personal Capital', - origin: `United States`, + origin: 'United States', slogan: 'Get answers to your money questions' }, { @@ -138,7 +149,7 @@ export const personalFinanceTools: Product[] = [ founded: 2022, key: 'eightfigures', name: '8FIGURES', - origin: `United States`, + origin: 'United States', slogan: 'Portfolio Tracker Designed by Professional Investors' }, { @@ -147,7 +158,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'exirio', name: 'Exirio', - origin: `United States`, + origin: 'United States', pricingPerYear: '$100', slogan: 'All your wealth, in one place.' }, @@ -158,7 +169,7 @@ export const personalFinanceTools: Product[] = [ key: 'fina', languages: ['English'], name: 'Fina', - origin: `United States`, + origin: 'United States', pricingPerYear: '$115', slogan: 'Flexible Financial Management' }, @@ -167,7 +178,7 @@ export const personalFinanceTools: Product[] = [ key: 'finary', languages: ['Deutsch', 'English', 'Français'], name: 'Finary', - origin: `United States`, + origin: 'United States', slogan: 'Real-Time Portfolio Tracker & Stock Tracker' }, { @@ -175,7 +186,7 @@ export const personalFinanceTools: Product[] = [ hasFreePlan: true, key: 'finwise', name: 'FinWise', - origin: `South Africa`, + origin: 'South Africa', pricingPerYear: '€69.99', slogan: 'Personal finances, simplified' }, @@ -185,7 +196,7 @@ export const personalFinanceTools: Product[] = [ key: 'folishare', languages: ['Deutsch', 'English'], name: 'folishare', - origin: `Austria`, + origin: 'Austria', pricingPerYear: '$65', slogan: 'Take control over your investments' }, @@ -196,7 +207,7 @@ export const personalFinanceTools: Product[] = [ key: 'getquin', languages: ['Deutsch', 'English'], name: 'getquin', - origin: `Germany`, + origin: 'Germany', pricingPerYear: '€48', slogan: 'Portfolio Tracker, Analysis & Community' }, @@ -205,7 +216,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'gospatz', name: 'goSPATZ', - origin: `Germany`, + origin: 'Germany', slogan: 'Volle Kontrolle über deine Investitionen' }, { @@ -214,7 +225,7 @@ export const personalFinanceTools: Product[] = [ key: 'holistic-capital', languages: ['Deutsch'], name: 'Holistic', - origin: `Germany`, + origin: 'Germany', slogan: 'Die All-in-One Lösung für dein Vermögen.', useAnonymously: true }, @@ -224,7 +235,7 @@ export const personalFinanceTools: Product[] = [ key: 'intuit-mint', name: 'Intuit Mint', note: 'Intuit Mint was discontinued in 2023', - origin: `United States`, + origin: 'United States', pricingPerYear: '$60', slogan: 'Managing money, made simple' }, @@ -234,7 +245,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'justetf', name: 'justETF', - origin: `Germany`, + origin: 'Germany', pricingPerYear: '€119', slogan: 'ETF portfolios made simple' }, @@ -244,7 +255,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'koyfin', name: 'Koyfin', - origin: `United States`, + origin: 'United States', pricingPerYear: '$468', slogan: 'Comprehensive financial data analysis' }, @@ -254,7 +265,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'kubera', name: 'Kubera®', - origin: `United States`, + origin: 'United States', pricingPerYear: '$150', slogan: 'The Time Machine for your Net Worth' }, @@ -264,7 +275,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'magnifi', name: 'Magnifi', - origin: `United States`, + origin: 'United States', pricingPerYear: '$132', slogan: 'AI Investing Assistant' }, @@ -275,9 +286,9 @@ export const personalFinanceTools: Product[] = [ key: 'markets.sh', languages: ['English'], name: 'markets.sh', - origin: `Germany`, + origin: 'Germany', pricingPerYear: '€168', - regions: [`Global`], + regions: ['Global'], slogan: 'Track your investments' }, { @@ -287,9 +298,9 @@ export const personalFinanceTools: Product[] = [ languages: ['English'], name: 'Maybe Finance', note: 'Maybe Finance was discontinued in 2023', - origin: `United States`, + origin: 'United States', pricingPerYear: '$145', - regions: [`United States`], + regions: ['United States'], slogan: 'Your financial future, in your control' }, { @@ -298,7 +309,7 @@ export const personalFinanceTools: Product[] = [ key: 'merlincrypto', languages: ['English'], name: 'Merlin', - origin: `United States`, + origin: 'United States', pricingPerYear: '$204', regions: ['Canada', 'United States'], slogan: 'The smartest way to track your crypto' @@ -309,7 +320,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'monarch-money', name: 'Monarch Money', - origin: `United States`, + origin: 'United States', pricingPerYear: '$99.99', slogan: 'The modern way to manage your money' }, @@ -327,7 +338,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'navexa', name: 'Navexa', - origin: `Australia`, + origin: 'Australia', pricingPerYear: '$90', slogan: 'The Intelligent Portfolio Tracker' }, @@ -338,7 +349,7 @@ export const personalFinanceTools: Product[] = [ key: 'parqet', name: 'Parqet', note: 'Originally named as Tresor One', - origin: `Germany`, + origin: 'Germany', pricingPerYear: '€88', regions: ['Austria', 'Germany', 'Switzerland'], slogan: 'Dein Vermögen immer im Blick' @@ -348,7 +359,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'plannix', name: 'Plannix', - origin: `Italy`, + origin: 'Italy', slogan: 'Your Personal Finance Hub' }, { @@ -358,9 +369,9 @@ export const personalFinanceTools: Product[] = [ key: 'pocketsmith', languages: ['English'], name: 'PocketSmith', - origin: `New Zealand`, + origin: 'New Zealand', pricingPerYear: '$120', - regions: [`Global`], + regions: ['Global'], slogan: 'Know where your money is going' }, { @@ -369,7 +380,7 @@ export const personalFinanceTools: Product[] = [ key: 'portfolio-dividend-tracker', languages: ['English', 'Nederlands'], name: 'Portfolio Dividend Tracker', - origin: `Netherlands`, + origin: 'Netherlands', pricingPerYear: '€60', slogan: 'Manage all your portfolios' }, @@ -397,7 +408,7 @@ export const personalFinanceTools: Product[] = [ key: 'portseido', languages: ['Deutsch', 'English', 'Français', 'Nederlands'], name: 'Portseido', - origin: `Thailand`, + origin: 'Thailand', pricingPerYear: '$96', slogan: 'Portfolio Performance and Dividend Tracker' }, @@ -407,7 +418,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: true, key: 'projectionlab', name: 'ProjectionLab', - origin: `United States`, + origin: 'United States', pricingPerYear: '$108', slogan: 'Build Financial Plans You Love.' }, @@ -416,7 +427,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'rocket-money', name: 'Rocket Money', - origin: `United States`, + origin: 'United States', slogan: 'Track your net worth' }, { @@ -425,7 +436,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'seeking-alpha', name: 'Seeking Alpha', - origin: `United States`, + origin: 'United States', pricingPerYear: '$239', slogan: 'Stock Market Analysis & Tools for Investors' }, @@ -433,7 +444,7 @@ export const personalFinanceTools: Product[] = [ founded: 2022, key: 'segmio', name: 'Segmio', - origin: `Romania`, + origin: 'Romania', slogan: 'Wealth Management and Net Worth Tracking' }, { @@ -442,9 +453,9 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'sharesight', name: 'Sharesight', - origin: `New Zealand`, + origin: 'New Zealand', pricingPerYear: '$135', - regions: [`Global`], + regions: ['Global'], slogan: 'Stock Portfolio Tracker' }, { @@ -459,7 +470,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'simple-portfolio', name: 'Simple Portfolio', - origin: `Czech Republic`, + origin: 'Czech Republic', pricingPerYear: '€80', slogan: 'Stock Portfolio Tracker' }, @@ -469,7 +480,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'snowball-analytics', name: 'Snowball Analytics', - origin: `France`, + origin: 'France', pricingPerYear: '$80', slogan: 'Simple and powerful portfolio tracker' }, @@ -478,20 +489,20 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'stock-events', name: 'Stock Events', - origin: `Germany`, + origin: 'Germany', slogan: 'Track all your Investments' }, { key: 'stockle', name: 'Stockle', - origin: `Finland`, + origin: 'Finland', slogan: 'Supercharge your investments tracking experience' }, { founded: 2008, key: 'stockmarketeye', name: 'StockMarketEye', - origin: `France`, + origin: 'France', note: 'StockMarketEye was discontinued in 2023', slogan: 'A Powerful Portfolio & Investment Tracking App' }, @@ -501,7 +512,7 @@ export const personalFinanceTools: Product[] = [ key: 'stonksfolio', languages: ['English'], name: 'Stonksfolio', - origin: `Bulgaria`, + origin: 'Bulgaria', pricingPerYear: '€49.90', slogan: 'Visualize all of your portfolios' }, @@ -510,7 +521,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'sumio', name: 'Sumio', - origin: `Czech Republic`, + origin: 'Czech Republic', pricingPerYear: '$20', slogan: 'Sum up and build your wealth.' }, @@ -519,7 +530,7 @@ export const personalFinanceTools: Product[] = [ hasFreePlan: false, key: 'tiller', name: 'Tiller', - origin: `United States`, + origin: 'United States', pricingPerYear: '$79', slogan: 'Your financial life in a spreadsheet, automatically updated each day' @@ -530,7 +541,7 @@ export const personalFinanceTools: Product[] = [ key: 'utluna', languages: ['Deutsch', 'English', 'Français'], name: 'Utluna', - origin: `Switzerland`, + origin: 'Switzerland', pricingPerYear: '$300', slogan: 'Your Portfolio. Revealed.', useAnonymously: true @@ -540,7 +551,7 @@ export const personalFinanceTools: Product[] = [ hasFreePlan: true, key: 'vyzer', name: 'Vyzer', - origin: `United States`, + origin: 'United States', pricingPerYear: '$348', slogan: 'Virtual Family Office for Smart Wealth Management' }, @@ -549,7 +560,7 @@ export const personalFinanceTools: Product[] = [ key: 'wallmine', languages: ['English'], name: 'wallmine', - origin: `Czech Republic`, + origin: 'Czech Republic', pricingPerYear: '$600', slogan: 'Make Smarter Investments' }, @@ -567,7 +578,7 @@ export const personalFinanceTools: Product[] = [ key: 'wealthica', languages: ['English', 'Français'], name: 'Wealthica', - origin: `Canada`, + origin: 'Canada', pricingPerYear: '$50', slogan: 'See all your investments in one place' }, @@ -577,13 +588,13 @@ export const personalFinanceTools: Product[] = [ key: 'wealthy-tracker', languages: ['English'], name: 'Wealthy Tracker', - origin: `India`, + origin: 'India', slogan: 'One app to manage all your investments' }, { key: 'whal', name: 'Whal', - origin: `United States`, + origin: 'United States', slogan: 'Manage your investments in one place' }, { @@ -594,8 +605,8 @@ export const personalFinanceTools: Product[] = [ languages: ['Deutsch', 'English', 'Español', 'Français', 'Italiano'], name: 'yeekatee', note: 'yeekatee was discontinued in 2024', - origin: `Switzerland`, - regions: [`Global`], + origin: 'Switzerland', + regions: ['Global'], slogan: 'Connect. Share. Invest.' }, { @@ -604,7 +615,7 @@ export const personalFinanceTools: Product[] = [ hasSelfHostingAbility: false, key: 'ynab', name: 'YNAB (You Need a Budget)', - origin: `United States`, + origin: 'United States', pricingPerYear: '$99', slogan: 'Change Your Relationship With Money' } From 202e27fe25842734b3634d217fd9841cae65be76 Mon Sep 17 00:00:00 2001 From: Paulina <71526180+paulinek13@users.noreply.github.com> Date: Sun, 4 Aug 2024 08:56:55 +0200 Subject: [PATCH 02/23] Feature/improve language localization for polish (#3637) * Improve language localization for Polish * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.pl.xlf | 64 ++++++++++++------------- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6e3b0ca5..4b0ed6df9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the language localization for Polish (`pl`) - Upgraded `Nx` from version `19.5.1` to `19.5.6` ## 2.101.0 - 2024-08-03 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 60c134d02..e79f06166 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -607,7 +607,7 @@ Frequently Asked Questions (FAQ) - Frequently Asked Questions (FAQ) + Często Zadawane Pytania (FAQ) apps/client/src/app/app.component.html 80 @@ -655,7 +655,7 @@ Privacy Policy - Privacy Policy + Polityka Prywatności apps/client/src/app/app.component.html 100 @@ -3279,7 +3279,7 @@ Privacy Policy - Privacy Policy + Polityka Prywatności apps/client/src/app/pages/about/about-page.component.ts 62 @@ -4671,7 +4671,7 @@ 4% Rule - 4% Rule + Zasada 4% apps/client/src/app/pages/portfolio/fire/fire-page.html 40 @@ -5939,7 +5939,7 @@ Africa - Africa + Afryka libs/ui/src/lib/i18n.ts 61 @@ -5947,7 +5947,7 @@ Asia - Asia + Azja libs/ui/src/lib/i18n.ts 62 @@ -5955,7 +5955,7 @@ Europe - Europe + Europa libs/ui/src/lib/i18n.ts 63 @@ -5963,7 +5963,7 @@ North America - North America + Ameryka Północna libs/ui/src/lib/i18n.ts 64 @@ -5971,7 +5971,7 @@ Oceania - Oceania + Oceania libs/ui/src/lib/i18n.ts 65 @@ -5979,7 +5979,7 @@ South America - South America + Ameryka Południowa libs/ui/src/lib/i18n.ts 66 @@ -6035,7 +6035,7 @@ No data available - No data available + Brak danych libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts 402 @@ -6095,7 +6095,7 @@ Do you really want to delete this account balance? - Do you really want to delete this account balance? + Czy na pewno chcesz usunąć saldo tego konta? libs/ui/src/lib/account-balances/account-balances.component.ts 101 @@ -6111,7 +6111,7 @@ If a translation is missing, kindly support us in extending it here. - If a translation is missing, kindly support us in extending it here. + Jeżeli brakuje jakiegoś tłumaczenia, uprzejmie prosimy o wsparcie w jego uzupełnieniu tutaj. apps/client/src/app/components/user-account-settings/user-account-settings.html 50 @@ -6167,7 +6167,7 @@ Oops! Could not grant access. - Oops! Could not grant access. + Ups! Nie udało się przyznać dostępu. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts 88 @@ -6331,7 +6331,7 @@ Reset Filters - Reset Filters + Resetuj Filtry libs/ui/src/lib/assistant/assistant.html 155 @@ -6363,7 +6363,7 @@ Apply Filters - Apply Filters + Zastosuj Filtry libs/ui/src/lib/assistant/assistant.html 165 @@ -6371,7 +6371,7 @@ Data Gathering - Data Gathering + Gromadzenie Danych apps/client/src/app/components/admin-overview/admin-overview.html 141 @@ -6419,7 +6419,7 @@ FAQ - FAQ + FAQ apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts 13 @@ -6431,7 +6431,7 @@ Oops! It looks like you’re making too many requests. Please slow down a bit. - Oops! It looks like you’re making too many requests. Please slow down a bit. + Ups! Wygląda na to, że wykonujesz zbyt wiele zapytań. Proszę, zwolnij trochę. apps/client/src/app/core/http-response.interceptor.ts 96 @@ -6471,7 +6471,7 @@ Dividend Yield - Dividend Yield + Dochód z Dywidendy apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 191 @@ -6487,7 +6487,7 @@ Priority - Priority + Priorytet apps/client/src/app/components/admin-jobs/admin-jobs.html 62 @@ -6495,7 +6495,7 @@ This action is not allowed. - This action is not allowed. + To działanie jest niedozwolone. apps/client/src/app/core/http-response.interceptor.ts 61 @@ -6503,7 +6503,7 @@ Liquidity - Liquidity + Płynność środków finansowych libs/ui/src/lib/i18n.ts 44 @@ -6551,7 +6551,7 @@ Internationalization - Internationalization + Internacjonalizacja apps/client/src/app/app-routing.module.ts 79 @@ -6559,7 +6559,7 @@ Do you really want to close your Ghostfolio account? - Do you really want to close your Ghostfolio account? + Czy na pewno chcesz zamknąć swoje konto Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts 148 @@ -6599,7 +6599,7 @@ Join now or check out the example account - Join now or check out the example account + Dołącz teraz lub sprawdź przykładowe konto apps/client/src/app/pages/landing/landing-page.html 434 @@ -6607,7 +6607,7 @@ Oops! There was an error setting up biometric authentication. - Oops! There was an error setting up biometric authentication. + Ups! Wystąpił błąd podczas konfigurowania uwierzytelniania biometrycznego. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts 302 @@ -6615,7 +6615,7 @@ Show more - Show more + Pokaż więcej libs/ui/src/lib/top-holdings/top-holdings.component.html 81 @@ -6631,7 +6631,7 @@ Delete Profiles - Delete Profiles + Usuń Profile apps/client/src/app/components/admin-market-data/admin-market-data.html 190 @@ -6639,7 +6639,7 @@ Do you really want to delete these profiles? - Do you really want to delete these profiles? + Czy na pewno chcesz usunąć te profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts 34 @@ -6647,7 +6647,7 @@ Oops! Could not delete profiles. - Oops! Could not delete profiles. + Ups! Nie udało się usunąć profili. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts 45 @@ -6671,7 +6671,7 @@ Would you like to refine your personal investment strategy? - Would you like to refine your personal investment strategy? + Chcesz udoskonalić swoją osobistą strategię inwestycyjną? apps/client/src/app/pages/public/public-page.html 155 From 98f3fa9d7c836dec9db66f27ef985bbeccbb695f Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 4 Aug 2024 09:24:48 +0200 Subject: [PATCH 03/23] Feature/improve language localization for de 20240804 (#3639) * Update translations * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.ca.xlf | 512 ++++++++++++++++------ apps/client/src/locales/messages.de.xlf | 488 ++++++++++++++++----- apps/client/src/locales/messages.es.xlf | 486 ++++++++++++++++----- apps/client/src/locales/messages.fr.xlf | 488 ++++++++++++++++----- apps/client/src/locales/messages.it.xlf | 542 ++++++++++++++++++------ apps/client/src/locales/messages.nl.xlf | 502 +++++++++++++++++----- apps/client/src/locales/messages.pl.xlf | 488 ++++++++++++++++----- apps/client/src/locales/messages.pt.xlf | 488 ++++++++++++++++----- apps/client/src/locales/messages.tr.xlf | 526 +++++++++++++++++------ apps/client/src/locales/messages.xlf | 456 +++++++++++++++----- apps/client/src/locales/messages.zh.xlf | 488 ++++++++++++++++----- 12 files changed, 4235 insertions(+), 1230 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b0ed6df9..9582d735e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the language localization for German (`de`) - Improved the language localization for Polish (`pl`) - Upgraded `Nx` from version `19.5.1` to `19.5.6` diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 7ff136408..46c4eecf8 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -278,7 +278,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -335,7 +335,7 @@ The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. - El risc d'assumir pèrdues en les inversions és substancial. No és recomanable invertir diners que pugui necessitar a curt termini. + El risc d’assumir pèrdues en les inversions és substancial. No és recomanable invertir diners que pugui necessitar a curt termini. apps/client/src/app/app.component.html 199 @@ -422,7 +422,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -550,7 +550,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -734,7 +734,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -978,7 +978,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1022,7 +1022,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1046,31 +1046,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1106,7 +1106,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1138,11 +1138,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1191,7 +1191,7 @@ Asset Profile - Perfil d'Actiu + Perfil d’Actiu apps/client/src/app/components/admin-jobs/admin-jobs.html 35 @@ -1246,7 +1246,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -1346,7 +1346,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1406,7 +1406,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1446,7 +1446,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -1486,12 +1486,12 @@ Filtra per... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 Asset Class - Classe d'Actiu + Classe d’Actiu apps/client/src/app/components/admin-market-data/admin-market-data.html 86 @@ -1510,12 +1510,12 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 Asset Sub Class - Subclasse d'Actiu + Subclasse d’Actiu apps/client/src/app/components/admin-market-data/admin-market-data.html 95 @@ -1534,7 +1534,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -1559,7 +1559,7 @@ Activities Count - Nombre d'Activitats + Nombre d’Activitats apps/client/src/app/components/admin-market-data/admin-market-data.html 113 @@ -1631,7 +1631,7 @@ Do you really want to delete this asset profile? - Realment vol eliminar el perfil d'aquest actiu? + Realment vol eliminar el perfil d’aquest actiu? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts 18 @@ -1642,23 +1642,23 @@ Realment vol eliminar aquests perfils? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 Oops! Could not delete profiles. - Oooh! No s'han pogut eliminar els perfils + Oooh! No s’han pogut eliminar els perfils apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 Oops! Could not parse historical data. - Oooh! No s'han pogut recopilar les dades históriques. + Oooh! No s’han pogut recopilar les dades históriques. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -1666,7 +1666,7 @@ El preu de mercat actual és apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -1826,12 +1826,12 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 Add Asset Profile - Afegeix el Perfil de l'Actiu + Afegeix el Perfil de l’Actiu apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html 7 @@ -1862,7 +1862,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -1931,7 +1931,7 @@ User Count - Número d'Usuaris + Número d’Usuaris apps/client/src/app/components/admin-overview/admin-overview.html 13 @@ -1939,10 +1939,10 @@ Activity Count - Número d'Activitats + Número d’Activitats apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -1950,7 +1950,7 @@ per Usuari apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -1958,7 +1958,7 @@ Tipus de Canvi apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -1966,7 +1966,7 @@ Afegir Divisa apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -1974,7 +1974,7 @@ Registrar Usuari apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -1982,7 +1982,7 @@ Mode Només Lecutra apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -1990,7 +1990,7 @@ Recollida de Dades apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -1998,7 +1998,7 @@ Missatge del Sistema apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -2006,7 +2006,7 @@ Estableix el Missatge apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -2014,7 +2014,7 @@ Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -2022,7 +2022,7 @@ Afegir apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -2034,7 +2034,7 @@ Ordre apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -2042,7 +2042,7 @@ Depurar el Cache apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -2126,11 +2126,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -2268,6 +2272,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Benchmark @@ -2311,7 +2319,7 @@ Admin Control - Panell d'Administració + Panell d’Administració apps/client/src/app/components/header/header.component.html 68 @@ -2486,7 +2494,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2522,11 +2530,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -2563,10 +2571,10 @@ Report Data Glitch - Informar d'un Problema amb les Dades + Informar d’un Problema amb les Dades apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -2574,7 +2582,7 @@ en Actiiu apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -2582,7 +2590,7 @@ Finalitzat apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -2618,7 +2626,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2630,7 +2638,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2722,7 +2730,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -4530,7 +4538,7 @@ Update activity apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -4602,7 +4610,7 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -4610,11 +4618,11 @@ Unit Price apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4626,7 +4634,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -4634,11 +4642,11 @@ Fee apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4650,7 +4658,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -4658,7 +4666,7 @@ Import Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -4690,7 +4698,7 @@ Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -4992,6 +5000,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Monthly @@ -5522,7 +5534,11 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5530,7 +5546,11 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5602,7 +5622,7 @@ Available in apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -5610,35 +5630,35 @@ ✅ Yes apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -5646,31 +5666,31 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -5678,7 +5698,7 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -5686,7 +5706,7 @@ Self-Hosting apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -5694,7 +5714,7 @@ Use anonymously apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -5702,7 +5722,7 @@ Free Plan apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -5710,11 +5730,11 @@ Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -5722,11 +5742,11 @@ year apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -5734,7 +5754,7 @@ Notes apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -5742,7 +5762,7 @@ Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5750,7 +5770,7 @@ Ready to take your investments to the next level? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5758,7 +5778,7 @@ Effortlessly track, analyze, and visualize your wealth with Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -5766,7 +5786,7 @@ Get Started apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5774,7 +5794,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -6298,7 +6318,7 @@ Grant libs/ui/src/lib/i18n.ts - 14 + 15 @@ -6306,7 +6326,7 @@ Higher Risk libs/ui/src/lib/i18n.ts - 15 + 16 @@ -6314,7 +6334,7 @@ This activity already exists. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -6322,7 +6342,7 @@ Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -6358,7 +6378,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -6614,7 +6634,7 @@ Extreme Fear libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6622,7 +6642,7 @@ Extreme Greed libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6630,7 +6650,7 @@ Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6662,11 +6682,11 @@ No data available libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -6677,6 +6697,262 @@ 81 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 129541d8b..ff8a46aa6 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -154,7 +154,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -194,31 +194,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -254,7 +254,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -286,11 +286,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -366,7 +366,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -458,7 +458,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -518,7 +518,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -558,7 +558,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -586,7 +586,7 @@ Anzahl Aktivitäten apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -654,7 +654,7 @@ pro Benutzer apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -690,7 +690,7 @@ Wechselkurse apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -698,7 +698,7 @@ Währung hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -706,7 +706,7 @@ Systemmeldung apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -714,7 +714,7 @@ Systemmeldung setzen apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -722,7 +722,7 @@ Lese-Modus apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -730,7 +730,7 @@ Gutscheincodes apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -738,7 +738,7 @@ Hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -750,7 +750,7 @@ Verwaltung apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -758,7 +758,7 @@ Cache leeren apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -918,7 +918,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -1282,11 +1282,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -1342,11 +1342,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -1358,7 +1362,7 @@ Datenfehler melden apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -1858,7 +1862,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2194,7 +2198,7 @@ Aktivität bearbeiten apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -2206,7 +2210,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2226,7 +2230,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -2238,7 +2242,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2250,11 +2254,11 @@ Stückpreis apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2266,11 +2270,11 @@ Gebühr apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2290,7 +2294,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -2314,7 +2318,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -2364,6 +2368,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Currencies @@ -2482,7 +2490,7 @@ Aktivitäten importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -2682,7 +2690,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -2818,7 +2826,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2830,7 +2838,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2838,7 +2846,7 @@ Filtern nach... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -3110,7 +3118,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -3118,11 +3126,11 @@ Keine Daten verfügbar libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -3290,7 +3298,7 @@ Benutzer Registrierung apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -3298,7 +3306,7 @@ Daten validieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -3406,7 +3414,7 @@ Zuwendung libs/ui/src/lib/i18n.ts - 14 + 15 @@ -3414,7 +3422,7 @@ Höheres Risiko libs/ui/src/lib/i18n.ts - 15 + 16 @@ -3806,7 +3814,7 @@ Ups! Der historische Wechselkurs konnte nicht abgerufen werden vom apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -3954,7 +3962,7 @@ Cash-Bestand aktualisieren apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -4022,7 +4030,7 @@ Diese Aktivität existiert bereits. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -4366,7 +4374,7 @@ Verfügbar in apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -4374,35 +4382,35 @@ ✅ Ja apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -4410,31 +4418,31 @@ ❌ Nein apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -4442,7 +4450,7 @@ ❌ Nein apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -4450,7 +4458,7 @@ Self-Hosting apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -4458,7 +4466,7 @@ Anonyme Nutzung apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -4466,7 +4474,7 @@ Kostenlose Nutzung apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -4474,7 +4482,7 @@ Hinweise apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -4482,7 +4490,7 @@ Mit Ghostfolio kannst du dein Vermögen einfach überwachen, analysieren und visualisieren. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -4490,7 +4498,7 @@ Tools für persönliche Finanzen apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -4606,7 +4614,7 @@ Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5242,7 +5250,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -5326,7 +5334,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -5542,7 +5550,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -5630,7 +5638,7 @@ Bitte beachte, dass die bereitgestellten Ghostfolio vs Informationen auf unserer unabhängigen Recherche und Analyse beruhen. Diese Webseite steht in keiner Verbindung zu oder einem anderen im Vergleich erwähnten Produkt. Da sich die Landschaft der Personal Finance Tools ständig weiterentwickelt, ist es wichtig, alle spezifischen Details oder Änderungen direkt auf der jeweiligen Produktseite zu überprüfen. Brauchen die Daten eine Auffrischung? Unterstütze uns bei der Pflege der aktuellen Daten auf GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5638,7 +5646,7 @@ Bereit, deine Investitionen auf ein neues Levelzu bringen? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5646,7 +5654,7 @@ Jetzt loslegen apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5654,7 +5662,11 @@ Schweiz apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5662,7 +5674,11 @@ Weltweit apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5730,7 +5746,7 @@ Ups! Der historische Wechselkurs konnte nicht abgerufen werden vom apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -6010,7 +6026,7 @@ Extreme Angst libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6018,7 +6034,7 @@ Extreme Gier libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6026,7 +6042,7 @@ Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6034,7 +6050,7 @@ Ups! Die historischen Daten konnten nicht geparsed werden. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -6074,11 +6090,11 @@ Ab apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -6086,11 +6102,11 @@ Jahr apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -6122,7 +6138,7 @@ Der aktuelle Marktpreis ist apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6212,6 +6228,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Absolute Asset Performance @@ -6374,7 +6394,7 @@ Daten einholen apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6450,7 +6470,7 @@ Aktiv apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6458,7 +6478,7 @@ Abgeschlossen apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6642,7 +6662,7 @@ Möchtest du diese Profile wirklich löschen? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6650,7 +6670,7 @@ Ups! Die Profile konnten nicht gelöscht werden. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6677,6 +6697,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgetierung + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Persönliche Finanzen + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Datenschutz + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Vermögen + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Vermögensverwaltung + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australien + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Österreich + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgien + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgarien + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Kanada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Tschechien + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finnland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + Frankreich + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Deutschland + + libs/ui/src/lib/i18n.ts + 77 + + + + India + Indien + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italien + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Niederlande + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + Neuseeland + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Polen + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Rumänien + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + Südafrika + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + USA + + libs/ui/src/lib/i18n.ts + 88 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index a2736f959..4fb3cfe8c 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -155,7 +155,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -195,31 +195,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -255,7 +255,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -287,11 +287,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -367,7 +367,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -459,7 +459,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -519,7 +519,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -559,7 +559,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -587,7 +587,7 @@ Recuento de actividad apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -655,7 +655,7 @@ por usario apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -691,7 +691,7 @@ Tipos de cambio apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -699,7 +699,7 @@ Añadir divisa apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -707,7 +707,7 @@ Mensaje del sistema apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -715,7 +715,7 @@ Establecer mensaje apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -723,7 +723,7 @@ Modo de solo lectura apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -731,7 +731,7 @@ Cupones apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -739,7 +739,7 @@ Añadir apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -751,7 +751,7 @@ Tareas domésticas apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -759,7 +759,7 @@ Limpiar caché apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -919,7 +919,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -1283,11 +1283,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -1343,11 +1343,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -1359,7 +1363,7 @@ Reporta un anomalía de los datos apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -1859,7 +1863,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2195,7 +2199,7 @@ Actualizar opereación apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -2207,7 +2211,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2227,7 +2231,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -2239,7 +2243,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2251,11 +2255,11 @@ Precio unitario apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2267,11 +2271,11 @@ Comisión apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2291,7 +2295,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -2315,7 +2319,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -2365,6 +2369,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Currencies @@ -2483,7 +2491,7 @@ Importar operaciones apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -2671,7 +2679,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -2819,7 +2827,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2831,7 +2839,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2839,7 +2847,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -3111,7 +3119,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -3119,11 +3127,11 @@ Sin datos disponibles libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -3291,7 +3299,7 @@ Registro de usuario apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -3299,7 +3307,7 @@ Validando datos... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -3407,7 +3415,7 @@ Conceder libs/ui/src/lib/i18n.ts - 14 + 15 @@ -3415,7 +3423,7 @@ Riesgo mayor libs/ui/src/lib/i18n.ts - 15 + 16 @@ -3807,7 +3815,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -3955,7 +3963,7 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -4023,7 +4031,7 @@ This activity already exists. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -4367,7 +4375,7 @@ Disponible en apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -4375,35 +4383,35 @@ ✅ Sí apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -4411,31 +4419,31 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -4443,7 +4451,7 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -4451,7 +4459,7 @@ Self-Hosting apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -4459,7 +4467,7 @@ Uso anónimo apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -4467,7 +4475,7 @@ Plan gratuito apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -4475,7 +4483,7 @@ Notas apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -4483,7 +4491,7 @@ Siga, analice y visualice su patrimonio sin esfuerzo con Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -4491,7 +4499,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -4607,7 +4615,7 @@ Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5243,7 +5251,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -5327,7 +5335,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -5543,7 +5551,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -5631,7 +5639,7 @@ Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5639,7 +5647,7 @@ ¿Listo para llevar sus inversiones al siguiente nivel? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5647,7 +5655,7 @@ Get Started apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5655,7 +5663,11 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5663,7 +5675,11 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5731,7 +5747,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -6011,7 +6027,7 @@ Extreme Fear libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6019,7 +6035,7 @@ Extreme Greed libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6027,7 +6043,7 @@ Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6035,7 +6051,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -6075,11 +6091,11 @@ Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -6087,11 +6103,11 @@ year apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -6123,7 +6139,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6213,6 +6229,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Absolute Asset Performance @@ -6375,7 +6395,7 @@ Data Gathering apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6451,7 +6471,7 @@ Activo apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6459,7 +6479,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6643,7 +6663,7 @@ Estas seguro de borrar estos perfiles? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6651,7 +6671,7 @@ Oops! Could not delete profiles. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6678,6 +6698,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 91380c302..74be9e7a6 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -166,7 +166,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -210,7 +210,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -250,31 +250,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -310,7 +310,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -342,11 +342,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -414,7 +414,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -514,7 +514,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -574,7 +574,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -614,7 +614,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -622,7 +622,7 @@ Filtrer par... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -646,7 +646,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -670,7 +670,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -850,7 +850,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -906,7 +906,7 @@ Nombre d’Activités apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -914,7 +914,7 @@ par Utilisateur apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -922,7 +922,7 @@ Taux de Conversion apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -930,7 +930,7 @@ Ajouter Devise apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -942,11 +942,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -958,7 +962,7 @@ Inscription de Nouveaux Utilisateurs apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -966,7 +970,7 @@ Mode Lecture Seule apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -974,7 +978,7 @@ Message Système apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -982,7 +986,7 @@ Définir Message apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -990,7 +994,7 @@ Codes promotionnels apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -998,7 +1002,7 @@ Ajouter apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1010,7 +1014,7 @@ Maintenance apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -1018,7 +1022,7 @@ Vider le Cache apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -1128,6 +1132,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Benchmark @@ -1222,7 +1230,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -1366,7 +1374,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -1378,7 +1386,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -1630,11 +1638,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -1690,7 +1698,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1702,7 +1710,7 @@ Signaler une Erreur de Données apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -2418,7 +2426,7 @@ Mettre à jour Activité apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -2430,7 +2438,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2450,7 +2458,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -2458,11 +2466,11 @@ Prix Unitaire apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2474,11 +2482,11 @@ Frais apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2506,7 +2514,7 @@ Validation des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -2998,7 +3006,7 @@ Importer Activités apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -3170,7 +3178,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -3346,11 +3354,11 @@ Pas de données disponibles libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -3406,7 +3414,7 @@ Donner libs/ui/src/lib/i18n.ts - 14 + 15 @@ -3414,7 +3422,7 @@ Risque élevé libs/ui/src/lib/i18n.ts - 15 + 16 @@ -3806,7 +3814,7 @@ Oups ! Nous n’avons pas pu obtenir le taux de change historique à partir de apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -3954,7 +3962,7 @@ Mettre à jour le Solde apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -4022,7 +4030,7 @@ Cette activité existe déjà. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -4366,7 +4374,7 @@ Disponible en apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -4374,35 +4382,35 @@ ✅ Oui apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -4410,31 +4418,31 @@ ❌ Non apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -4442,7 +4450,7 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -4450,7 +4458,7 @@ Self-Hosting apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -4458,7 +4466,7 @@ Utilisation anonyme apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -4466,7 +4474,7 @@ Plan gratuit apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -4474,7 +4482,7 @@ Notes apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -4482,7 +4490,7 @@ Effortlessly track, analyze, and visualize your wealth with Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -4490,7 +4498,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -4606,7 +4614,7 @@ Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5242,7 +5250,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -5326,7 +5334,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -5542,7 +5550,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -5630,7 +5638,7 @@ Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5638,7 +5646,7 @@ Ready to take your investments to the next level? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5646,7 +5654,7 @@ Démarrer apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5654,7 +5662,11 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5662,7 +5674,11 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5730,7 +5746,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -6010,7 +6026,7 @@ Extreme Fear libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6018,7 +6034,7 @@ Extreme Greed libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6026,7 +6042,7 @@ Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6034,7 +6050,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -6074,11 +6090,11 @@ Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -6086,11 +6102,11 @@ year apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -6122,7 +6138,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6212,6 +6228,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Absolute Asset Performance @@ -6374,7 +6394,7 @@ Data Gathering apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6450,7 +6470,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6458,7 +6478,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6642,7 +6662,7 @@ Do you really want to delete these profiles? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6650,7 +6670,7 @@ Oops! Could not delete profiles. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6677,6 +6697,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 4d1089cf6..f910e7d90 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -72,7 +72,7 @@ Do you really want to revoke this granted access? - Vuoi davvero revocare l'accesso concesso? + Vuoi davvero revocare l’accesso concesso? apps/client/src/app/components/access-table/access-table.component.ts 50 @@ -155,7 +155,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -195,31 +195,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -255,7 +255,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -287,11 +287,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -367,7 +367,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -404,7 +404,7 @@ Asset Profiles - Profilo dell'asset + Profilo dell’asset libs/ui/src/lib/assistant/assistant.html 67 @@ -459,7 +459,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -519,7 +519,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -559,7 +559,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -587,7 +587,7 @@ Conteggio attività apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -655,7 +655,7 @@ per utente apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -691,7 +691,7 @@ Tassi di cambio apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -699,7 +699,7 @@ Aggiungi valuta apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -707,7 +707,7 @@ Messaggio di sistema apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -715,7 +715,7 @@ Imposta messaggio apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -723,7 +723,7 @@ Modalità di sola lettura apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -731,7 +731,7 @@ Buoni sconto apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -739,7 +739,7 @@ Aggiungi apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -751,7 +751,7 @@ Bilancio domestico apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -759,7 +759,7 @@ Svuota la cache apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -804,7 +804,7 @@ Current Market Mood - Stato d'animo attuale del mercato + Stato d’animo attuale del mercato apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html 12 @@ -919,7 +919,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -1244,7 +1244,7 @@ Buying Power - Potere d'acquisto + Potere d’acquisto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 252 @@ -1283,16 +1283,16 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 Please enter the amount of your emergency fund: - Inserisci l'importo del tuo fondo di emergenza: + Inserisci l’importo del tuo fondo di emergenza: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts 58 @@ -1343,11 +1343,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -1356,10 +1360,10 @@ Report Data Glitch - Segnala un'anomalia dei dati + Segnala un’anomalia dei dati apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -1600,7 +1604,7 @@ License - Licenza d'uso + Licenza d’uso apps/client/src/app/app.component.html 85 @@ -1792,7 +1796,7 @@ Grant access - Concedi l'accesso + Concedi l’accesso apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html 7 @@ -1859,7 +1863,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1924,7 +1928,7 @@ As you are already logged in, you cannot access the demo account. - Poiché hai già effettuato l'accesso, non puoi accedere all'account demo. + Poiché hai già effettuato l’accesso, non puoi accedere all’account demo. apps/client/src/app/pages/demo/demo-page.component.ts 33 @@ -2192,22 +2196,22 @@ Update activity - Aggiorna l'attività + Aggiorna l’attività apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 Add activity - Aggiungi un'attività + Aggiungi un’attività apps/client/src/app/components/home-overview/home-overview.html 52 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2227,7 +2231,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -2239,7 +2243,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2251,11 +2255,11 @@ Prezzo unitario apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2267,11 +2271,11 @@ Commissione apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2291,7 +2295,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -2315,7 +2319,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -2340,7 +2344,7 @@ Import has been completed - L'importazione è stata completata + L’importazione è stata completata apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 128 @@ -2365,6 +2369,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Currencies @@ -2448,7 +2456,7 @@ Oops, authentication has failed. - Ops, l'autenticazione non è riuscita. + Ops, l’autenticazione non è riuscita. apps/client/src/app/pages/webauthn/webauthn-page.html 19 @@ -2483,7 +2491,7 @@ Importa le attività apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -2671,7 +2679,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -2819,7 +2827,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2831,7 +2839,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2839,7 +2847,7 @@ Filtra per... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -2896,7 +2904,7 @@ Excluded from Analysis - Escluso dall'analisi + Escluso dall’analisi apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 264 @@ -3111,7 +3119,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -3119,11 +3127,11 @@ Nessun dato disponibile libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -3291,7 +3299,7 @@ Registrazione utente apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -3299,7 +3307,7 @@ Convalida dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -3407,7 +3415,7 @@ Sovvenzione libs/ui/src/lib/i18n.ts - 14 + 15 @@ -3415,7 +3423,7 @@ Rischio più elevato libs/ui/src/lib/i18n.ts - 15 + 16 @@ -3460,7 +3468,7 @@ Sneak peek at upcoming functionality - Un'anteprima delle funzionalità in arrivo + Un’anteprima delle funzionalità in arrivo apps/client/src/app/components/user-account-settings/user-account-settings.html 212 @@ -3807,7 +3815,7 @@ Ops! Impossibile ottenere il tasso di cambio storico da apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -3864,7 +3872,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. - La nostra offerta cloud ufficiale Ghostfolio Premium è il modo più semplice per iniziare. Grazie al risparmio di tempo, questa è l'opzione migliore per la maggior parte delle persone. I ricavi vengono utilizzati per coprire l'infrastruttura di hosting e per finanziare lo sviluppo continuo di Ghostfolio. + La nostra offerta cloud ufficiale Ghostfolio Premium è il modo più semplice per iniziare. Grazie al risparmio di tempo, questa è l’opzione migliore per la maggior parte delle persone. I ricavi vengono utilizzati per coprire l’infrastruttura di hosting e per finanziare lo sviluppo continuo di Ghostfolio. apps/client/src/app/pages/pricing/pricing-page.html 6 @@ -3872,7 +3880,7 @@ Impersonate User - Imita l'utente + Imita l’utente apps/client/src/app/components/admin-users/admin-users.html 218 @@ -3880,7 +3888,7 @@ Delete User - Elimina l'utente + Elimina l’utente apps/client/src/app/components/admin-users/admin-users.html 229 @@ -3955,7 +3963,7 @@ Aggiornamento del saldo di cassa apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -3968,7 +3976,7 @@ Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: - Effettua oggi stesso l'aggiornamento a Ghostfolio Premium e ottieni l'accesso a funzionalità esclusive per migliorare la tua esperienza di investimento: + Effettua oggi stesso l’aggiornamento a Ghostfolio Premium e ottieni l’accesso a funzionalità esclusive per migliorare la tua esperienza di investimento: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 15 @@ -4023,7 +4031,7 @@ Questa attività esiste già. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -4316,7 +4324,7 @@ Add Asset Profile - Aggiungi il profilo dell'asset + Aggiungi il profilo dell’asset apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html 7 @@ -4367,7 +4375,7 @@ Disponibile in apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -4375,35 +4383,35 @@ ✅ Si apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -4411,31 +4419,31 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -4443,7 +4451,7 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -4451,7 +4459,7 @@ Self-hosting apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -4459,7 +4467,7 @@ Usalo in modo anonimo apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -4467,7 +4475,7 @@ Piano gratuito apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -4475,7 +4483,7 @@ Note apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -4483,7 +4491,7 @@ Monitora, analizza e visualizza facilmente la tua ricchezza con Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -4491,7 +4499,7 @@ Strumenti di finanza personale apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -4607,7 +4615,7 @@ Giappone libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5028,7 +5036,7 @@ interested in financial independence - sei interessato all'indipendenza finanziaria + sei interessato all’indipendenza finanziaria apps/client/src/app/pages/landing/landing-page.html 307 @@ -5243,7 +5251,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -5327,7 +5335,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -5543,7 +5551,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -5552,7 +5560,7 @@ This overview page features a curated collection of personal finance tools compared to the open source alternative Ghostfolio. If you value transparency, data privacy, and community collaboration, Ghostfolio provides an excellent opportunity to take control of your financial management. - Questa pagina panoramica presenta una raccolta curata di strumenti di finanza personale confrontati con l'alternativa open source Ghostfolio. Se apprezzi la trasparenza, la privacy dei dati e la collaborazione con la comunità, Ghostfolio ti offre un'ottima opportunità per prendere il controllo della tua gestione finanziaria. + Questa pagina panoramica presenta una raccolta curata di strumenti di finanza personale confrontati con l’alternativa open source Ghostfolio. Se apprezzi la trasparenza, la privacy dei dati e la collaborazione con la comunità, Ghostfolio ti offre un’ottima opportunità per prendere il controllo della tua gestione finanziaria. apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html 8 @@ -5568,7 +5576,7 @@ Open Source Alternative to - L'alternativa open source a + L’alternativa open source a apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html 42 @@ -5576,7 +5584,7 @@ Open Source Alternative to - L'alternativa open source a + L’alternativa open source a apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts 27 @@ -5584,7 +5592,7 @@ The Open Source Alternative to - L'alternativa open source a + L’alternativa open source a apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 8 @@ -5592,7 +5600,7 @@ Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. - Stai cercando un'alternativa open source a ? Ghostfolio è un potente strumento di gestione del portafoglio che fornisce alle persone una piattaforma completa per monitorare, analizzare e ottimizzare i propri investimenti. Che tu sia un investitore esperto o alle prime armi, Ghostfolio offre un'interfaccia utente intuitiva e un'ampia gamma di funzionalità per aiutarti a prendere decisioni informate e il controllo del tuo futuro finanziario. + Stai cercando un’alternativa open source a ? Ghostfolio è un potente strumento di gestione del portafoglio che fornisce alle persone una piattaforma completa per monitorare, analizzare e ottimizzare i propri investimenti. Che tu sia un investitore esperto o alle prime armi, Ghostfolio offre un’interfaccia utente intuitiva e un’ampia gamma di funzionalità per aiutarti a prendere decisioni informate e il controllo del tuo futuro finanziario. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 13 @@ -5600,7 +5608,7 @@ Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. - Ghostfolio è un software open source (OSS) che offre un'alternativa economicamente vantaggiosa a particolarmente adatta a persone con un budget limitato, come quelle che perseguono l'indipendenza finanziaria e il pensionamento anticipato (FIRE). Grazie agli sforzi collettivi di una comunità di sviluppatori e di appassionati di finanza personale, Ghostfolio migliora continuamente le sue capacità, la sua sicurezza e la sua esperienza utente. + Ghostfolio è un software open source (OSS) che offre un’alternativa economicamente vantaggiosa a particolarmente adatta a persone con un budget limitato, come quelle che perseguono l’indipendenza finanziaria e il pensionamento anticipato (FIRE). Grazie agli sforzi collettivi di una comunità di sviluppatori e di appassionati di finanza personale, Ghostfolio migliora continuamente le sue capacità, la sua sicurezza e la sua esperienza utente. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 27 @@ -5631,7 +5639,7 @@ Nota bene: le informazioni fornite si basano sulle nostre ricerche e analisi indipendenti. Questo sito web non è affiliato con o a qualsiasi altro prodotto citato nel confronto. Poiché il panorama degli strumenti di finanza personale si evolve, è essenziale verificare qualsiasi dettaglio o modifica specifica direttamente nella pagina del prodotto in questione. I dati hanno bisogno di essere aggiornati? Aiutaci a mantenere i dati accurati su GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5639,7 +5647,7 @@ Sei pronto a portare il tuo investimento al livello successivo? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5647,7 +5655,7 @@ Inizia apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5655,7 +5663,11 @@ Svizzera apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5663,7 +5675,11 @@ Globale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5731,7 +5747,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -6011,7 +6027,7 @@ Extreme Fear libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6019,7 +6035,7 @@ Extreme Greed libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6027,7 +6043,7 @@ Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6035,7 +6051,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -6075,11 +6091,11 @@ Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -6087,11 +6103,11 @@ year apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -6123,7 +6139,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6213,6 +6229,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Absolute Asset Performance @@ -6375,7 +6395,7 @@ Data Gathering apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6451,7 +6471,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6459,7 +6479,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6643,7 +6663,7 @@ Do you really want to delete these profiles? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6651,7 +6671,7 @@ Oops! Could not delete profiles. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6678,6 +6698,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 7d237f713..a5e623efa 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -154,7 +154,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -194,31 +194,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -254,7 +254,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -286,11 +286,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -366,7 +366,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -458,7 +458,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -518,7 +518,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -558,7 +558,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -586,7 +586,7 @@ Aantal activiteiten apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -654,7 +654,7 @@ per gebruiker apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -690,7 +690,7 @@ Wisselkoersen apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -698,7 +698,7 @@ Valuta toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -706,7 +706,7 @@ Systeembericht apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -714,7 +714,7 @@ Bericht instellen apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -722,7 +722,7 @@ Alleen lezen apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -730,7 +730,7 @@ Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -738,7 +738,7 @@ Toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -750,7 +750,7 @@ Huishouding apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -758,7 +758,7 @@ Cache legen apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -918,7 +918,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -1282,11 +1282,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -1342,11 +1342,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -1358,7 +1362,7 @@ Gegevensstoring melden apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -1858,7 +1862,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2063,7 +2067,7 @@ Regions - Regio's + Regio’s apps/client/src/app/pages/portfolio/allocations/allocations-page.html 198 @@ -2194,7 +2198,7 @@ Activiteit bijwerken apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -2206,7 +2210,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2226,7 +2230,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -2238,7 +2242,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2250,11 +2254,11 @@ Prijs per eenheid apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2266,11 +2270,11 @@ Transactiekosten apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2290,7 +2294,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -2314,7 +2318,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -2364,6 +2368,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Currencies @@ -2482,7 +2490,7 @@ Activiteiten importeren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -2670,7 +2678,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -2818,7 +2826,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2830,7 +2838,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2838,7 +2846,7 @@ Filter op... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -3110,7 +3118,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -3118,11 +3126,11 @@ Geen gegevens beschikbaar libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -3290,7 +3298,7 @@ Account aanmaken apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -3298,7 +3306,7 @@ Gegevens valideren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -3406,7 +3414,7 @@ Toelage libs/ui/src/lib/i18n.ts - 14 + 15 @@ -3414,7 +3422,7 @@ Hoger risico libs/ui/src/lib/i18n.ts - 15 + 16 @@ -3806,7 +3814,7 @@ Oeps! Kon de historische wisselkoers niet krijgen van apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -3954,7 +3962,7 @@ Saldo bijwerken apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -4022,7 +4030,7 @@ Deze activiteit bestaat al. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -4203,7 +4211,7 @@ ETFs - ETF's + ETF’s apps/client/src/app/pages/features/features-page.html 25 @@ -4366,7 +4374,7 @@ Beschikbaar in apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -4374,35 +4382,35 @@ ✅ Wel apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -4410,31 +4418,31 @@ ❌ Geen apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -4442,7 +4450,7 @@ ❌ Geen apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -4450,7 +4458,7 @@ Zelf hosten apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -4458,7 +4466,7 @@ Gebruik anoniem apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -4466,7 +4474,7 @@ Gratis abonnement apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -4474,7 +4482,7 @@ Notities apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -4482,7 +4490,7 @@ Volg, analyseer en visualiseer moeiteloos je vermogen met Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -4490,7 +4498,7 @@ Tools voor persoonlijke financiën apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -4511,7 +4519,7 @@ Stocks, ETFs, bonds, cryptocurrencies, commodities - Aandelen, ETF's, obligaties, cryptocurrencies, grondstoffen + Aandelen, ETF’s, obligaties, cryptocurrencies, grondstoffen apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 25 @@ -4555,7 +4563,7 @@ ETFs without Countries - ETF's zonder Landen + ETF’s zonder Landen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 90 @@ -4563,7 +4571,7 @@ ETFs without Sectors - ETF's zonder Sectoren + ETF’s zonder Sectoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 95 @@ -4606,7 +4614,7 @@ Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -4915,7 +4923,7 @@ Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. - Ghostfolio stelt drukbezette mensen in staat om aandelen, ETF's of cryptocurrencies bij te houden zonder gevolgd te worden. + Ghostfolio stelt drukbezette mensen in staat om aandelen, ETF’s of cryptocurrencies bij te houden zonder gevolgd te worden. apps/client/src/app/pages/landing/landing-page.html 229 @@ -4979,7 +4987,7 @@ trading stocks, ETFs or cryptocurrencies on multiple platforms - handelt in aandelen, ETF's of cryptocurrencies op meerdere platforms + handelt in aandelen, ETF’s of cryptocurrencies op meerdere platforms apps/client/src/app/pages/landing/landing-page.html 280 @@ -5242,7 +5250,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -5326,7 +5334,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -5542,7 +5550,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -5630,7 +5638,7 @@ Houd er rekening mee dat de verstrekte informatie gebaseerd is op ons onafhankelijk onderzoek en analyse. Deze website is niet gelieerd aan of een ander product dat in de vergelijking wordt genoemd. Aangezien het landschap van tools voor persoonlijke financiën evolueert, is het essentieel om specifieke details of wijzigingen rechtstreeks op de betreffende productpagina te controleren. Hebben je gegevens een opfrisbeurt nodig? Help ons nauwkeurige gegevens te onderhouden over GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5638,7 +5646,7 @@ Klaar om je investeringen naar een hoger niveau te brengen? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5646,7 +5654,7 @@ Aan de slag apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5654,7 +5662,11 @@ Zwitserland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5662,7 +5674,11 @@ Wereldwijd apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5730,7 +5746,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -6010,7 +6026,7 @@ Extreme Fear libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6018,7 +6034,7 @@ Extreme Greed libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6026,7 +6042,7 @@ Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6034,7 +6050,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -6074,11 +6090,11 @@ Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -6086,11 +6102,11 @@ year apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -6122,7 +6138,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6212,6 +6228,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Absolute Asset Performance @@ -6374,7 +6394,7 @@ Data Gathering apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6450,7 +6470,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6458,7 +6478,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6642,7 +6662,7 @@ Do you really want to delete these profiles? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6650,7 +6670,7 @@ Oops! Could not delete profiles. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6677,6 +6697,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index e79f06166..6d3e7f2ee 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -82,7 +82,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -178,7 +178,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -394,7 +394,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -650,7 +650,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -906,7 +906,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -950,7 +950,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -974,31 +974,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1034,7 +1034,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1066,11 +1066,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1154,7 +1154,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -1238,7 +1238,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1298,7 +1298,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1338,7 +1338,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -1378,7 +1378,7 @@ Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -1402,7 +1402,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -1426,7 +1426,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -1518,7 +1518,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -1654,7 +1654,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -1690,7 +1690,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -1762,7 +1762,7 @@ Activity Count apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -1770,7 +1770,7 @@ per User apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -1778,7 +1778,7 @@ Exchange Rates apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -1786,7 +1786,7 @@ Add Currency apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -1794,7 +1794,7 @@ User Signup apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -1802,7 +1802,7 @@ Read-only Mode apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -1810,7 +1810,7 @@ System Message apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -1818,7 +1818,7 @@ Set Message apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -1826,7 +1826,7 @@ Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -1834,7 +1834,7 @@ Add apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1846,7 +1846,7 @@ Housekeeping apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -1854,7 +1854,7 @@ Flush Cache apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -1954,11 +1954,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -2096,6 +2100,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Benchmark @@ -2246,7 +2254,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2258,7 +2266,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2350,7 +2358,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2646,11 +2654,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -2706,7 +2714,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2718,7 +2726,7 @@ Report Data Glitch apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -4122,7 +4130,7 @@ Update activity apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -4194,7 +4202,7 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -4202,11 +4210,11 @@ Unit Price apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4218,7 +4226,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -4226,11 +4234,11 @@ Fee apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4242,7 +4250,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -4250,7 +4258,7 @@ Import Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -4282,7 +4290,7 @@ Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -5138,7 +5146,7 @@ Available in apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -5146,35 +5154,35 @@ ✅ Yes apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -5182,31 +5190,31 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -5214,7 +5222,7 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -5222,7 +5230,7 @@ Self-Hosting apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -5230,7 +5238,7 @@ Use anonymously apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -5238,7 +5246,7 @@ Free Plan apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -5246,7 +5254,7 @@ Notes apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -5254,7 +5262,7 @@ Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5262,7 +5270,7 @@ Ready to take your investments to the next level? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5270,7 +5278,7 @@ Effortlessly track, analyze, and visualize your wealth with Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -5278,7 +5286,7 @@ Get Started apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5286,7 +5294,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -5294,7 +5302,11 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5302,7 +5314,11 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5682,7 +5698,7 @@ Grant libs/ui/src/lib/i18n.ts - 14 + 15 @@ -5690,7 +5706,7 @@ Higher Risk libs/ui/src/lib/i18n.ts - 15 + 16 @@ -5698,7 +5714,7 @@ This activity already exists. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -5706,7 +5722,7 @@ Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5742,7 +5758,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -5990,7 +6006,7 @@ Extreme Fear libs/ui/src/lib/i18n.ts - 69 + 91 @@ -5998,7 +6014,7 @@ Extreme Greed libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6006,7 +6022,7 @@ Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6038,11 +6054,11 @@ Brak danych libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -6074,11 +6090,11 @@ Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -6086,11 +6102,11 @@ year apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -6122,7 +6138,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6212,6 +6228,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Absolute Asset Performance @@ -6374,7 +6394,7 @@ Gromadzenie Danych apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6450,7 +6470,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6458,7 +6478,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6642,7 +6662,7 @@ Czy na pewno chcesz usunąć te profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6650,7 +6670,7 @@ Ups! Nie udało się usunąć profili. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6677,6 +6697,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index ac3b53dfb..90ebd02fd 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -166,7 +166,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -210,7 +210,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -250,31 +250,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -310,7 +310,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -342,11 +342,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -414,7 +414,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -514,7 +514,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -574,7 +574,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -614,7 +614,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -622,7 +622,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -646,7 +646,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -670,7 +670,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -698,7 +698,7 @@ Número de Atividades apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -810,7 +810,7 @@ por Utilizador apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -818,7 +818,7 @@ Taxas de Câmbio apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -826,7 +826,7 @@ Adicionar Moeda apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -834,7 +834,7 @@ Mensagem de Sistema apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -842,7 +842,7 @@ Definir Mensagem apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -850,7 +850,7 @@ Modo Somente Leitura apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -858,7 +858,7 @@ Cupões apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -866,7 +866,7 @@ Adicionar apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -878,7 +878,7 @@ Manutenção apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -886,7 +886,7 @@ Limpar Cache apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -996,6 +996,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Benchmark @@ -1090,7 +1094,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -1234,7 +1238,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -1246,7 +1250,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -1506,11 +1510,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -1566,7 +1570,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1646,11 +1650,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -1662,7 +1670,7 @@ Dados do Relatório com Problema apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -2334,7 +2342,7 @@ Atualizar atividade apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -2346,7 +2354,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2366,7 +2374,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -2374,11 +2382,11 @@ Preço por Unidade apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2390,11 +2398,11 @@ Comissão apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2414,7 +2422,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -2878,7 +2886,7 @@ Importar Atividades apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -3022,7 +3030,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -3198,11 +3206,11 @@ Sem dados disponíveis libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -3234,7 +3242,7 @@ Registo do Utilizador apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -3306,7 +3314,7 @@ A validar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -3406,7 +3414,7 @@ Conceder libs/ui/src/lib/i18n.ts - 14 + 15 @@ -3414,7 +3422,7 @@ Risco mais Elevado libs/ui/src/lib/i18n.ts - 15 + 16 @@ -3806,7 +3814,7 @@ Oops! Não foi possível obter a taxa de câmbio histórica de apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -3954,7 +3962,7 @@ Atualizar saldo em Dinheiro apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -4022,7 +4030,7 @@ Essa atividade já existe. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -4366,7 +4374,7 @@ Disponível em apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -4374,35 +4382,35 @@ ✅ Sim apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -4410,31 +4418,31 @@ ❌ Não apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -4442,7 +4450,7 @@ ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -4450,7 +4458,7 @@ Self-Hosting apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -4458,7 +4466,7 @@ Utilizar anonimamente apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -4466,7 +4474,7 @@ Plano gratuito apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -4474,7 +4482,7 @@ Notas apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -4482,7 +4490,7 @@ Effortlessly track, analyze, and visualize your wealth with Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -4490,7 +4498,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -4606,7 +4614,7 @@ Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5242,7 +5250,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -5326,7 +5334,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -5542,7 +5550,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -5630,7 +5638,7 @@ Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5638,7 +5646,7 @@ Ready to take your investments to the next level? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5646,7 +5654,7 @@ Começar apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5654,7 +5662,11 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5662,7 +5674,11 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5730,7 +5746,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -6010,7 +6026,7 @@ Extreme Fear libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6018,7 +6034,7 @@ Extreme Greed libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6026,7 +6042,7 @@ Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6034,7 +6050,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -6074,11 +6090,11 @@ Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -6086,11 +6102,11 @@ year apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -6122,7 +6138,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6212,6 +6228,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Absolute Asset Performance @@ -6374,7 +6394,7 @@ Data Gathering apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6450,7 +6470,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6458,7 +6478,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6642,7 +6662,7 @@ Do you really want to delete these profiles? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6650,7 +6670,7 @@ Oops! Could not delete profiles. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6677,6 +6697,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 9da55aac3..3e9fd38ac 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -82,7 +82,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -178,7 +178,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -394,7 +394,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -626,7 +626,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -870,7 +870,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -914,7 +914,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -938,31 +938,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -998,7 +998,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1030,11 +1030,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1102,7 +1102,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -1202,7 +1202,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1262,7 +1262,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1302,7 +1302,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -1315,7 +1315,7 @@ ETFs without Countries - Ülkesi Olmayan ETF'ler + Ülkesi Olmayan ETF’ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 90 @@ -1323,7 +1323,7 @@ ETFs without Sectors - Sektörü Olmayan ETF'ler + Sektörü Olmayan ETF’ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 95 @@ -1334,7 +1334,7 @@ Filtrele... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -1358,7 +1358,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -1382,7 +1382,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -1578,7 +1578,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -1598,7 +1598,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -1654,7 +1654,7 @@ İşlem Sayısı apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -1662,7 +1662,7 @@ Kullanıcı başına apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -1670,7 +1670,7 @@ Döviz Kurları apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -1678,7 +1678,7 @@ Para Birimi Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -1690,11 +1690,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -1706,7 +1710,7 @@ Kullanıcı Kaydı apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -1714,7 +1718,7 @@ Salt okunur mod apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -1722,7 +1726,7 @@ Sistem Mesajı apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -1730,7 +1734,7 @@ Mesaj Belirle apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -1738,7 +1742,7 @@ Kupon apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -1746,7 +1750,7 @@ Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1758,7 +1762,7 @@ Genel Ayarlar apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -1766,7 +1770,7 @@ Önbelleği temizle apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -1956,6 +1960,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Benchmark @@ -2019,7 +2027,7 @@ My Ghostfolio - Ghostfolio'm + Ghostfolio’m apps/client/src/app/components/header/header.component.html 262 @@ -2098,7 +2106,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2110,7 +2118,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2123,7 +2131,7 @@ Welcome to Ghostfolio - Ghostfolio'ya Hoşgeldiniz. + Ghostfolio’ya Hoşgeldiniz. apps/client/src/app/components/home-overview/home-overview.html 7 @@ -2202,7 +2210,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2474,11 +2482,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -2534,7 +2542,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2562,7 +2570,7 @@ Rapor Veri Sorunu apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -2575,7 +2583,7 @@ Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: - Bugün Ghostfolio Premium'a yükseltin ve yatırım deneyiminizi geliştirmek için ayrıcalıklı özelliklere erişim kazanın: + Bugün Ghostfolio Premium’a yükseltin ve yatırım deneyiminizi geliştirmek için ayrıcalıklı özelliklere erişim kazanın: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 15 @@ -3063,7 +3071,7 @@ Check out the numerous features of Ghostfolio to manage your wealth - Varlıklarınızı yönetmek için Ghostfolio'nun özelliklerini keşfedin + Varlıklarınızı yönetmek için Ghostfolio’nun özelliklerini keşfedin apps/client/src/app/pages/features/features-page.html 6 @@ -3079,7 +3087,7 @@ ETFs - ETF'ler + ETF’ler apps/client/src/app/pages/features/features-page.html 25 @@ -3295,7 +3303,7 @@ Stars on GitHub - GitHub'daki Beğeniler + GitHub’daki Beğeniler apps/client/src/app/pages/landing/landing-page.html 88 @@ -3307,7 +3315,7 @@ Pulls on Docker Hub - Docker Hub'ta Çekmeler + Docker Hub’ta Çekmeler apps/client/src/app/pages/landing/landing-page.html 106 @@ -3335,7 +3343,7 @@ Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. - Ghostfolio, takip edilmeden hisse senetleri, ETF'ler veya kripto paraları izlemek isteyen yoğun insanlara güç verir. + Ghostfolio, takip edilmeden hisse senetleri, ETF’ler veya kripto paraları izlemek isteyen yoğun insanlara güç verir. apps/client/src/app/pages/landing/landing-page.html 229 @@ -3367,7 +3375,7 @@ Use Ghostfolio anonymously and own your financial data. - Ghostfolio'yu anonim olarak kullanın ve finansal verilerinize sahip çıkın. + Ghostfolio’yu anonim olarak kullanın ve finansal verilerinize sahip çıkın. apps/client/src/app/pages/landing/landing-page.html 253 @@ -3559,7 +3567,7 @@ At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. - Ghostfolio'da şeffaflık, değerlerimizin temelinde yer alır. Kaynak kodunu açık kaynak yazılım (OSS) olarak AGPL-3.0 lisansı altında yayınlıyoruz ve platformun işletme durumunun toplu anahtar metriklerini açıkça paylaşıyoruz. + Ghostfolio’da şeffaflık, değerlerimizin temelinde yer alır. Kaynak kodunu açık kaynak yazılım (OSS) olarak AGPL-3.0 lisansı altında yayınlıyoruz ve platformun işletme durumunun toplu anahtar metriklerini açıkça paylaşıyoruz. apps/client/src/app/pages/open/open-page.html 6 @@ -3595,7 +3603,7 @@ Contributors on GitHub - GitHub'da Katkıda Bulunanlar + GitHub’da Katkıda Bulunanlar apps/client/src/app/pages/open/open-page.html 89 @@ -3634,12 +3642,12 @@ İşlemi Güncelle apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 Stocks, ETFs, bonds, cryptocurrencies, commodities - Hisse senetleri, ETF'ler, tahviller, kripto paralar, emtialar + Hisse senetleri, ETF’ler, tahviller, kripto paralar, emtialar apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 25 @@ -3682,7 +3690,7 @@ Nakit Bakiyesini Güncelle apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -3690,11 +3698,11 @@ Birim Fiyat apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3706,7 +3714,7 @@ Hay Allah! Geçmiş döviz kuru alınamadı: apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -3714,11 +3722,11 @@ Komisyon apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3730,7 +3738,7 @@ İşlemleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -3762,7 +3770,7 @@ Veri doğrulanıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -4211,7 +4219,7 @@ If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. - Ghostfolio'yu kendi altyapınızda çalıştırmayı tercih ederseniz, lütfen kaynak kodunu ve daha fazla talimatı GitHub adresinde bulun. + Ghostfolio’yu kendi altyapınızda çalıştırmayı tercih ederseniz, lütfen kaynak kodunu ve daha fazla talimatı GitHub adresinde bulun. apps/client/src/app/pages/pricing/pricing-page.html 26 @@ -4219,7 +4227,7 @@ For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure. - Kendi altyapılarında Ghostfolio'yu çalıştırmayı tercih eden teknolojiye hakim yatırımcılar için. + Kendi altyapılarında Ghostfolio’yu çalıştırmayı tercih eden teknolojiye hakim yatırımcılar için. apps/client/src/app/pages/pricing/pricing-page.html 38 @@ -4575,7 +4583,7 @@ Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. - Ghostfolio ve arasındaki ayrıntılı karşılaştırmanın yer aldığı aşağıdaki tabloya daha yakından bakarak Ghostfolio'nun karşısında kendisini nasıl konumlandırdığını kapsamlı bir şekilde değerlendirelim. Bu kapsamda özellikler, veri güvenliği, fiyat vb. hususları inceleyerek kişisel gereksinimleriniz için bilgiye dayalı bir seçim yapmanızı sağlayabileceği. + Ghostfolio ve arasındaki ayrıntılı karşılaştırmanın yer aldığı aşağıdaki tabloya daha yakından bakarak Ghostfolio’nun karşısında kendisini nasıl konumlandırdığını kapsamlı bir şekilde değerlendirelim. Bu kapsamda özellikler, veri güvenliği, fiyat vb. hususları inceleyerek kişisel gereksinimleriniz için bilgiye dayalı bir seçim yapmanızı sağlayabileceği. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 38 @@ -4610,7 +4618,7 @@ Mevcut apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -4618,35 +4626,35 @@ ✅ Evet apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -4654,31 +4662,31 @@ ❌ Hayır apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -4686,7 +4694,7 @@ ❌ Hayır apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -4694,7 +4702,7 @@ Tarafınızca Barındırma apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -4702,7 +4710,7 @@ Anonim olarak kullan apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -4710,7 +4718,7 @@ Ücretsiz Plan apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -4718,7 +4726,7 @@ Notlar apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -4726,7 +4734,7 @@ Lütfen dikkat, Ghostfolio ve arasındaki karşılaştırmanın yer aldığı tablodaki bilgiler bağımsız araştırmalarımıza dayanmaktadır. Websitemizin ile ya da bu karşılaştırmada adı geçen herhangi bir ürün ve hizmet ile ilişkisi bulunmamaktadır. Kişisel finans araçlarının kapsamı geliştikçe, belirli ayrıntıların veya değişikliklerin doğrudan ilgili ürün sayfasından doğrulanması önemlidir. Verilerin yenilenmesi mi gerekiyor? Doğru verileri sağlamamıza yardımcı olmak için sayfamızı ziyaret edin. GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -4734,7 +4742,7 @@ Ready to take your investments to the next level? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -4742,7 +4750,7 @@ Ghostfolio ile varlıklarınızı kolaylıkla takip edin, analiz edin ve görselleştirin. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -4750,7 +4758,7 @@ Başlayın apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -4758,7 +4766,7 @@ Kişisel Finans Araçları apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -4766,7 +4774,11 @@ İsviçre apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -4774,7 +4786,11 @@ Küresel apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -4819,7 +4835,7 @@ My Ghostfolio - Benim Ghostfolio'm + Benim Ghostfolio’m apps/client/src/app/pages/user-account/user-account-page-routing.module.ts 33 @@ -4903,7 +4919,7 @@ Try Premium - Premium'u Deneyin + Premium’u Deneyin apps/client/src/app/components/user-account-membership/user-account-membership.html 40 @@ -5350,7 +5366,7 @@ Grant libs/ui/src/lib/i18n.ts - 14 + 15 @@ -5358,7 +5374,7 @@ Higher Risk libs/ui/src/lib/i18n.ts - 15 + 16 @@ -5366,7 +5382,7 @@ This activity already exists. libs/ui/src/lib/i18n.ts - 16 + 17 @@ -5374,7 +5390,7 @@ Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5410,7 +5426,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -5658,11 +5674,11 @@ Veri mevcut değil libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -5738,7 +5754,7 @@ Hay Allah! Tarihsel kur verisi elde edilemedi apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -6010,7 +6026,7 @@ Aşırı Korku libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6018,7 +6034,7 @@ Aşırı Açgözlülük libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6026,7 +6042,7 @@ Nötr libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6034,7 +6050,7 @@ Hay Allah! Geçmiş veriler ayrıştırılamadı. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -6074,11 +6090,11 @@ Başlangıç apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -6086,11 +6102,11 @@ Yıl apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -6122,7 +6138,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6212,6 +6228,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Absolute Asset Performance @@ -6374,7 +6394,7 @@ Data Gathering apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6450,7 +6470,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6458,7 +6478,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6642,7 +6662,7 @@ Do you really want to delete these profiles? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6650,7 +6670,7 @@ Oops! Could not delete profiles. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6677,6 +6697,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 613e3e24b..24253d03d 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -82,7 +82,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -176,7 +176,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -386,7 +386,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -630,7 +630,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -878,7 +878,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -920,7 +920,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -943,31 +943,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1002,7 +1002,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1033,11 +1033,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1116,7 +1116,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -1190,7 +1190,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1248,7 +1248,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1287,7 +1287,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -1322,7 +1322,7 @@ Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -1345,7 +1345,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -1368,7 +1368,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -1451,7 +1451,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -1576,7 +1576,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -1608,7 +1608,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -1678,70 +1678,70 @@ Activity Count apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 per User apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 Exchange Rates apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 Add Currency apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 User Signup apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 Read-only Mode apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 System Message apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 Set Message apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 Add apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1752,14 +1752,14 @@ Housekeeping apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 Flush Cache apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -1851,11 +1851,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -1978,6 +1982,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Benchmark @@ -2113,7 +2121,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2124,7 +2132,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2205,7 +2213,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2472,11 +2480,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -2526,7 +2534,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2537,7 +2545,7 @@ Report Data Glitch apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -3794,7 +3802,7 @@ Update activity apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -3858,18 +3866,18 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 Unit Price apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3880,18 +3888,18 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 Fee apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3902,14 +3910,14 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 Import Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -3937,7 +3945,7 @@ Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -4699,179 +4707,187 @@ Available in apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 ✅ Yes apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 Self-Hosting apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 Use anonymously apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 Free Plan apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 year apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 Notes apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 Ready to take your investments to the next level? apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 Effortlessly track, analyze, and visualize your wealth with Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 Get Started apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5229,28 +5245,28 @@ Grant libs/ui/src/lib/i18n.ts - 14 + 15 Higher Risk libs/ui/src/lib/i18n.ts - 15 + 16 This activity already exists. libs/ui/src/lib/i18n.ts - 16 + 17 Japan libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5282,7 +5298,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -5499,21 +5515,21 @@ Extreme Fear libs/ui/src/lib/i18n.ts - 69 + 91 Extreme Greed libs/ui/src/lib/i18n.ts - 70 + 92 Neutral libs/ui/src/lib/i18n.ts - 73 + 95 @@ -5541,11 +5557,11 @@ No data available libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -5566,7 +5582,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -5661,6 +5677,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Asset Performance @@ -5811,7 +5831,7 @@ Data Gathering apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -5850,14 +5870,14 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6004,7 +6024,7 @@ Do you really want to delete these profiles? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6018,7 +6038,7 @@ Oops! Could not delete profiles. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6049,6 +6069,230 @@ 155 + + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + United States + + libs/ui/src/lib/i18n.ts + 88 + + + + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + + libs/ui/src/lib/i18n.ts + 76 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 16cb8d78c..3092e362e 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -83,7 +83,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 23 + 24 @@ -179,7 +179,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 25 @@ -395,7 +395,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/resources-page.component.ts @@ -651,7 +651,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 186 + 202 @@ -915,7 +915,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 137 + 138 libs/ui/src/lib/activities-table/activities-table.component.html @@ -959,7 +959,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 143 + 144 libs/ui/src/lib/activities-table/activities-table.component.html @@ -983,31 +983,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 204 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 206 + 207 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 209 + 210 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 273 + 274 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 277 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 279 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 282 + 283 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1043,7 +1043,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 83 + 78 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1075,11 +1075,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 93 + 88 apps/client/src/app/components/admin-overview/admin-overview.html - 210 + 205 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1163,7 +1163,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 154 @@ -1247,7 +1247,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 159 + 160 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1307,7 +1307,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 426 + 427 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1347,7 +1347,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 433 + 434 @@ -1387,7 +1387,7 @@ 过滤... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 322 + 328 @@ -1411,7 +1411,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 353 + 354 @@ -1435,7 +1435,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 370 @@ -1527,7 +1527,7 @@ 哎呀!无法解析历史数据。 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 232 + 235 @@ -1663,7 +1663,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 338 + 339 @@ -1699,7 +1699,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 123 + 124 @@ -1779,7 +1779,7 @@ 活动计数 apps/client/src/app/components/admin-overview/admin-overview.html - 23 + 19 @@ -1787,7 +1787,7 @@ 每位用户 apps/client/src/app/components/admin-overview/admin-overview.html - 33 + 28 @@ -1795,7 +1795,7 @@ 汇率 apps/client/src/app/components/admin-overview/admin-overview.html - 39 + 34 @@ -1803,7 +1803,7 @@ 添加货币 apps/client/src/app/components/admin-overview/admin-overview.html - 109 + 104 @@ -1811,7 +1811,7 @@ 用户注册 apps/client/src/app/components/admin-overview/admin-overview.html - 115 + 110 @@ -1819,7 +1819,7 @@ 只读模式 apps/client/src/app/components/admin-overview/admin-overview.html - 129 + 124 @@ -1827,7 +1827,7 @@ 系统信息 apps/client/src/app/components/admin-overview/admin-overview.html - 153 + 148 @@ -1835,7 +1835,7 @@ 设置留言 apps/client/src/app/components/admin-overview/admin-overview.html - 175 + 170 @@ -1843,7 +1843,7 @@ 优惠券 apps/client/src/app/components/admin-overview/admin-overview.html - 183 + 178 @@ -1851,7 +1851,7 @@ 添加 apps/client/src/app/components/admin-overview/admin-overview.html - 243 + 238 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1863,7 +1863,7 @@ 家政 apps/client/src/app/components/admin-overview/admin-overview.html - 251 + 246 @@ -1871,7 +1871,7 @@ 刷新缓存 apps/client/src/app/components/admin-overview/admin-overview.html - 255 + 250 @@ -1971,11 +1971,15 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 381 + 386 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 423 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 382 + 383 libs/ui/src/lib/assistant/assistant.html @@ -2113,6 +2117,10 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts 41 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + Benchmark @@ -2263,7 +2271,7 @@ libs/ui/src/lib/i18n.ts - 71 + 93 @@ -2275,7 +2283,7 @@ libs/ui/src/lib/i18n.ts - 72 + 94 @@ -2367,7 +2375,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 10 + 8 @@ -2663,11 +2671,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 200 + 201 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 270 + 271 @@ -2723,7 +2731,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 187 + 188 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2735,7 +2743,7 @@ 报告数据故障 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 399 + 441 @@ -4139,7 +4147,7 @@ 更新活动 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 8 + 10 @@ -4211,7 +4219,7 @@ 更新现金余额 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 111 + 112 @@ -4219,11 +4227,11 @@ 单价 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 212 + 213 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 285 + 286 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4235,7 +4243,7 @@ 哎呀!无法从以下来源获取历史汇率 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 317 + 318 @@ -4243,11 +4251,11 @@ 费用 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 305 + 306 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 329 + 330 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4259,7 +4267,7 @@ 哎呀!无法获取历史汇率 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 239 + 240 @@ -4267,7 +4275,7 @@ 导入活动 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 44 + 45 @@ -4299,7 +4307,7 @@ 验证数据... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 233 + 234 @@ -5155,7 +5163,7 @@ 可用于 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 87 + 103 @@ -5163,35 +5171,35 @@ ✅ 是的 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 115 + 131 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 122 + 138 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 134 + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 141 + 157 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 153 + 169 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 160 + 176 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 172 + 188 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 179 + 195 @@ -5199,31 +5207,31 @@ ❌ 没有 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 117 + 133 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 136 + 152 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 143 + 159 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 155 + 171 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 162 + 178 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 174 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 181 + 197 @@ -5231,7 +5239,7 @@ ❌ 没有 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 124 + 140 @@ -5239,7 +5247,7 @@ 自托管 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 129 + 145 @@ -5247,7 +5255,7 @@ 匿名使用 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 148 + 164 @@ -5255,7 +5263,7 @@ 免费计划 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 167 + 183 @@ -5263,11 +5271,11 @@ 从...开始 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 188 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 193 + 209 @@ -5275,11 +5283,11 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 189 + 205 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 195 + 211 @@ -5287,7 +5295,7 @@ 笔记 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 201 + 217 @@ -5295,7 +5303,7 @@ 请注意,Ghostfolio 与 Ghostfolio 中提供的信息比较表基于我们的独立研究和分析。该网站不隶属于或比较中提到的任何其他产品。随着个人理财工具格局的不断发展,直接从相应的产品页面验证任何具体的细节或变化至关重要。数据需要刷新吗?帮助我们维护准确的数据GitHub apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 210 + 226 @@ -5303,7 +5311,7 @@ 准备好带走你的投资下一级 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 223 + 239 @@ -5311,7 +5319,7 @@ 使用 Ghostfolio 轻松跟踪、分析和可视化您的财富。 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 227 + 243 @@ -5319,7 +5327,7 @@ 开始使用 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 232 + 248 @@ -5327,7 +5335,7 @@ 个人理财工具 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html - 308 + 266 @@ -5335,7 +5343,11 @@ 瑞士 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 58 + 60 + + + libs/ui/src/lib/i18n.ts + 86 @@ -5343,7 +5355,11 @@ 全球的 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 59 + 61 + + + libs/ui/src/lib/i18n.ts + 14 @@ -5747,7 +5763,7 @@ 授予 libs/ui/src/lib/i18n.ts - 14 + 15 @@ -5755,7 +5771,7 @@ 风险较高 libs/ui/src/lib/i18n.ts - 15 + 16 @@ -5763,7 +5779,7 @@ 这项活动已经存在。 libs/ui/src/lib/i18n.ts - 16 + 17 @@ -5771,7 +5787,7 @@ 日本 libs/ui/src/lib/i18n.ts - 17 + 80 @@ -5807,7 +5823,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 400 + 403 @@ -6055,7 +6071,7 @@ 极度恐惧 libs/ui/src/lib/i18n.ts - 69 + 91 @@ -6063,7 +6079,7 @@ 极度贪婪 libs/ui/src/lib/i18n.ts - 70 + 92 @@ -6071,7 +6087,7 @@ 中性的 libs/ui/src/lib/i18n.ts - 73 + 95 @@ -6103,11 +6119,11 @@ 无可用数据 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 402 + 405 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 418 @@ -6131,7 +6147,7 @@ 当前市场价格为 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 339 @@ -6237,6 +6253,10 @@ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 56 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + Asset Performance @@ -6407,7 +6427,7 @@ 数据收集 apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 136 @@ -6451,7 +6471,7 @@ 关闭 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 37 + 39 @@ -6459,7 +6479,7 @@ 积极的 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 38 @@ -6643,7 +6663,7 @@ Do you really want to delete these profiles? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 34 + 36 @@ -6651,7 +6671,7 @@ Oops! Could not delete profiles. apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 45 + 49 @@ -6678,6 +6698,262 @@ 155 + + Alternative + Alternative + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + App + App + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Budgeting + Budgeting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Community + Community + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Family Office + Family Office + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 87 + + + + Investor + Investor + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Open Source + Open Source + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 91 + + + + Personal Finance + Personal Finance + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Privacy + Privacy + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Software + Software + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + Tool + Tool + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + User Experience + User Experience + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth + Wealth + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + Wealth Management + Wealth Management + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 100 + + + + Australia + Australia + + libs/ui/src/lib/i18n.ts + 69 + + + + Austria + Austria + + libs/ui/src/lib/i18n.ts + 70 + + + + Belgium + Belgium + + libs/ui/src/lib/i18n.ts + 71 + + + + Bulgaria + Bulgaria + + libs/ui/src/lib/i18n.ts + 72 + + + + Canada + Canada + + libs/ui/src/lib/i18n.ts + 73 + + + + Czech Republic + Czech Republic + + libs/ui/src/lib/i18n.ts + 74 + + + + Finland + Finland + + libs/ui/src/lib/i18n.ts + 75 + + + + France + France + + libs/ui/src/lib/i18n.ts + 76 + + + + Germany + Germany + + libs/ui/src/lib/i18n.ts + 77 + + + + India + India + + libs/ui/src/lib/i18n.ts + 78 + + + + Italy + Italy + + libs/ui/src/lib/i18n.ts + 79 + + + + Netherlands + Netherlands + + libs/ui/src/lib/i18n.ts + 81 + + + + New Zealand + New Zealand + + libs/ui/src/lib/i18n.ts + 82 + + + + Poland + Poland + + libs/ui/src/lib/i18n.ts + 83 + + + + Romania + Romania + + libs/ui/src/lib/i18n.ts + 84 + + + + South Africa + South Africa + + libs/ui/src/lib/i18n.ts + 85 + + + + Thailand + Thailand + + libs/ui/src/lib/i18n.ts + 87 + + + + United States + United States + + libs/ui/src/lib/i18n.ts + 88 + + - \ No newline at end of file + From 8a81fa814fec63439ecfb1f8f668fe3334cb2b79 Mon Sep 17 00:00:00 2001 From: Paulina <71526180+paulinek13@users.noreply.github.com> Date: Sun, 4 Aug 2024 16:52:32 +0200 Subject: [PATCH 04/23] Feature/improve language localization for pl (#3643) * Update translations --- apps/client/src/locales/messages.pl.xlf | 192 ++++++++++++------------ 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 6d3e7f2ee..a2d25dc5e 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -3,7 +3,7 @@ about - about + o Ghostfolio apps/client/src/app/app.component.ts 59 @@ -87,7 +87,7 @@ faq - faq + faq apps/client/src/app/app.component.ts 66 @@ -119,7 +119,7 @@ features - features + Funkcje apps/client/src/app/app.component.ts 67 @@ -183,7 +183,7 @@ license - license + licencja apps/client/src/app/app.component.ts 61 @@ -199,7 +199,7 @@ markets - markets + rynki apps/client/src/app/app.component.ts 68 @@ -231,7 +231,7 @@ pricing - pricing + cennik apps/client/src/app/app.component.ts 69 @@ -411,7 +411,7 @@ Create Account - Create Account + Utwórz Konto apps/client/src/app/app.component.html 13 @@ -427,7 +427,7 @@ Personal Finance - Personal Finance + Finanse Osobiste apps/client/src/app/app.component.html 54 @@ -435,7 +435,7 @@ Markets - Markets + Rynki apps/client/src/app/app.component.html 58 @@ -491,7 +491,7 @@ Blog - Blog + Blog apps/client/src/app/app.component.html 70 @@ -579,7 +579,7 @@ Changelog - Changelog + Dziennik Zmian apps/client/src/app/app.component.html 74 @@ -631,7 +631,7 @@ Pricing - Pricing + Cennik apps/client/src/app/app.component.html 94 @@ -667,7 +667,7 @@ Community - Community + Społeczność apps/client/src/app/app.component.html 118 @@ -727,7 +727,7 @@ Grantee - Grantee + Beneficjent apps/client/src/app/components/access-table/access-table.component.html 11 @@ -755,7 +755,7 @@ Details - Details + Szczegóły apps/client/src/app/components/access-table/access-table.component.html 33 @@ -771,7 +771,7 @@ Do you really want to revoke this granted access? - Do you really want to revoke this granted access? + Czy na pewno chcesz cofnąć przyznany dostęp? apps/client/src/app/components/access-table/access-table.component.ts 50 @@ -779,7 +779,7 @@ Cash Balance - Cash Balance + Saldo Gotówkowe apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html 45 @@ -1023,7 +1023,7 @@ Edit - Edit + Edytuj apps/client/src/app/components/accounts-table/accounts-table.component.html 278 @@ -1051,7 +1051,7 @@ Delete - Delete + Usuń apps/client/src/app/components/accounts-table/accounts-table.component.html 288 @@ -1251,7 +1251,7 @@ Market Price - Market Price + Cena Rynkowa apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html 26 @@ -1515,7 +1515,7 @@ Oops! Could not parse historical data. - Oops! Could not parse historical data. + Ups! Nie udało się sparsować danych historycznych. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 235 @@ -2091,7 +2091,7 @@ Portfolio - Portfolio + Portfel apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 116 @@ -2227,7 +2227,7 @@ Oops! Incorrect Security Token. - Oops! Incorrect Security Token. + Ups! Nieprawidłowy token bezpieczeństwa. apps/client/src/app/components/header/header.component.ts 243 @@ -2279,7 +2279,7 @@ Welcome to Ghostfolio - Welcome to Ghostfolio + Witaj w Ghostfolio apps/client/src/app/components/home-overview/home-overview.html 7 @@ -2287,7 +2287,7 @@ Ready to take control of your personal finances? - Ready to take control of your personal finances? + Jesteś gotów przejąć kontrolę nad swoimi finansami osobistymi? apps/client/src/app/components/home-overview/home-overview.html 8 @@ -2295,7 +2295,7 @@ Setup your accounts - Setup your accounts + Skonfiguruj swoje konta apps/client/src/app/components/home-overview/home-overview.html 15 @@ -2303,7 +2303,7 @@ Get a comprehensive financial overview by adding your bank and brokerage accounts. - Get a comprehensive financial overview by adding your bank and brokerage accounts. + Uzyskaj kompleksowy przegląd finansowy, poprzez dodanie swoich rachunków bankowych i maklerskich. apps/client/src/app/components/home-overview/home-overview.html 17 @@ -2311,7 +2311,7 @@ Capture your activities - Capture your activities + Rejestruj swoje działania apps/client/src/app/components/home-overview/home-overview.html 24 @@ -2319,7 +2319,7 @@ Record your investment activities to keep your portfolio up to date. - Record your investment activities to keep your portfolio up to date. + Dokumentuj swoje działania inwestycyjne, aby zapewnić aktualność portfela. apps/client/src/app/components/home-overview/home-overview.html 26 @@ -2327,7 +2327,7 @@ Monitor and analyze your portfolio - Monitor and analyze your portfolio + Monitoruj i analizuj swój portfel apps/client/src/app/components/home-overview/home-overview.html 33 @@ -2335,7 +2335,7 @@ Track your progress in real-time with comprehensive analysis and insights. - Track your progress in real-time with comprehensive analysis and insights. + Śledź swój postęp w czasie rzeczywistym dzięki kompleksowym analizom i obserwacjom. apps/client/src/app/components/home-overview/home-overview.html 35 @@ -2343,7 +2343,7 @@ Setup accounts - Setup accounts + Konfiguracja kont apps/client/src/app/components/home-overview/home-overview.html 44 @@ -2731,7 +2731,7 @@ Are you an ambitious investor who needs the full picture? - Are you an ambitious investor who needs the full picture? + Jesteś ambitnym inwestorem, który potrzebuje pełnego obrazu swojej działalności? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 12 @@ -2739,7 +2739,7 @@ Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: - Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: + Przejdź na Ghostfolio Premium już dziś i uzyskaj dostęp do ekskluzywnych funkcji, które wzbogacą Twoje doświadczenie inwestycyjne: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 15 @@ -2747,7 +2747,7 @@ Portfolio Summary - Portfolio Summary + Podsumowanie Portfela apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 22 @@ -2799,7 +2799,7 @@ FIRE Calculator - FIRE Calculator + FIRE Kalkulator apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 34 @@ -2827,7 +2827,7 @@ and more Features... - and more Features... + i więcej Funkcji ... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 42 @@ -2843,7 +2843,7 @@ Get the tools to effectively manage your finances and refine your personal investment strategy. - Get the tools to effectively manage your finances and refine your personal investment strategy. + Uzyskaj narzędzia do skutecznego zarządzania swoimi finansami i udoskonal swoją osobistą strategię inwestycyjną. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 45 @@ -2851,7 +2851,7 @@ Skip - Skip + Pomiń apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 52 @@ -2971,7 +2971,7 @@ Could not redeem coupon code - Could not redeem coupon code + Nie udało się zrealizować kodu kuponu apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 121 @@ -3039,7 +3039,7 @@ Settings - Settings + Ustawienia apps/client/src/app/components/user-account-settings/user-account-settings.html 2 @@ -3047,7 +3047,7 @@ Presenter View - Presenter View + Widok Prezentera apps/client/src/app/components/user-account-settings/user-account-settings.html 7 @@ -3063,7 +3063,7 @@ Base Currency - Base Currency + Waluta Bazowa apps/client/src/app/components/user-account-settings/user-account-settings.html 27 @@ -3071,7 +3071,7 @@ Language - Language + Język apps/client/src/app/components/user-account-settings/user-account-settings.html 48 @@ -3079,7 +3079,7 @@ Locale - Locale + Ustawienia Regionalne apps/client/src/app/components/user-account-settings/user-account-settings.html 127 @@ -3095,7 +3095,7 @@ Appearance - Appearance + Wygląd (tryb) apps/client/src/app/components/user-account-settings/user-account-settings.html 152 @@ -3103,7 +3103,7 @@ Auto - Auto + Auto apps/client/src/app/components/user-account-settings/user-account-settings.html 166 @@ -3111,7 +3111,7 @@ Light - Light + Jasny apps/client/src/app/components/user-account-settings/user-account-settings.html 167 @@ -3119,7 +3119,7 @@ Dark - Dark + Ciemny apps/client/src/app/components/user-account-settings/user-account-settings.html 168 @@ -3127,7 +3127,7 @@ Zen Mode - Zen Mode + Tryb Zen apps/client/src/app/components/user-account-settings/user-account-settings.html 177 @@ -3147,7 +3147,7 @@ Biometric Authentication - Biometric Authentication + Uwierzytelnianie Biometryczne apps/client/src/app/components/user-account-settings/user-account-settings.html 194 @@ -3155,7 +3155,7 @@ Sign in with fingerprint - Sign in with fingerprint + Zaloguj się za pomocą linii papilarnych apps/client/src/app/components/user-account-settings/user-account-settings.html 195 @@ -3163,7 +3163,7 @@ Experimental Features - Experimental Features + Funkcje Eksperymentalne apps/client/src/app/components/user-account-settings/user-account-settings.html 211 @@ -3171,7 +3171,7 @@ Sneak peek at upcoming functionality - Sneak peek at upcoming functionality + Włącz podgląd nadchodzących funkcji apps/client/src/app/components/user-account-settings/user-account-settings.html 212 @@ -3179,7 +3179,7 @@ User ID - User ID + ID Użytkownika apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html 45 @@ -3191,7 +3191,7 @@ Export Data - Export Data + Eksportuj Dane apps/client/src/app/components/user-account-settings/user-account-settings.html 236 @@ -3199,7 +3199,7 @@ This feature is currently unavailable. - This feature is currently unavailable. + Ta funkcja jest obecnie niedostępna. apps/client/src/app/core/http-response.interceptor.ts 53 @@ -3207,7 +3207,7 @@ Please try again later. - Please try again later. + Spróbuj ponownie później. apps/client/src/app/core/http-response.interceptor.ts 55 @@ -3223,7 +3223,7 @@ Oops! Something went wrong. - Oops! Something went wrong. + Ups! Coś poszło nie tak. apps/client/src/app/core/http-response.interceptor.ts 78 @@ -3675,7 +3675,7 @@ Markets - Markets + Rynki apps/client/src/app/pages/home/home-page-routing.module.ts 38 @@ -4019,7 +4019,7 @@ Are you ready? - Are you ready? + Czy jesteś gotów? apps/client/src/app/pages/landing/landing-page.html 431 @@ -4035,7 +4035,7 @@ (Last 24 hours) - (Last 24 hours) + (Ostatnie 24 godziny) apps/client/src/app/pages/open/open-page.html 37 @@ -4043,7 +4043,7 @@ Active Users - Active Users + Aktywni Użytkownicy apps/client/src/app/pages/open/open-page.html 40 @@ -4055,7 +4055,7 @@ (Last 30 days) - (Last 30 days) + (Ostatnie 30 dni) apps/client/src/app/pages/open/open-page.html 48 @@ -4067,7 +4067,7 @@ New Users - New Users + Nowi Użytkownicy apps/client/src/app/pages/open/open-page.html 51 @@ -4091,7 +4091,7 @@ (Last 90 days) - (Last 90 days) + (Ostatnie 90 dni) apps/client/src/app/pages/open/open-page.html 127 @@ -4223,7 +4223,7 @@ Oops! Could not get the historical exchange rate from - Oops! Could not get the historical exchange rate from + Ups! Nie udało się uzyskać historycznego kursu wymiany z apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 318 @@ -4247,7 +4247,7 @@ Oops! Could not get the historical exchange rate from - Oops! Could not get the historical exchange rate from + Ups! Nie udało się uzyskać historycznego kursu wymiany z apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 240 @@ -4467,7 +4467,7 @@ Developed Markets - Developed Markets + Rynki Rozwinięte apps/client/src/app/pages/portfolio/allocations/allocations-page.html 222 @@ -4479,7 +4479,7 @@ Emerging Markets - Emerging Markets + Rynki Wschodzące apps/client/src/app/pages/portfolio/allocations/allocations-page.html 231 @@ -4491,7 +4491,7 @@ Other Markets - Other Markets + Inne Rynki apps/client/src/app/pages/portfolio/allocations/allocations-page.html 240 @@ -4503,7 +4503,7 @@ No data available - No data available + Brak danych apps/client/src/app/pages/portfolio/allocations/allocations-page.html 250 @@ -4575,7 +4575,7 @@ Monthly - Monthly + Miesięcznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 50 @@ -4583,7 +4583,7 @@ Yearly - Yearly + Corocznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 51 @@ -4591,7 +4591,7 @@ Analysis - Analysis + Analiza apps/client/src/app/pages/portfolio/analysis/analysis-page.html 2 @@ -4671,7 +4671,7 @@ Calculator - Calculator + Kalkulator apps/client/src/app/pages/portfolio/fire/fire-page.html 7 @@ -4687,7 +4687,7 @@ Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. + Ghostfolio X-ray wykorzystuje analizę statyczną do identyfikacji potencjalnych problemów i zagrożeń w Twoim portfelu. apps/client/src/app/pages/portfolio/fire/fire-page.html 111 @@ -4731,7 +4731,7 @@ Pricing - Pricing + Cennik apps/client/src/app/pages/pricing/pricing-page-routing.module.ts 13 @@ -4739,7 +4739,7 @@ Pricing Plans - Pricing Plans + Plany cenowe apps/client/src/app/pages/pricing/pricing-page.html 4 @@ -4747,7 +4747,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. + Nasza oficjalna chmurowa usługa Ghostfolio Premium jest najprostszym sposobem by rozpocząć przygodę z Ghostfolio. To najlepsza opcja dla większości osób ze względu na czas, jaki można dzięki niej zaoszczędzić. Uzyskany przychód jest wykorzystywany do pokrycia kosztów infrastruktury hostingowej i finansowania bieżącego rozwoju. apps/client/src/app/pages/pricing/pricing-page.html 6 @@ -4755,7 +4755,7 @@ If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. - If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. + Jeżeli wolisz uruchomić Ghostfolio na własnej infrastrukturze, możesz znaleźć kod źródłowy i dalsze instrukcje na naszym GitHubie. apps/client/src/app/pages/pricing/pricing-page.html 26 @@ -4763,7 +4763,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. + Dla inwestorów obeznanych technicznie, którzy wolą uruchomić Ghostfolio na własnej infrastrukturze. apps/client/src/app/pages/pricing/pricing-page.html 38 @@ -4771,7 +4771,7 @@ Unlimited Transactions - Unlimited Transactions + Nieograniczona Liczba Transakcji apps/client/src/app/pages/pricing/pricing-page.html 45 @@ -4787,7 +4787,7 @@ Unlimited Accounts - Unlimited Accounts + Nieograniczona Liczba Rachunków apps/client/src/app/pages/pricing/pricing-page.html 49 @@ -4803,7 +4803,7 @@ Portfolio Performance - Portfolio Performance + Efektywność Portfela apps/client/src/app/pages/pricing/pricing-page.html 53 @@ -4819,7 +4819,7 @@ Data Import and Export - Data Import and Export + Importowanie i Eksportowanie Danych apps/client/src/app/pages/pricing/pricing-page.html 73 @@ -4835,7 +4835,7 @@ Community Support - Community Support + Wsparcie Społeczności apps/client/src/app/pages/pricing/pricing-page.html 90 @@ -4843,7 +4843,7 @@ Self-hosted, update manually. - Self-hosted, update manually. + Samodzielny hosting, aktualizacja ręczna. apps/client/src/app/pages/pricing/pricing-page.html 94 @@ -4851,7 +4851,7 @@ Free - Free + Bezpłatnie apps/client/src/app/pages/pricing/pricing-page.html 95 @@ -4863,7 +4863,7 @@ For new investors who are just getting started with trading. - For new investors who are just getting started with trading. + Dla początkujących inwestorów, którzy dopiero zaczynają swoją przygodę z tradingiem. apps/client/src/app/pages/pricing/pricing-page.html 123 @@ -4871,7 +4871,7 @@ Fully managed Ghostfolio cloud offering. - Fully managed Ghostfolio cloud offering. + W pełni zarządzana oferta Ghostfolio w chmurze. apps/client/src/app/pages/pricing/pricing-page.html 152 @@ -4883,7 +4883,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. + Dla ambitnych inwestorów, którzy potrzebują pełnego obrazu swoich aktywów finansowych. apps/client/src/app/pages/pricing/pricing-page.html 184 @@ -4891,7 +4891,7 @@ Email and Chat Support - Email and Chat Support + Wsparcie przez E-mail i Czat apps/client/src/app/pages/pricing/pricing-page.html 240 @@ -4899,7 +4899,7 @@ Renew Plan - Renew Plan + Odnów Plan apps/client/src/app/components/header/header.component.html 183 @@ -4915,7 +4915,7 @@ One-time payment, no auto-renewal. - One-time payment, no auto-renewal. + Płatność jednorazowa, bez automatycznego odnawiania. apps/client/src/app/pages/pricing/pricing-page.html 280 @@ -6335,7 +6335,7 @@ Oops! A data provider is experiencing the hiccups. - Oops! A data provider is experiencing the hiccups. + Ups! Dostawca danych zmaga się teraz z drobnymi przeszkodami. apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html 8 From 42fe653e1edf7360babc1f6125aacc1304c078be Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 5 Aug 2024 19:43:25 +0200 Subject: [PATCH 05/23] Bugfix/fix cache flush endpoint response (#3641) * Fix cache flush endpoint response * Update changelog --- CHANGELOG.md | 4 ++++ apps/api/src/app/cache/cache.controller.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9582d735e..02b33340b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the language localization for Polish (`pl`) - Upgraded `Nx` from version `19.5.1` to `19.5.6` +### Fixed + +- Fixed the cache flush endpoint response + ## 2.101.0 - 2024-08-03 ### Changed diff --git a/apps/api/src/app/cache/cache.controller.ts b/apps/api/src/app/cache/cache.controller.ts index edfd16c49..4d34a2eff 100644 --- a/apps/api/src/app/cache/cache.controller.ts +++ b/apps/api/src/app/cache/cache.controller.ts @@ -14,6 +14,6 @@ export class CacheController { @Post('flush') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) public async flushCache(): Promise { - return this.redisCacheService.reset(); + await this.redisCacheService.reset(); } } From b2ed0b2c805ce06de482cd8a12eb6abf1ad9faea Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 5 Aug 2024 19:44:24 +0200 Subject: [PATCH 06/23] Feature/improve caching of benchmarks in markets overview (#3640) * Improve caching * Update changelog --- CHANGELOG.md | 1 + .../src/app/benchmark/benchmark.service.ts | 190 ++++++++++-------- .../interfaces/benchmark-value.interface.ts | 6 + 3 files changed, 112 insertions(+), 85 deletions(-) create mode 100644 apps/api/src/app/benchmark/interfaces/benchmark-value.interface.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 02b33340b..b16284ab2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the caching of the benchmarks in the markets overview by returning cached data and recalculating in the background when it expires - Improved the language localization for German (`de`) - Improved the language localization for Polish (`pl`) - Upgraded `Nx` from version `19.5.1` to `19.5.6` diff --git a/apps/api/src/app/benchmark/benchmark.service.ts b/apps/api/src/app/benchmark/benchmark.service.ts index e9495b44b..b6fdc8ea9 100644 --- a/apps/api/src/app/benchmark/benchmark.service.ts +++ b/apps/api/src/app/benchmark/benchmark.service.ts @@ -29,15 +29,19 @@ import { Injectable, Logger } from '@nestjs/common'; import { SymbolProfile } from '@prisma/client'; import { Big } from 'big.js'; import { + addHours, differenceInDays, eachDayOfInterval, format, + isAfter, isSameDay, subDays } from 'date-fns'; import { isNumber, last, uniqBy } from 'lodash'; import ms from 'ms'; +import { BenchmarkValue } from './interfaces/benchmark-value.interface'; + @Injectable() export class BenchmarkService { private readonly CACHE_KEY_BENCHMARKS = 'BENCHMARKS'; @@ -92,99 +96,26 @@ export class BenchmarkService { enableSharing = false, useCache = true } = {}): Promise { - let benchmarks: BenchmarkResponse['benchmarks']; - if (useCache) { try { - benchmarks = JSON.parse( - await this.redisCacheService.get(this.CACHE_KEY_BENCHMARKS) + const cachedBenchmarkValue = await this.redisCacheService.get( + this.CACHE_KEY_BENCHMARKS ); - if (benchmarks) { - return benchmarks; - } - } catch {} - } - - const benchmarkAssetProfiles = await this.getBenchmarkAssetProfiles({ - enableSharing - }); - - const promisesAllTimeHighs: Promise<{ date: Date; marketPrice: number }>[] = - []; - const promisesBenchmarkTrends: Promise<{ - trend50d: BenchmarkTrend; - trend200d: BenchmarkTrend; - }>[] = []; - - const quotes = await this.dataProviderService.getQuotes({ - items: benchmarkAssetProfiles.map(({ dataSource, symbol }) => { - return { dataSource, symbol }; - }), - requestTimeout: ms('30 seconds'), - useCache: false - }); - - for (const { dataSource, symbol } of benchmarkAssetProfiles) { - promisesAllTimeHighs.push( - this.marketDataService.getMax({ dataSource, symbol }) - ); - promisesBenchmarkTrends.push( - this.getBenchmarkTrends({ dataSource, symbol }) - ); - } - - const [allTimeHighs, benchmarkTrends] = await Promise.all([ - Promise.all(promisesAllTimeHighs), - Promise.all(promisesBenchmarkTrends) - ]); - let storeInCache = useCache; + const { benchmarks, expiration }: BenchmarkValue = + JSON.parse(cachedBenchmarkValue); - benchmarks = allTimeHighs.map((allTimeHigh, index) => { - const { marketPrice } = - quotes[benchmarkAssetProfiles[index].symbol] ?? {}; - - let performancePercentFromAllTimeHigh = 0; - - if (allTimeHigh?.marketPrice && marketPrice) { - performancePercentFromAllTimeHigh = this.calculateChangeInPercentage( - allTimeHigh.marketPrice, - marketPrice - ); - } else { - storeInCache = false; - } - - return { - dataSource: benchmarkAssetProfiles[index].dataSource, - marketCondition: this.getMarketCondition( - performancePercentFromAllTimeHigh - ), - name: benchmarkAssetProfiles[index].name, - performances: { - allTimeHigh: { - date: allTimeHigh?.date, - performancePercent: - performancePercentFromAllTimeHigh >= 0 - ? 0 - : performancePercentFromAllTimeHigh - } - }, - symbol: benchmarkAssetProfiles[index].symbol, - trend50d: benchmarkTrends[index].trend50d, - trend200d: benchmarkTrends[index].trend200d - }; - }); + if (isAfter(new Date(), new Date(expiration))) { + this.calculateAndCacheBenchmarks({ + enableSharing + }); + } - if (storeInCache) { - await this.redisCacheService.set( - this.CACHE_KEY_BENCHMARKS, - JSON.stringify(benchmarks), - ms('2 hours') / 1000 - ); + return benchmarks; + } catch {} } - return benchmarks; + return this.calculateAndCacheBenchmarks({ enableSharing }); } public async getBenchmarkAssetProfiles({ @@ -422,6 +353,95 @@ export class BenchmarkService { }; } + private async calculateAndCacheBenchmarks({ + enableSharing = false + }): Promise { + const benchmarkAssetProfiles = await this.getBenchmarkAssetProfiles({ + enableSharing + }); + + const promisesAllTimeHighs: Promise<{ date: Date; marketPrice: number }>[] = + []; + const promisesBenchmarkTrends: Promise<{ + trend50d: BenchmarkTrend; + trend200d: BenchmarkTrend; + }>[] = []; + + const quotes = await this.dataProviderService.getQuotes({ + items: benchmarkAssetProfiles.map(({ dataSource, symbol }) => { + return { dataSource, symbol }; + }), + requestTimeout: ms('30 seconds'), + useCache: false + }); + + for (const { dataSource, symbol } of benchmarkAssetProfiles) { + promisesAllTimeHighs.push( + this.marketDataService.getMax({ dataSource, symbol }) + ); + promisesBenchmarkTrends.push( + this.getBenchmarkTrends({ dataSource, symbol }) + ); + } + + const [allTimeHighs, benchmarkTrends] = await Promise.all([ + Promise.all(promisesAllTimeHighs), + Promise.all(promisesBenchmarkTrends) + ]); + let storeInCache = true; + + const benchmarks = allTimeHighs.map((allTimeHigh, index) => { + const { marketPrice } = + quotes[benchmarkAssetProfiles[index].symbol] ?? {}; + + let performancePercentFromAllTimeHigh = 0; + + if (allTimeHigh?.marketPrice && marketPrice) { + performancePercentFromAllTimeHigh = this.calculateChangeInPercentage( + allTimeHigh.marketPrice, + marketPrice + ); + } else { + storeInCache = false; + } + + return { + dataSource: benchmarkAssetProfiles[index].dataSource, + marketCondition: this.getMarketCondition( + performancePercentFromAllTimeHigh + ), + name: benchmarkAssetProfiles[index].name, + performances: { + allTimeHigh: { + date: allTimeHigh?.date, + performancePercent: + performancePercentFromAllTimeHigh >= 0 + ? 0 + : performancePercentFromAllTimeHigh + } + }, + symbol: benchmarkAssetProfiles[index].symbol, + trend50d: benchmarkTrends[index].trend50d, + trend200d: benchmarkTrends[index].trend200d + }; + }); + + if (storeInCache) { + const expiration = addHours(new Date(), 2); + + await this.redisCacheService.set( + this.CACHE_KEY_BENCHMARKS, + JSON.stringify({ + benchmarks, + expiration: expiration.getTime() + }), + ms('12 hours') / 1000 + ); + } + + return benchmarks; + } + private getMarketCondition( aPerformanceInPercent: number ): Benchmark['marketCondition'] { diff --git a/apps/api/src/app/benchmark/interfaces/benchmark-value.interface.ts b/apps/api/src/app/benchmark/interfaces/benchmark-value.interface.ts new file mode 100644 index 000000000..eda302f90 --- /dev/null +++ b/apps/api/src/app/benchmark/interfaces/benchmark-value.interface.ts @@ -0,0 +1,6 @@ +import { BenchmarkResponse } from '@ghostfolio/common/interfaces'; + +export interface BenchmarkValue { + benchmarks: BenchmarkResponse['benchmarks']; + expiration: number; +} From 4410040a14730e5920b000a4dcb8df83a873b771 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:53:31 +0200 Subject: [PATCH 07/23] Feature/update angular url in README.md (#3566) Update Angular url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6d31b96ba..ecb5276ab 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ The backend is based on [NestJS](https://nestjs.com) using [PostgreSQL](https:// ### Frontend -The frontend is built with [Angular](https://angular.io) and uses [Angular Material](https://material.angular.io) with utility classes from [Bootstrap](https://getbootstrap.com). +The frontend is built with [Angular](https://angular.dev) and uses [Angular Material](https://material.angular.io) with utility classes from [Bootstrap](https://getbootstrap.com). ## Self-hosting From dc1948016f42a2ec0695dde5e4b1a362db6c50a0 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:45:03 +0200 Subject: [PATCH 08/23] Feature/clone or edit activity from holding detail dialog (#3644) * Clone or edit activity from holding detail dialog * Update changelog --- CHANGELOG.md | 5 +++ apps/api/src/app/order/order.controller.ts | 34 ++++++++++++++++++- apps/client/src/app/app.component.ts | 6 +++- .../holding-detail-dialog.component.ts | 18 ++++++++++ .../holding-detail-dialog.html | 9 ++++- .../interfaces/interfaces.ts | 1 + .../activities/activities-page.component.ts | 27 ++++++++++----- apps/client/src/app/services/data.service.ts | 16 ++++++++- 8 files changed, 103 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b16284ab2..f5902f217 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added support to clone an activity from the holding detail dialog (experimental) +- Added support to edit an activity from the holding detail dialog (experimental) + ### Changed - Improved the caching of the benchmarks in the markets overview by returning cached data and recalculating in the background when it expires diff --git a/apps/api/src/app/order/order.controller.ts b/apps/api/src/app/order/order.controller.ts index f9190d1eb..af8a1e296 100644 --- a/apps/api/src/app/order/order.controller.ts +++ b/apps/api/src/app/order/order.controller.ts @@ -36,7 +36,7 @@ import { parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { CreateOrderDto } from './create-order.dto'; -import { Activities } from './interfaces/activities.interface'; +import { Activities, Activity } from './interfaces/activities.interface'; import { OrderService } from './order.service'; import { UpdateOrderDto } from './update-order.dto'; @@ -140,6 +140,38 @@ export class OrderController { return { activities, count }; } + @Get(':id') + @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + @UseInterceptors(RedactValuesInResponseInterceptor) + @UseInterceptors(TransformDataSourceInResponseInterceptor) + public async getOrderById( + @Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId, + @Param('id') id: string + ): Promise { + const impersonationUserId = + await this.impersonationService.validateImpersonationId(impersonationId); + const userCurrency = this.request.user.Settings.settings.baseCurrency; + + const { activities } = await this.orderService.getOrders({ + userCurrency, + userId: impersonationUserId || this.request.user.id, + withExcludedAccounts: true + }); + + const activity = activities.find((activity) => { + return activity.id === id; + }); + + if (!activity) { + throw new HttpException( + getReasonPhrase(StatusCodes.NOT_FOUND), + StatusCodes.NOT_FOUND + ); + } + + return activity; + } + @HasPermission(permissions.createOrder) @Post() @UseGuards(AuthGuard('jwt'), HasPermissionGuard) diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index 4f1464408..b1d9a7f09 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -255,6 +255,10 @@ export class AppComponent implements OnDestroy, OnInit { colorScheme: this.user?.settings?.colorScheme, deviceType: this.deviceType, hasImpersonationId: this.hasImpersonationId, + hasPermissionToCreateOrder: + !this.hasImpersonationId && + hasPermission(this.user?.permissions, permissions.createOrder) && + !this.user?.settings?.isRestrictedView, hasPermissionToReportDataGlitch: hasPermission( this.user?.permissions, permissions.reportDataGlitch @@ -262,7 +266,7 @@ export class AppComponent implements OnDestroy, OnInit { hasPermissionToUpdateOrder: !this.hasImpersonationId && hasPermission(this.user?.permissions, permissions.updateOrder) && - !user?.settings?.isRestrictedView, + !this.user?.settings?.isRestrictedView, locale: this.user?.settings?.locale }, height: this.deviceType === 'mobile' ? '97.5vh' : '80vh', diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts index 5673cd0c0..64c062c7e 100644 --- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts +++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts @@ -48,6 +48,7 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { SortDirection } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { MatTabsModule } from '@angular/material/tabs'; +import { Router } from '@angular/router'; import { Account, Tag } from '@prisma/client'; import { format, isSameMonth, isToday, parseISO } from 'date-fns'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; @@ -141,6 +142,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: HoldingDetailDialogParams, private formBuilder: FormBuilder, + private router: Router, private userService: UserService ) {} @@ -424,6 +426,14 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { this.tagInput.nativeElement.value = ''; } + public onCloneActivity(aActivity: Activity) { + this.router.navigate(['/portfolio', 'activities'], { + queryParams: { activityId: aActivity.id, createDialog: true } + }); + + this.dialogRef.close(); + } + public onClose() { this.dialogRef.close(); } @@ -456,6 +466,14 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { ); } + public onUpdateActivity(aActivity: Activity) { + this.router.navigate(['/portfolio', 'activities'], { + queryParams: { activityId: aActivity.id, editDialog: true } + }); + + this.dialogRef.close(); + } + public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html index b7474a7a3..04770837a 100644 --- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html +++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -346,12 +346,19 @@ [hasPermissionToFilter]="false" [hasPermissionToOpenDetails]="false" [locale]="data.locale" - [showActions]="false" + [showActions]=" + !data.hasImpersonationId && + data.hasPermissionToCreateOrder && + user?.settings?.isExperimentalFeatures && + !user?.settings?.isRestrictedView + " [showNameColumn]="false" [sortColumn]="sortColumn" [sortDirection]="sortDirection" [sortDisabled]="true" [totalItems]="totalItems" + (activityToClone)="onCloneActivity($event)" + (activityToUpdate)="onUpdateActivity($event)" (export)="onExport()" /> diff --git a/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts index 8178838ab..cb98ab3a7 100644 --- a/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts +++ b/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts @@ -8,6 +8,7 @@ export interface HoldingDetailDialogParams { dataSource: DataSource; deviceType: string; hasImpersonationId: boolean; + hasPermissionToCreateOrder: boolean; hasPermissionToReportDataGlitch: boolean; hasPermissionToUpdateOrder: boolean; locale: string; diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index d6209cdf8..7cd89d62f 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -16,7 +16,6 @@ import { PageEvent } from '@angular/material/paginator'; import { Sort, SortDirection } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { ActivatedRoute, Router } from '@angular/router'; -import { Order as OrderModel } from '@prisma/client'; import { format, parseISO } from 'date-fns'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject, Subscription } from 'rxjs'; @@ -63,14 +62,24 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((params) => { if (params['createDialog']) { - this.openCreateActivityDialog(); + if (params['activityId']) { + this.dataService + .fetchActivity(params['activityId']) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((activity) => { + this.openCreateActivityDialog(activity); + }); + } else { + this.openCreateActivityDialog(); + } } else if (params['editDialog']) { - if (this.dataSource && params['activityId']) { - const activity = this.dataSource.data.find(({ id }) => { - return id === params['activityId']; - }); - - this.openUpdateActivityDialog(activity); + if (params['activityId']) { + this.dataService + .fetchActivity(params['activityId']) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((activity) => { + this.openUpdateActivityDialog(activity); + }); } else { this.router.navigate(['.'], { relativeTo: this.route }); } @@ -242,7 +251,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { this.fetchActivities(); } - public onUpdateActivity(aActivity: OrderModel) { + public onUpdateActivity(aActivity: Activity) { this.router.navigate([], { queryParams: { activityId: aActivity.id, editDialog: true } }); diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index e74c3f74e..6de3d327d 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -4,7 +4,10 @@ import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; -import { Activities } from '@ghostfolio/api/app/order/interfaces/activities.interface'; +import { + Activities, + Activity +} from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; import { PortfolioHoldingDetail } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-holding-detail.interface'; import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface'; @@ -212,6 +215,17 @@ export class DataService { ); } + public fetchActivity(aActivityId: string) { + return this.http.get(`/api/v1/order/${aActivityId}`).pipe( + map((activity) => { + activity.createdAt = parseISO((activity.createdAt)); + activity.date = parseISO((activity.date)); + + return activity; + }) + ); + } + public fetchDividends({ filters, groupBy = 'month', From e85cc0fcfca521e2d42d362d61930a10e2dfe1f7 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:45:46 +0200 Subject: [PATCH 09/23] Feature/clone or edit activity from account detail dialog (#3647) * Clone or edit activity from holding detail dialog * Update changelog --- CHANGELOG.md | 2 ++ .../account-detail-dialog.component.ts | 18 ++++++++++++++++++ .../account-detail-dialog.html | 9 ++++++++- .../interfaces/interfaces.ts | 1 + .../pages/accounts/accounts-page.component.ts | 6 +++++- .../allocations/allocations-page.component.ts | 7 ++++++- 6 files changed, 40 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5902f217..3b4a5c1e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Added support to clone an activity from the account detail dialog (experimental) +- Added support to edit an activity from the account detail dialog (experimental) - Added support to clone an activity from the holding detail dialog (experimental) - Added support to edit an activity from the holding detail dialog (experimental) diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts index 919b9549d..1cec23aba 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts @@ -23,6 +23,7 @@ import { import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Sort, SortDirection } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; +import { Router } from '@angular/router'; import { Big } from 'big.js'; import { format, parseISO } from 'date-fns'; import { isNumber } from 'lodash'; @@ -66,6 +67,7 @@ export class AccountDetailDialog implements OnDestroy, OnInit { @Inject(MAT_DIALOG_DATA) public data: AccountDetailDialogParams, private dataService: DataService, public dialogRef: MatDialogRef, + private router: Router, private userService: UserService ) { this.userService.stateChanged @@ -92,6 +94,14 @@ export class AccountDetailDialog implements OnDestroy, OnInit { this.fetchPortfolioPerformance(); } + public onCloneActivity(aActivity: Activity) { + this.router.navigate(['/portfolio', 'activities'], { + queryParams: { activityId: aActivity.id, createDialog: true } + }); + + this.dialogRef.close(); + } + public onClose() { this.dialogRef.close(); } @@ -147,6 +157,14 @@ export class AccountDetailDialog implements OnDestroy, OnInit { this.fetchActivities(); } + public onUpdateActivity(aActivity: Activity) { + this.router.navigate(['/portfolio', 'activities'], { + queryParams: { activityId: aActivity.id, editDialog: true } + }); + + this.dialogRef.close(); + } + private fetchAccount() { this.dataService .fetchAccount(this.data.accountId) diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html index 0f0091ce5..a814a19a8 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html @@ -101,10 +101,17 @@ [hasPermissionToFilter]="false" [hasPermissionToOpenDetails]="false" [locale]="user?.settings?.locale" - [showActions]="false" + [showActions]=" + !data.hasImpersonationId && + data.hasPermissionToCreateOrder && + user?.settings?.isExperimentalFeatures && + !user?.settings?.isRestrictedView + " [sortColumn]="sortColumn" [sortDirection]="sortDirection" [totalItems]="totalItems" + (activityToClone)="onCloneActivity($event)" + (activityToUpdate)="onUpdateActivity($event)" (export)="onExport()" (sortChanged)="onSortChanged($event)" /> diff --git a/apps/client/src/app/components/account-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/account-detail-dialog/interfaces/interfaces.ts index 016fc3b7d..9ad6a5ba4 100644 --- a/apps/client/src/app/components/account-detail-dialog/interfaces/interfaces.ts +++ b/apps/client/src/app/components/account-detail-dialog/interfaces/interfaces.ts @@ -2,4 +2,5 @@ export interface AccountDetailDialogParams { accountId: string; deviceType: string; hasImpersonationId: boolean; + hasPermissionToCreateOrder: boolean; } diff --git a/apps/client/src/app/pages/accounts/accounts-page.component.ts b/apps/client/src/app/pages/accounts/accounts-page.component.ts index 244333243..9f86bf587 100644 --- a/apps/client/src/app/pages/accounts/accounts-page.component.ts +++ b/apps/client/src/app/pages/accounts/accounts-page.component.ts @@ -221,7 +221,11 @@ export class AccountsPageComponent implements OnDestroy, OnInit { data: { accountId: aAccountId, deviceType: this.deviceType, - hasImpersonationId: this.hasImpersonationId + hasImpersonationId: this.hasImpersonationId, + hasPermissionToCreateOrder: + !this.hasImpersonationId && + hasPermission(this.user?.permissions, permissions.createOrder) && + !this.user?.settings?.isRestrictedView }, height: this.deviceType === 'mobile' ? '97.5vh' : '80vh', width: this.deviceType === 'mobile' ? '100vw' : '50rem' diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts index 5af3a3099..89b08ad95 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts @@ -12,6 +12,7 @@ import { PortfolioPosition, User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { Market, MarketAdvanced } from '@ghostfolio/common/types'; import { translate } from '@ghostfolio/ui/i18n'; @@ -584,7 +585,11 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { data: { accountId: aAccountId, deviceType: this.deviceType, - hasImpersonationId: this.hasImpersonationId + hasImpersonationId: this.hasImpersonationId, + hasPermissionToCreateOrder: + !this.hasImpersonationId && + hasPermission(this.user?.permissions, permissions.createOrder) && + !this.user?.settings?.isRestrictedView }, height: this.deviceType === 'mobile' ? '97.5vh' : '80vh', width: this.deviceType === 'mobile' ? '100vw' : '50rem' From 43f5bb777346cda67eb1729c2381aef2dec53f11 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:46:57 +0200 Subject: [PATCH 10/23] Release 2.102.0 (#3648) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b4a5c1e7..d2114c4be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.102.0 - 2024-08-07 ### Added diff --git a/package.json b/package.json index ab9b5b812..84f15aa51 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.101.0", + "version": "2.102.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 40de0cead5abc58c57bcf3c4549c03999db81e9c Mon Sep 17 00:00:00 2001 From: Nuno Date: Thu, 8 Aug 2024 17:42:05 +0200 Subject: [PATCH 11/23] Feature/optimize docker image (#3642) * Remove redundant docker image layers * Update prisma binary target of prisma * Update changelog --- CHANGELOG.md | 7 +++++++ Dockerfile | 20 ++++++++++---------- nx.json | 9 +++++---- prisma/schema.prisma | 2 +- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2114c4be..9c41a58d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ 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). +## 2.103.0-alpha - 2024-08-08 + +### Changed + +- Optimized the docker image layers to reduce the image size +- Updated the binary targets of `debian-openssl` for `prisma` + ## 2.102.0 - 2024-08-07 ### Added diff --git a/Dockerfile b/Dockerfile index 8ca86a308..e6c38f273 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,14 @@ FROM --platform=$BUILDPLATFORM node:20-slim AS builder # Build application and add additional files WORKDIR /ghostfolio +RUN apt-get update && apt-get install -y --no-install-suggests \ + g++ \ + git \ + make \ + openssl \ + python3 \ + && rm -rf /var/lib/apt/lists/* + # Only add basic files without the application itself to avoid rebuilding # layers when files (package.json etc.) have not changed COPY ./CHANGELOG.md CHANGELOG.md @@ -11,13 +19,6 @@ COPY ./package.json package.json COPY ./package-lock.json package-lock.json COPY ./prisma/schema.prisma prisma/schema.prisma -RUN apt-get update && apt-get install -y --no-install-suggests \ - g++ \ - git \ - make \ - openssl \ - python3 \ - && rm -rf /var/lib/apt/lists/* RUN npm install # See https://github.com/nrwl/nx/issues/6586 for further details @@ -58,9 +59,8 @@ RUN apt-get update && apt-get install -y --no-install-suggests \ openssl \ && rm -rf /var/lib/apt/lists/* -COPY --from=builder /ghostfolio/dist/apps /ghostfolio/apps -COPY ./docker/entrypoint.sh /ghostfolio/entrypoint.sh -RUN chown -R node:node /ghostfolio +COPY --chown=node:node --from=builder /ghostfolio/dist/apps /ghostfolio/apps +COPY --chown=node:node ./docker/entrypoint.sh /ghostfolio/entrypoint.sh WORKDIR /ghostfolio/apps/api EXPOSE ${PORT:-3333} USER node diff --git a/nx.json b/nx.json index 5adb8983b..17123544e 100644 --- a/nx.json +++ b/nx.json @@ -61,12 +61,13 @@ "production": [ "default", "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", - "!{projectRoot}/tsconfig.spec.json", - "!{projectRoot}/jest.config.[jt]s", - "!{projectRoot}/.storybook/**/*", "!{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)", + "!{projectRoot}/.storybook/**/*", + "!{projectRoot}/jest.config.[jt]s", + "!{projectRoot}/src/test-setup.[jt]s", "!{projectRoot}/tsconfig.storybook.json", - "!{projectRoot}/src/test-setup.[jt]s" + "!{projectRoot}/tsconfig.spec.json", + "!{projectRoot}/webpack.config.js" ] }, "nxCloudAccessToken": "Mjg0ZGQ2YjAtNGI4NS00NmYwLThhOWEtMWZmNmQzODM4YzU4fHJlYWQ=", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 9385cb323..c5ced391a 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1,7 +1,7 @@ generator client { provider = "prisma-client-js" previewFeatures = [] - binaryTargets = ["debian-openssl-1.1.x", "linux-arm64-openssl-3.0.x", "native"] + binaryTargets = ["debian-openssl-3.0.x", "linux-arm64-openssl-3.0.x", "native"] } datasource db { From b8d9bafef645c072ec094e0cca8bfc6fba93589e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 9 Aug 2024 19:36:53 +0200 Subject: [PATCH 12/23] Feature/upgrade prisma to version 5.18.0 (#3646) * Upgrade prisma to version 5.18.0 * Update changelog --- CHANGELOG.md | 3 +- package-lock.json | 71 ++++++++++++++++++++++++++--------------------- package.json | 4 +-- 3 files changed, 43 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c41a58d9..e128ec4b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,13 @@ 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). -## 2.103.0-alpha - 2024-08-08 +## Unreleased ### Changed - Optimized the docker image layers to reduce the image size - Updated the binary targets of `debian-openssl` for `prisma` +- Upgraded `prisma` from version `5.17.0` to `5.18.0` ## 2.102.0 - 2024-08-07 diff --git a/package-lock.json b/package-lock.json index 1a9b0ce52..49eadc623 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "5.17.0", + "@prisma/client": "5.18.0", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", "@stripe/stripe-js": "3.5.0", @@ -84,7 +84,7 @@ "passport": "0.7.0", "passport-google-oauth20": "2.0.0", "passport-jwt": "4.0.1", - "prisma": "5.17.0", + "prisma": "5.18.0", "reflect-metadata": "0.1.13", "rxjs": "7.5.6", "stripe": "15.11.0", @@ -9646,10 +9646,11 @@ "dev": true }, "node_modules/@prisma/client": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.17.0.tgz", - "integrity": "sha512-N2tnyKayT0Zf7mHjwEyE8iG7FwTmXDHFZ1GnNhQp0pJUObsuel4ZZ1XwfuAYkq5mRIiC/Kot0kt0tGCfLJ70Jw==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.18.0.tgz", + "integrity": "sha512-BWivkLh+af1kqC89zCJYkHsRcyWsM8/JHpsDMM76DjP3ZdEquJhXa4IeX+HkWPnwJ5FanxEJFZZDTWiDs/Kvyw==", "hasInstallScript": true, + "license": "Apache-2.0", "engines": { "node": ">=16.13" }, @@ -9663,43 +9664,48 @@ } }, "node_modules/@prisma/debug": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.17.0.tgz", - "integrity": "sha512-l7+AteR3P8FXiYyo496zkuoiJ5r9jLQEdUuxIxNCN1ud8rdbH3GTxm+f+dCyaSv9l9WY+29L9czaVRXz9mULfg==" + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.18.0.tgz", + "integrity": "sha512-f+ZvpTLidSo3LMJxQPVgAxdAjzv5OpzAo/eF8qZqbwvgi2F5cTOI9XCpdRzJYA0iGfajjwjOKKrVq64vkxEfUw==", + "license": "Apache-2.0" }, "node_modules/@prisma/engines": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.17.0.tgz", - "integrity": "sha512-+r+Nf+JP210Jur+/X8SIPLtz+uW9YA4QO5IXA+KcSOBe/shT47bCcRMTYCbOESw3FFYFTwe7vU6KTWHKPiwvtg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.18.0.tgz", + "integrity": "sha512-ofmpGLeJ2q2P0wa/XaEgTnX/IsLnvSp/gZts0zjgLNdBhfuj2lowOOPmDcfKljLQUXMvAek3lw5T01kHmCG8rg==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "5.17.0", - "@prisma/engines-version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", - "@prisma/fetch-engine": "5.17.0", - "@prisma/get-platform": "5.17.0" + "@prisma/debug": "5.18.0", + "@prisma/engines-version": "5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169", + "@prisma/fetch-engine": "5.18.0", + "@prisma/get-platform": "5.18.0" } }, "node_modules/@prisma/engines-version": { - "version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053.tgz", - "integrity": "sha512-tUuxZZysZDcrk5oaNOdrBnnkoTtmNQPkzINFDjz7eG6vcs9AVDmA/F6K5Plsb2aQc/l5M2EnFqn3htng9FA4hg==" + "version": "5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169.tgz", + "integrity": "sha512-a/+LpJj8vYU3nmtkg+N3X51ddbt35yYrRe8wqHTJtYQt7l1f8kjIBcCs6sHJvodW/EK5XGvboOiwm47fmNrbgg==", + "license": "Apache-2.0" }, "node_modules/@prisma/fetch-engine": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.17.0.tgz", - "integrity": "sha512-ESxiOaHuC488ilLPnrv/tM2KrPhQB5TRris/IeIV4ZvUuKeaicCl4Xj/JCQeG9IlxqOgf1cCg5h5vAzlewN91Q==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.18.0.tgz", + "integrity": "sha512-I/3u0x2n31rGaAuBRx2YK4eB7R/1zCuayo2DGwSpGyrJWsZesrV7QVw7ND0/Suxeo/vLkJ5OwuBqHoCxvTHpOg==", + "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "5.17.0", - "@prisma/engines-version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", - "@prisma/get-platform": "5.17.0" + "@prisma/debug": "5.18.0", + "@prisma/engines-version": "5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169", + "@prisma/get-platform": "5.18.0" } }, "node_modules/@prisma/get-platform": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.17.0.tgz", - "integrity": "sha512-UlDgbRozCP1rfJ5Tlkf3Cnftb6srGrEQ4Nm3og+1Se2gWmCZ0hmPIi+tQikGDUVLlvOWx3Gyi9LzgRP+HTXV9w==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.18.0.tgz", + "integrity": "sha512-Tk+m7+uhqcKDgnMnFN0lRiH7Ewea0OEsZZs9pqXa7i3+7svS3FSCqDBCaM9x5fmhhkufiG0BtunJVDka+46DlA==", + "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "5.17.0" + "@prisma/debug": "5.18.0" } }, "node_modules/@rollup/rollup-android-arm-eabi": { @@ -28732,12 +28738,13 @@ } }, "node_modules/prisma": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.17.0.tgz", - "integrity": "sha512-m4UWkN5lBE6yevqeOxEvmepnL5cNPEjzMw2IqDB59AcEV6w7D8vGljDLd1gPFH+W6gUxw9x7/RmN5dCS/WTPxA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.18.0.tgz", + "integrity": "sha512-+TrSIxZsh64OPOmaSgVPH7ALL9dfU0jceYaMJXsNrTkFHO7/3RANi5K2ZiPB1De9+KDxCWn7jvRq8y8pvk+o9g==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@prisma/engines": "5.17.0" + "@prisma/engines": "5.18.0" }, "bin": { "prisma": "build/index.js" diff --git a/package.json b/package.json index 84f15aa51..7de22bdc5 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "5.17.0", + "@prisma/client": "5.18.0", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", "@stripe/stripe-js": "3.5.0", @@ -128,7 +128,7 @@ "passport": "0.7.0", "passport-google-oauth20": "2.0.0", "passport-jwt": "4.0.1", - "prisma": "5.17.0", + "prisma": "5.18.0", "reflect-metadata": "0.1.13", "rxjs": "7.5.6", "stripe": "15.11.0", From 9f5da976f22a40f753b6441116c1008c4600219f Mon Sep 17 00:00:00 2001 From: Tiago Sousa Date: Fri, 9 Aug 2024 18:38:03 +0100 Subject: [PATCH 13/23] Feature/improve language localization for portuguese (#3651) * Update translations * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.pt.xlf | 120 ++++++++++++------------ 2 files changed, 61 insertions(+), 60 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e128ec4b3..59e9e7cc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the language localization for Portuguese (`pt`) - Optimized the docker image layers to reduce the image size - Updated the binary targets of `debian-openssl` for `prisma` - Upgraded `prisma` from version `5.17.0` to `5.18.0` diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 90ebd02fd..8218c5d0b 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -459,7 +459,7 @@ Asset Profiles - Perfil de Ativos + Perfil de Ativos libs/ui/src/lib/assistant/assistant.html 67 @@ -467,7 +467,7 @@ Historical Market Data - Histórico de Dados de Mercado + Histórico de Dados de Mercado apps/client/src/app/components/admin-jobs/admin-jobs.html 37 @@ -955,7 +955,7 @@ Last Request - Último Pedido + Último Pedido apps/client/src/app/components/admin-users/admin-users.html 181 @@ -2067,7 +2067,7 @@ Sign in with fingerprint - Iniciar sessão com impressão digital + Iniciar sessão com impressão digital apps/client/src/app/components/user-account-settings/user-account-settings.html 195 @@ -3451,7 +3451,7 @@ Protection for sensitive information like absolute performances and quantity values - Proteção para informações sensíveis, como desempenhos absolutos e valores quantitativos + Proteção para informações sensíveis, como desempenhos absolutos e valores quantitativos apps/client/src/app/components/user-account-settings/user-account-settings.html 8 @@ -3459,7 +3459,7 @@ Distraction-free experience for turbulent times - Experiência sem distrações para tempos turbulentos + Experiência sem distrações para tempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html 178 @@ -3467,7 +3467,7 @@ Sneak peek at upcoming functionality - Acesso antecipado a funcionalidades futuras + Acesso antecipado a funcionalidades futuras apps/client/src/app/components/user-account-settings/user-account-settings.html 212 @@ -3871,7 +3871,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. - A nossa oferta oficial Ghostfolio Premium na nuvem é a maneira mais fácil de começar. Com o tempo que poupa, esta será a melhor opção para a maioria das pessoas. A receita é utilizada para cobrir a infraestrutura de hospedagem e financiar o desenvolvimento contínuo do Ghostfolio. + A nossa oferta oficial Ghostfolio Premium na nuvem é a maneira mais fácil de começar. Com o tempo que poupa, esta será a melhor opção para a maioria das pessoas. A receita é utilizada para cobrir a infraestrutura de hospedagem e financiar o desenvolvimento contínuo do Ghostfolio. apps/client/src/app/pages/pricing/pricing-page.html 6 @@ -3895,7 +3895,7 @@ Do you really want to delete these activities? - Deseja mesmo eliminar todas as suas atividades? + Deseja mesmo eliminar estas atividades? libs/ui/src/lib/activities-table/activities-table.component.ts 216 @@ -4167,7 +4167,7 @@ Liabilities - Liabilities + Responsabilidades apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 279 @@ -4179,7 +4179,7 @@ Changelog - Changelog + Registo de alterações apps/client/src/app/pages/about/about-page.component.ts 49 @@ -4191,7 +4191,7 @@ License - License + Licença apps/client/src/app/pages/about/about-page.component.ts 54 @@ -4203,7 +4203,7 @@ Stocks - Stocks + Ações apps/client/src/app/pages/features/features-page.html 15 @@ -4219,7 +4219,7 @@ Bonds - Bonds + Obrigações apps/client/src/app/pages/features/features-page.html 38 @@ -4227,7 +4227,7 @@ Cryptocurrencies - Cryptocurrencies + Criptomoedas apps/client/src/app/pages/features/features-page.html 51 @@ -4235,7 +4235,7 @@ Wealth Items - Wealth Items + Artigos de património apps/client/src/app/pages/features/features-page.html 76 @@ -4243,7 +4243,7 @@ Import and Export - Import and Export + Importação e exportação apps/client/src/app/pages/features/features-page.html 115 @@ -4251,7 +4251,7 @@ Multi-Accounts - Multi-Accounts + Múltiplas contas apps/client/src/app/pages/features/features-page.html 127 @@ -4259,7 +4259,7 @@ Portfolio Calculations - Portfolio Calculations + Cálculos do portefólio apps/client/src/app/pages/features/features-page.html 141 @@ -4267,7 +4267,7 @@ Dark Mode - Dark Mode + Modo escuro apps/client/src/app/pages/features/features-page.html 178 @@ -4275,7 +4275,7 @@ Market Mood - Market Mood + Humor do mercado apps/client/src/app/pages/features/features-page.html 206 @@ -4283,7 +4283,7 @@ Static Analysis - Static Analysis + Análise estática apps/client/src/app/pages/features/features-page.html 225 @@ -4291,7 +4291,7 @@ Multi-Language - Multi-Language + Multilíngua apps/client/src/app/pages/features/features-page.html 242 @@ -4299,7 +4299,7 @@ Open Source Software - Open Source Software + Software de código aberto apps/client/src/app/pages/features/features-page.html 278 @@ -4323,7 +4323,7 @@ Add Asset Profile - Add Asset Profile + Adicionar perfil do ativo apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html 7 @@ -4331,7 +4331,7 @@ Personal Finance Tools - Personal Finance Tools + Ferramentas de finanças pessoais apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts 14 @@ -4447,7 +4447,7 @@ ❌ No - ❌ No + ❌ Não apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 140 @@ -4455,7 +4455,7 @@ Self-Hosting - Self-Hosting + Auto-hospedagem apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 145 @@ -4487,7 +4487,7 @@ Effortlessly track, analyze, and visualize your wealth with Ghostfolio. - Effortlessly track, analyze, and visualize your wealth with Ghostfolio. + Acompanhe, analise e visualize o seu património sem esforço com a Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 243 @@ -4495,7 +4495,7 @@ Personal Finance Tools - Personal Finance Tools + Ferramentas de finanças pessoais apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 266 @@ -4503,7 +4503,7 @@ Guides - Guides + Guias apps/client/src/app/pages/resources/resources-page.html 22 @@ -4511,7 +4511,7 @@ Glossary - Glossary + Glossário apps/client/src/app/pages/resources/resources-page.html 124 @@ -4531,7 +4531,7 @@ Mortgages, personal loans, credit cards - Mortgages, personal loans, credit cards + Hipotecas, crédito pessoal, cartões de crédito apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 57 @@ -4539,7 +4539,7 @@ Luxury items, real estate, private companies - Luxury items, real estate, private companies + Artigos de luxo, bens imobiliários, empresas privadas apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 73 @@ -4547,7 +4547,7 @@ Buy - Buy + Comprar libs/ui/src/lib/i18n.ts 31 @@ -4579,7 +4579,7 @@ Assets - Assets + Ativos apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 239 @@ -4587,7 +4587,7 @@ Preset - Preset + Predefinição libs/ui/src/lib/i18n.ts 22 @@ -4595,7 +4595,7 @@ By Market - By Market + Por mercado apps/client/src/app/pages/portfolio/allocations/allocations-page.html 175 @@ -4603,7 +4603,7 @@ Asia-Pacific - Asia-Pacific + Ásia-Pacífico libs/ui/src/lib/i18n.ts 5 @@ -4611,7 +4611,7 @@ Japan - Japan + Japão libs/ui/src/lib/i18n.ts 80 @@ -4619,7 +4619,7 @@ Welcome to Ghostfolio - Welcome to Ghostfolio + Bem-vindo à Ghostfolio apps/client/src/app/components/home-overview/home-overview.html 7 @@ -4627,7 +4627,7 @@ Setup your accounts - Setup your accounts + Configurar as suas contas apps/client/src/app/components/home-overview/home-overview.html 15 @@ -4635,7 +4635,7 @@ Get a comprehensive financial overview by adding your bank and brokerage accounts. - Get a comprehensive financial overview by adding your bank and brokerage accounts. + Obtenha uma visão financeira abrangente adicionando as suas contas bancárias e de corretagem. apps/client/src/app/components/home-overview/home-overview.html 17 @@ -4651,7 +4651,7 @@ Record your investment activities to keep your portfolio up to date. - Record your investment activities to keep your portfolio up to date. + Registe as suas actividades de investimento para manter a sua carteira actualizada. apps/client/src/app/components/home-overview/home-overview.html 26 @@ -4659,7 +4659,7 @@ Monitor and analyze your portfolio - Monitor and analyze your portfolio + Monitorizar e analisar a sua carteira apps/client/src/app/components/home-overview/home-overview.html 33 @@ -4667,7 +4667,7 @@ Track your progress in real-time with comprehensive analysis and insights. - Track your progress in real-time with comprehensive analysis and insights. + Acompanhe o seu progresso em tempo real com análises e conhecimentos abrangentes. apps/client/src/app/components/home-overview/home-overview.html 35 @@ -4675,7 +4675,7 @@ No data available - No data available + Não há dados disponíveis apps/client/src/app/pages/portfolio/allocations/allocations-page.html 250 @@ -4691,7 +4691,7 @@ Ready to take control of your personal finances? - Ready to take control of your personal finances? + Pronto para assumir o controlo das suas finanças pessoais? apps/client/src/app/components/home-overview/home-overview.html 8 @@ -4699,7 +4699,7 @@ Setup accounts - Setup accounts + Configurar contas apps/client/src/app/components/home-overview/home-overview.html 44 @@ -4707,7 +4707,7 @@ Biometric Authentication - Biometric Authentication + Autenticação biométrica apps/client/src/app/components/user-account-settings/user-account-settings.html 194 @@ -4723,7 +4723,7 @@ Active Users - Active Users + Utilizadores ativos apps/client/src/app/pages/open/open-page.html 40 @@ -4735,7 +4735,7 @@ New Users - New Users + Novos utilizadores apps/client/src/app/pages/open/open-page.html 51 @@ -4743,7 +4743,7 @@ Users in Slack community - Users in Slack community + Utilizadores na comunidade Slack apps/client/src/app/pages/open/open-page.html 75 @@ -4751,7 +4751,7 @@ Contributors on GitHub - Contributors on GitHub + Colaboradores em GitHub apps/client/src/app/pages/open/open-page.html 89 @@ -4759,7 +4759,7 @@ Stars on GitHub - Stars on GitHub + Estrelas no GitHub apps/client/src/app/pages/landing/landing-page.html 88 @@ -4783,7 +4783,7 @@ Uptime - Uptime + Tempo de funcionamento apps/client/src/app/pages/open/open-page.html 132 @@ -4791,7 +4791,7 @@ Export Data - Export Data + Exportar dados apps/client/src/app/components/user-account-settings/user-account-settings.html 236 @@ -4799,7 +4799,7 @@ Currencies - Currencies + Moedas apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 85 @@ -4823,7 +4823,7 @@ Discover other exciting Open Source Software projects - Discover other exciting Open Source Software projects + Descubra outros projectos interessantes de software de fonte aberta apps/client/src/app/pages/about/oss-friends/oss-friends-page.html 9 @@ -4831,7 +4831,7 @@ Frequently Asked Questions (FAQ) - Frequently Asked Questions (FAQ) + Perguntas frequentes (FAQ) apps/client/src/app/pages/faq/overview/faq-overview-page.html 4 From 0f46ca4db2c7fa98c0befc56a8ca36c13496fd6d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 10 Aug 2024 07:57:19 +0200 Subject: [PATCH 14/23] Feature/extend personal finance tools 20240809 (#3656) * Add Sarmaaya.pk * Add Investify * Add FINATEKA * Add Plainzer --- libs/common/src/lib/personal-finance-tools.ts | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts index 52ac20e49..d8b53203a 100644 --- a/libs/common/src/lib/personal-finance-tools.ts +++ b/libs/common/src/lib/personal-finance-tools.ts @@ -181,6 +181,17 @@ export const personalFinanceTools: Product[] = [ origin: 'United States', slogan: 'Real-Time Portfolio Tracker & Stock Tracker' }, + { + founded: 2021, + hasFreePlan: true, + hasSelfHostingAbility: false, + key: 'finateka', + languages: ['English'], + name: 'FINATEKA', + origin: 'United States', + slogan: + 'The most convenient mobile application for personal finance accounting' + }, { founded: 2023, hasFreePlan: true, @@ -239,6 +250,14 @@ export const personalFinanceTools: Product[] = [ pricingPerYear: '$60', slogan: 'Managing money, made simple' }, + { + hasFreePlan: true, + hasSelfHostingAbility: false, + key: 'investify', + name: 'Investify', + origin: 'Pakistan', + slogan: 'Advanced portfolio tracking and stock market information' + }, { founded: 2011, hasFreePlan: true, @@ -354,6 +373,17 @@ export const personalFinanceTools: Product[] = [ regions: ['Austria', 'Germany', 'Switzerland'], slogan: 'Dein Vermögen immer im Blick' }, + { + founded: 2023, + hasFreePlan: true, + hasSelfHostingAbility: false, + key: 'plainzer', + languages: ['English'], + name: 'Plainzer', + origin: 'Poland', + pricingPerYear: '$74', + slogan: 'Free dividend tracker for your portfolio' + }, { founded: 2023, hasSelfHostingAbility: false, @@ -430,6 +460,15 @@ export const personalFinanceTools: Product[] = [ origin: 'United States', slogan: 'Track your net worth' }, + { + founded: 2019, + hasSelfHostingAbility: false, + key: 'sarmaaya.pk', + name: 'Sarmaaya.pk Portfolio Tracking', + note: 'Sarmaaya.pk Portfolio Tracking was discontinued in 2024', + origin: 'Pakistan', + slogan: 'Unified platform for financial research and portfolio tracking' + }, { founded: 2004, hasFreePlan: false, From 49485f79d24e0097238983c7a660fa9819927262 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 10 Aug 2024 07:57:45 +0200 Subject: [PATCH 15/23] Feature/enable experimental languages in user account settings (#3655) * Enable ca and pl as experimental * Update changelog --- CHANGELOG.md | 2 ++ .../user-account-settings.html | 20 ++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59e9e7cc7..34846d691 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Enabled Catalan (`ca`) as an option in the user settings (experimental) +- Enabled Polish (`pl`) as an option in the user settings (experimental) - Improved the language localization for Portuguese (`pt`) - Optimized the docker image layers to reduce the image size - Updated the binary targets of `debian-openssl` for `prisma` diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.html b/apps/client/src/app/components/user-account-settings/user-account-settings.html index 8b512ce3f..3896bbb46 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.html +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -73,12 +73,10 @@ Deutsch English @if (user?.settings?.isExperimentalFeatures) { - + Català (Community) } @if (user?.settings?.isExperimentalFeatures) { ) @if (user?.settings?.isExperimentalFeatures) { - + Polski (Community) } Português (Community Date: Sat, 10 Aug 2024 07:58:16 +0200 Subject: [PATCH 16/23] Feature/add logging to benchmark service (#3654) * Add logging --- apps/api/src/app/benchmark/benchmark.service.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/api/src/app/benchmark/benchmark.service.ts b/apps/api/src/app/benchmark/benchmark.service.ts index b6fdc8ea9..710eb0212 100644 --- a/apps/api/src/app/benchmark/benchmark.service.ts +++ b/apps/api/src/app/benchmark/benchmark.service.ts @@ -105,6 +105,8 @@ export class BenchmarkService { const { benchmarks, expiration }: BenchmarkValue = JSON.parse(cachedBenchmarkValue); + Logger.debug('Fetched benchmarks from cache', 'BenchmarkService'); + if (isAfter(new Date(), new Date(expiration))) { this.calculateAndCacheBenchmarks({ enableSharing @@ -356,6 +358,8 @@ export class BenchmarkService { private async calculateAndCacheBenchmarks({ enableSharing = false }): Promise { + Logger.debug('Calculate benchmarks', 'BenchmarkService'); + const benchmarkAssetProfiles = await this.getBenchmarkAssetProfiles({ enableSharing }); From c34959896c353ed220da94352348edb5339168fc Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 10 Aug 2024 09:01:28 +0200 Subject: [PATCH 17/23] Feature/improve color assignment with annualized performance in treemap chart (#3657) * Improve color assignment * Update changelog --- CHANGELOG.md | 1 + .../src/app/benchmark/benchmark.controller.ts | 4 +- apps/api/src/app/order/order.controller.ts | 4 +- .../calculator/portfolio-calculator.ts | 15 ++-- .../src/app/portfolio/portfolio.controller.ts | 4 +- .../src/app/portfolio/portfolio.service.ts | 14 ++-- apps/api/src/helper/portfolio.helper.ts | 71 ------------------- .../home-holdings/home-holdings.html | 1 + .../investment-chart.component.ts | 3 +- .../portfolio/analysis/analysis-page.html | 3 - libs/common/src/lib/calculation-helper.ts | 71 +++++++++++++++++++ .../treemap-chart/treemap-chart.component.ts | 18 +++-- .../trend-indicator.component.html | 4 +- .../trend-indicator.component.ts | 2 +- 14 files changed, 112 insertions(+), 103 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34846d691..74600ab0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the color assignment in the chart of the holdings tab on the home page (experimental) - Enabled Catalan (`ca`) as an option in the user settings (experimental) - Enabled Polish (`pl`) as an option in the user settings (experimental) - Improved the language localization for Portuguese (`pt`) diff --git a/apps/api/src/app/benchmark/benchmark.controller.ts b/apps/api/src/app/benchmark/benchmark.controller.ts index ea9ba8025..66c268b9b 100644 --- a/apps/api/src/app/benchmark/benchmark.controller.ts +++ b/apps/api/src/app/benchmark/benchmark.controller.ts @@ -1,8 +1,8 @@ import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator'; import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; -import { getInterval } from '@ghostfolio/api/helper/portfolio.helper'; import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor'; import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor'; +import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'; import type { AssetProfileIdentifier, BenchmarkMarketDataDetails, @@ -113,7 +113,7 @@ export class BenchmarkController { @Param('symbol') symbol: string, @Query('range') dateRange: DateRange = 'max' ): Promise { - const { endDate, startDate } = getInterval( + const { endDate, startDate } = getIntervalFromDateRange( dateRange, new Date(startDateString) ); diff --git a/apps/api/src/app/order/order.controller.ts b/apps/api/src/app/order/order.controller.ts index af8a1e296..7a9cf3d17 100644 --- a/apps/api/src/app/order/order.controller.ts +++ b/apps/api/src/app/order/order.controller.ts @@ -1,12 +1,12 @@ import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator'; import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; -import { getInterval } from '@ghostfolio/api/helper/portfolio.helper'; import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response/redact-values-in-response.interceptor'; import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor'; import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor'; import { ApiService } from '@ghostfolio/api/services/api/api.service'; import { DataGatheringService } from '@ghostfolio/api/services/data-gathering/data-gathering.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation/impersonation.service'; +import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'; import { DATA_GATHERING_QUEUE_PRIORITY_HIGH, HEADER_KEY_IMPERSONATION @@ -110,7 +110,7 @@ export class OrderController { let startDate: Date; if (dateRange) { - ({ endDate, startDate } = getInterval(dateRange)); + ({ endDate, startDate } = getIntervalFromDateRange(dateRange)); } const filters = this.apiService.buildFiltersFromQueryParams({ diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index 8c9342e39..697496a1c 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -4,13 +4,11 @@ import { PortfolioOrder } from '@ghostfolio/api/app/portfolio/interfaces/portfol import { TransactionPointSymbol } from '@ghostfolio/api/app/portfolio/interfaces/transaction-point-symbol.interface'; import { TransactionPoint } from '@ghostfolio/api/app/portfolio/interfaces/transaction-point.interface'; import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service'; -import { - getFactor, - getInterval -} from '@ghostfolio/api/helper/portfolio.helper'; +import { getFactor } from '@ghostfolio/api/helper/portfolio.helper'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { IDataGatheringItem } from '@ghostfolio/api/services/interfaces/interfaces'; +import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'; import { MAX_CHART_ITEMS } from '@ghostfolio/common/config'; import { DATE_FORMAT, @@ -133,7 +131,7 @@ export abstract class PortfolioCalculator { this.useCache = useCache; this.userId = userId; - const { endDate, startDate } = getInterval(dateRange); + const { endDate, startDate } = getIntervalFromDateRange(dateRange); this.endDate = endDate; this.startDate = startDate; @@ -303,7 +301,7 @@ export abstract class PortfolioCalculator { const feeInBaseCurrency = item.fee.mul( exchangeRatesByCurrency[`${item.currency}${this.currency}`]?.[ lastTransactionPoint.date - ] + ] ?? 1 ); const marketPriceInBaseCurrency = ( @@ -433,7 +431,10 @@ export abstract class PortfolioCalculator { dateRange?: DateRange; withDataDecimation?: boolean; }): Promise { - const { endDate, startDate } = getInterval(dateRange, this.getStartDate()); + const { endDate, startDate } = getIntervalFromDateRange( + dateRange, + this.getStartDate() + ); const daysInMarket = differenceInDays(endDate, startDate) + 1; const step = withDataDecimation diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 3c7993c61..7ce0b0847 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -7,7 +7,6 @@ import { hasNotDefinedValuesInObject, nullifyValuesInObject } from '@ghostfolio/api/helper/object.helper'; -import { getInterval } from '@ghostfolio/api/helper/portfolio.helper'; import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response/redact-values-in-response.interceptor'; import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor'; import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor'; @@ -15,6 +14,7 @@ import { ApiService } from '@ghostfolio/api/services/api/api.service'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation/impersonation.service'; +import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'; import { DEFAULT_CURRENCY, HEADER_KEY_IMPERSONATION @@ -247,7 +247,7 @@ export class PortfolioController { await this.impersonationService.validateImpersonationId(impersonationId); const userCurrency = this.request.user.Settings.settings.baseCurrency; - const { endDate, startDate } = getInterval(dateRange); + const { endDate, startDate } = getIntervalFromDateRange(dateRange); const { activities } = await this.orderService.getOrders({ endDate, diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 67529cc67..52543c16c 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -4,10 +4,7 @@ import { CashDetails } from '@ghostfolio/api/app/account/interfaces/cash-details import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { OrderService } from '@ghostfolio/api/app/order/order.service'; import { UserService } from '@ghostfolio/api/app/user/user.service'; -import { - getFactor, - getInterval -} from '@ghostfolio/api/helper/portfolio.helper'; +import { getFactor } from '@ghostfolio/api/helper/portfolio.helper'; import { AccountClusterRiskCurrentInvestment } from '@ghostfolio/api/models/rules/account-cluster-risk/current-investment'; import { AccountClusterRiskSingleAccount } from '@ghostfolio/api/models/rules/account-cluster-risk/single-account'; import { CurrencyClusterRiskBaseCurrencyCurrentInvestment } from '@ghostfolio/api/models/rules/currency-cluster-risk/base-currency-current-investment'; @@ -18,7 +15,10 @@ import { DataProviderService } from '@ghostfolio/api/services/data-provider/data import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation/impersonation.service'; import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/symbol-profile.service'; -import { getAnnualizedPerformancePercent } from '@ghostfolio/common/calculation-helper'; +import { + getAnnualizedPerformancePercent, + getIntervalFromDateRange +} from '@ghostfolio/common/calculation-helper'; import { DEFAULT_CURRENCY, EMERGENCY_FUND_TAG_ID, @@ -912,7 +912,7 @@ export class PortfolioService { const userId = await this.getUserId(impersonationId, this.request.user.id); const user = await this.userService.user({ id: userId }); - const { endDate } = getInterval(dateRange); + const { endDate } = getIntervalFromDateRange(dateRange); const { activities } = await this.orderService.getOrders({ endDate, @@ -1089,7 +1089,7 @@ export class PortfolioService { ) ); - const { endDate } = getInterval(dateRange); + const { endDate } = getIntervalFromDateRange(dateRange); const { activities } = await this.orderService.getOrders({ endDate, diff --git a/apps/api/src/helper/portfolio.helper.ts b/apps/api/src/helper/portfolio.helper.ts index 21b111395..6ebe48d3c 100644 --- a/apps/api/src/helper/portfolio.helper.ts +++ b/apps/api/src/helper/portfolio.helper.ts @@ -1,17 +1,4 @@ -import { resetHours } from '@ghostfolio/common/helper'; -import { DateRange } from '@ghostfolio/common/types'; - import { Type as ActivityType } from '@prisma/client'; -import { - endOfDay, - max, - subDays, - startOfMonth, - startOfWeek, - startOfYear, - subYears, - endOfYear -} from 'date-fns'; export function getFactor(activityType: ActivityType) { let factor: number; @@ -30,61 +17,3 @@ export function getFactor(activityType: ActivityType) { return factor; } - -export function getInterval( - aDateRange: DateRange, - portfolioStart = new Date(0) -) { - let endDate = endOfDay(new Date(Date.now())); - let startDate = portfolioStart; - - switch (aDateRange) { - case '1d': - startDate = max([ - startDate, - subDays(resetHours(new Date(Date.now())), 1) - ]); - break; - case 'mtd': - startDate = max([ - startDate, - subDays(startOfMonth(resetHours(new Date(Date.now()))), 1) - ]); - break; - case 'wtd': - startDate = max([ - startDate, - subDays( - startOfWeek(resetHours(new Date(Date.now())), { weekStartsOn: 1 }), - 1 - ) - ]); - break; - case 'ytd': - startDate = max([ - startDate, - subDays(startOfYear(resetHours(new Date(Date.now()))), 1) - ]); - break; - case '1y': - startDate = max([ - startDate, - subYears(resetHours(new Date(Date.now())), 1) - ]); - break; - case '5y': - startDate = max([ - startDate, - subYears(resetHours(new Date(Date.now())), 5) - ]); - break; - case 'max': - break; - default: - // '2024', '2023', '2022', etc. - endDate = endOfYear(new Date(aDateRange)); - startDate = max([startDate, new Date(aDateRange)]); - } - - return { endDate, startDate }; -} diff --git a/apps/client/src/app/components/home-holdings/home-holdings.html b/apps/client/src/app/components/home-holdings/home-holdings.html index b3ebe941c..bd9e57bb2 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.html +++ b/apps/client/src/app/components/home-holdings/home-holdings.html @@ -38,6 +38,7 @@ diff --git a/apps/client/src/app/components/investment-chart/investment-chart.component.ts b/apps/client/src/app/components/investment-chart/investment-chart.component.ts index 429eaae6f..15a4a6f9a 100644 --- a/apps/client/src/app/components/investment-chart/investment-chart.component.ts +++ b/apps/client/src/app/components/investment-chart/investment-chart.component.ts @@ -14,7 +14,7 @@ import { } from '@ghostfolio/common/helper'; import { LineChartItem } from '@ghostfolio/common/interfaces'; import { InvestmentItem } from '@ghostfolio/common/interfaces/investment-item.interface'; -import { ColorScheme, DateRange, GroupBy } from '@ghostfolio/common/types'; +import { ColorScheme, GroupBy } from '@ghostfolio/common/types'; import { ChangeDetectionStrategy, @@ -58,7 +58,6 @@ export class InvestmentChartComponent implements OnChanges, OnDestroy { @Input() isInPercent = false; @Input() isLoading = false; @Input() locale = getLocale(); - @Input() range: DateRange = 'max'; @Input() savingsRate = 0; @ViewChild('chartCanvas') chartCanvas; diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html index 970a89f75..73817bdcb 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html @@ -282,7 +282,6 @@ [isInPercent]="hasImpersonationId || user.settings.isRestrictedView" [isLoading]="isLoadingInvestmentChart" [locale]="user?.settings?.locale" - [range]="user?.settings?.dateRange" /> @@ -340,7 +339,6 @@ [isInPercent]="hasImpersonationId || user.settings.isRestrictedView" [isLoading]="isLoadingInvestmentTimelineChart" [locale]="user?.settings?.locale" - [range]="user?.settings?.dateRange" [savingsRate]="savingsRate" /> @@ -377,7 +375,6 @@ [isInPercent]="hasImpersonationId || user.settings.isRestrictedView" [isLoading]="isLoadingDividendTimelineChart" [locale]="user?.settings?.locale" - [range]="user?.settings?.dateRange" /> diff --git a/libs/common/src/lib/calculation-helper.ts b/libs/common/src/lib/calculation-helper.ts index 7d2ec9099..825282579 100644 --- a/libs/common/src/lib/calculation-helper.ts +++ b/libs/common/src/lib/calculation-helper.ts @@ -1,6 +1,19 @@ import { Big } from 'big.js'; +import { + endOfDay, + endOfYear, + max, + startOfMonth, + startOfWeek, + startOfYear, + subDays, + subYears +} from 'date-fns'; import { isNumber } from 'lodash'; +import { resetHours } from './helper'; +import { DateRange } from './types'; + export function getAnnualizedPerformancePercent({ daysInMarket, netPerformancePercentage @@ -18,3 +31,61 @@ export function getAnnualizedPerformancePercent({ return new Big(0); } + +export function getIntervalFromDateRange( + aDateRange: DateRange, + portfolioStart = new Date(0) +) { + let endDate = endOfDay(new Date(Date.now())); + let startDate = portfolioStart; + + switch (aDateRange) { + case '1d': + startDate = max([ + startDate, + subDays(resetHours(new Date(Date.now())), 1) + ]); + break; + case 'mtd': + startDate = max([ + startDate, + subDays(startOfMonth(resetHours(new Date(Date.now()))), 1) + ]); + break; + case 'wtd': + startDate = max([ + startDate, + subDays( + startOfWeek(resetHours(new Date(Date.now())), { weekStartsOn: 1 }), + 1 + ) + ]); + break; + case 'ytd': + startDate = max([ + startDate, + subDays(startOfYear(resetHours(new Date(Date.now()))), 1) + ]); + break; + case '1y': + startDate = max([ + startDate, + subYears(resetHours(new Date(Date.now())), 1) + ]); + break; + case '5y': + startDate = max([ + startDate, + subYears(resetHours(new Date(Date.now())), 5) + ]); + break; + case 'max': + break; + default: + // '2024', '2023', '2022', etc. + endDate = endOfYear(new Date(aDateRange)); + startDate = max([startDate, new Date(aDateRange)]); + } + + return { endDate, startDate }; +} diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts index f65894da3..8915707fa 100644 --- a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts @@ -1,8 +1,12 @@ -import { getAnnualizedPerformancePercent } from '@ghostfolio/common/calculation-helper'; +import { + getAnnualizedPerformancePercent, + getIntervalFromDateRange +} from '@ghostfolio/common/calculation-helper'; import { AssetProfileIdentifier, PortfolioPosition } from '@ghostfolio/common/interfaces'; +import { DateRange } from '@ghostfolio/common/types'; import { CommonModule } from '@angular/common'; import { @@ -23,7 +27,7 @@ import { ChartConfiguration } from 'chart.js'; import { LinearScale } from 'chart.js'; import { Chart } from 'chart.js'; import { TreemapController, TreemapElement } from 'chartjs-chart-treemap'; -import { differenceInDays } from 'date-fns'; +import { differenceInDays, max } from 'date-fns'; import { orderBy } from 'lodash'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; @@ -41,6 +45,7 @@ export class GfTreemapChartComponent implements AfterViewInit, OnChanges, OnDestroy { @Input() cursor: string; + @Input() dateRange: DateRange; @Input() holdings: PortfolioPosition[]; @Output() treemapChartClicked = new EventEmitter(); @@ -75,6 +80,8 @@ export class GfTreemapChartComponent private initialize() { this.isLoading = true; + const { endDate, startDate } = getIntervalFromDateRange(this.dateRange); + const data: ChartConfiguration['data'] = { datasets: [ { @@ -82,8 +89,11 @@ export class GfTreemapChartComponent const annualizedNetPerformancePercentWithCurrencyEffect = getAnnualizedPerformancePercent({ daysInMarket: differenceInDays( - new Date(), - ctx.raw._data.dateOfFirstActivity + endDate, + max([ + ctx.raw._data.dateOfFirstActivity ?? new Date(0), + startDate + ]) ), netPerformancePercentage: new Big( ctx.raw._data.netPerformancePercentWithCurrencyEffect diff --git a/libs/ui/src/lib/trend-indicator/trend-indicator.component.html b/libs/ui/src/lib/trend-indicator/trend-indicator.component.html index 761b3f232..b9f65a2ea 100644 --- a/libs/ui/src/lib/trend-indicator/trend-indicator.component.html +++ b/libs/ui/src/lib/trend-indicator/trend-indicator.component.html @@ -8,9 +8,9 @@ }" /> } @else { - @if (marketState === 'closed' && range === '1d') { + @if (marketState === 'closed' && dateRange === '1d') { - } @else if (marketState === 'delayed' && range === '1d') { + } @else if (marketState === 'delayed' && dateRange === '1d') { } @else if (value <= -0.0005) { Date: Sat, 10 Aug 2024 09:02:49 +0200 Subject: [PATCH 18/23] Release 2.103.0 (#3658) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74600ab0d..5381d85b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.103.0 - 2024-08-10 ### Changed diff --git a/package.json b/package.json index 7de22bdc5..0e38d32a3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.102.0", + "version": "2.103.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 475bc3b86da86e24710d930ca9d0b95bbd6804ca Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 11 Aug 2024 11:09:21 +0200 Subject: [PATCH 19/23] Feature/improve language localization for de 20240810 (#3660) * Update translations * Update changelog --- CHANGELOG.md | 6 ++ apps/client/src/locales/messages.ca.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.de.xlf | 84 ++++++++++++++----------- apps/client/src/locales/messages.es.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.fr.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.it.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.nl.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.pl.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.pt.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.tr.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.xlf | 82 +++++++++++++----------- apps/client/src/locales/messages.zh.xlf | 82 +++++++++++++----------- 12 files changed, 502 insertions(+), 408 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5381d85b1..df2f9e82d 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 German (`de`) + ## 2.103.0 - 2024-08-10 ### Changed diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 46c4eecf8..a0c08c862 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -302,31 +302,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -926,7 +934,7 @@ Balanç de Caixa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -2074,7 +2082,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -2126,11 +2134,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2574,7 +2582,7 @@ Informar d’un Problema amb les Dades apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -2614,7 +2622,7 @@ Gestionar Activitats apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -2746,7 +2754,7 @@ Total Amount apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -2754,7 +2762,7 @@ Savings Rate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -2766,7 +2774,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -3242,7 +3250,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -3398,7 +3406,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -3406,7 +3414,7 @@ Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -3414,7 +3422,7 @@ Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -3422,7 +3430,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -3430,7 +3438,7 @@ Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -3438,7 +3446,7 @@ Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -3446,7 +3454,7 @@ Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -3458,7 +3466,7 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3466,7 +3474,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -3474,7 +3482,7 @@ Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -3482,7 +3490,7 @@ Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -3490,7 +3498,7 @@ Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -3498,7 +3506,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -3506,7 +3514,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -3514,7 +3522,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 @@ -3670,7 +3678,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -5106,7 +5114,7 @@ Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -5114,7 +5122,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -5122,7 +5130,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -5130,7 +5138,7 @@ Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index ff8a46aa6..19d1b9f3a 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -854,7 +854,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1042,7 +1042,7 @@ Aktivitäten verwalten apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -1070,7 +1070,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1342,11 +1342,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1362,7 +1362,7 @@ Datenfehler melden apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -1742,7 +1742,7 @@ Lokalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -1750,7 +1750,7 @@ Datums- und Zahlenformat apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -1758,7 +1758,7 @@ Zen Modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -1770,7 +1770,7 @@ Einloggen mit Fingerabdruck apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -1782,7 +1782,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -2102,7 +2102,7 @@ Zeitstrahl der Investitionen apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -2874,7 +2874,7 @@ Experimentelle Funktionen apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -2922,7 +2922,7 @@ Aussehen apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -2930,7 +2930,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -2938,7 +2938,7 @@ Hell apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -2946,7 +2946,7 @@ Dunkel apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -2954,7 +2954,7 @@ Gesamtbetrag apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -2970,7 +2970,7 @@ Sparrate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -3210,31 +3210,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -3270,7 +3278,7 @@ Zeitstrahl der Dividenden apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -3462,7 +3470,7 @@ Unbeschwertes Erlebnis für turbulente Zeiten apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3470,7 +3478,7 @@ Vorschau auf kommende Funktionalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -4122,7 +4130,7 @@ Aktueller Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4130,7 +4138,7 @@ Längster Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4710,7 +4718,7 @@ Biometrische Authentifizierung apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -4794,7 +4802,7 @@ Daten exportieren apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -6018,7 +6026,7 @@ Ups, der Cash-Bestand Transfer ist fehlgeschlagen. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -6082,7 +6090,7 @@ Cash-Bestände apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -6590,7 +6598,7 @@ Gefahrenzone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6598,7 +6606,7 @@ Konto schliessen apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 @@ -6795,7 +6803,7 @@ Wealth - Vermögen + Vermögen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 99 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 4fb3cfe8c..0a40c8ccc 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -855,7 +855,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1043,7 +1043,7 @@ Gestión de las operaciones apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -1071,7 +1071,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1343,11 +1343,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1363,7 +1363,7 @@ Reporta un anomalía de los datos apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -1743,7 +1743,7 @@ Ubicación apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -1751,7 +1751,7 @@ Formato de fecha y número apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -1759,7 +1759,7 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -1771,7 +1771,7 @@ Iniciar sesión con huella digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -1783,7 +1783,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -2103,7 +2103,7 @@ Cronología de la inversión apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -2875,7 +2875,7 @@ Funcionalidades experimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -2923,7 +2923,7 @@ Apariencia apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -2931,7 +2931,7 @@ Automático apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -2939,7 +2939,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -2947,7 +2947,7 @@ Oscuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -2955,7 +2955,7 @@ Importe total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -2971,7 +2971,7 @@ Tasa de ahorro apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -3211,31 +3211,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -3283,7 +3291,7 @@ Calendario de dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -3463,7 +3471,7 @@ Experiencia sin distracciones para tiempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3471,7 +3479,7 @@ Un adelanto de las próximas funciones apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -4123,7 +4131,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4131,7 +4139,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4711,7 +4719,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -4795,7 +4803,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -6019,7 +6027,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -6083,7 +6091,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -6591,7 +6599,7 @@ Zona peligrosa apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6599,7 +6607,7 @@ Eliminar cuenta apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 74be9e7a6..3f51b7c7d 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -942,11 +942,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1070,7 +1070,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1362,7 +1362,7 @@ Gérer les Activités apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -1410,7 +1410,7 @@ Montant Total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -1418,7 +1418,7 @@ Taux d’Épargne apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -1430,7 +1430,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1710,7 +1710,7 @@ Signaler une Erreur de Données apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -2022,31 +2022,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -2058,7 +2066,7 @@ Paramètres régionaux apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -2066,7 +2074,7 @@ Format de date et d’heure apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -2074,7 +2082,7 @@ Apparence apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -2082,7 +2090,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -2090,7 +2098,7 @@ Clair apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -2098,7 +2106,7 @@ Sombre apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -2106,7 +2114,7 @@ Mode Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -2118,7 +2126,7 @@ Se connecter avec empreinte apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -2126,7 +2134,7 @@ Fonctionnalités expérimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -2138,7 +2146,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -2762,7 +2770,7 @@ Historique des Investissements apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -2770,7 +2778,7 @@ Historique des Dividendes apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -3462,7 +3470,7 @@ Expérience sans distraction pour les périodes tumultueuses apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3470,7 +3478,7 @@ Avant-première de fonctionnalités futures apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -4122,7 +4130,7 @@ Série en cours apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4130,7 +4138,7 @@ Série la plus longue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4710,7 +4718,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -4794,7 +4802,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -6018,7 +6026,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -6082,7 +6090,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -6590,7 +6598,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6598,7 +6606,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index f910e7d90..9eed170d0 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -855,7 +855,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1043,7 +1043,7 @@ Gestione delle attività apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -1071,7 +1071,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1343,11 +1343,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1363,7 +1363,7 @@ Segnala un’anomalia dei dati apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -1743,7 +1743,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -1751,7 +1751,7 @@ Formato data e numero apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -1759,7 +1759,7 @@ Modalità Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -1771,7 +1771,7 @@ Accesso con impronta digitale apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -1783,7 +1783,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -2103,7 +2103,7 @@ Cronologia degli investimenti apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -2875,7 +2875,7 @@ Funzionalità sperimentali apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -2923,7 +2923,7 @@ Aspetto apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -2931,7 +2931,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -2939,7 +2939,7 @@ Chiaro apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -2947,7 +2947,7 @@ Scuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -2955,7 +2955,7 @@ Importo totale apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -2971,7 +2971,7 @@ Tasso di risparmio apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -3211,31 +3211,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -3283,7 +3291,7 @@ Cronologia dei dividendi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -3463,7 +3471,7 @@ Esperienza priva di distrazioni per i periodi più turbolenti apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3471,7 +3479,7 @@ Un’anteprima delle funzionalità in arrivo apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -4123,7 +4131,7 @@ Serie attuale apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4131,7 +4139,7 @@ Serie più lunga apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4711,7 +4719,7 @@ Autenticazione biometrica apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -4795,7 +4803,7 @@ Esporta dati apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -6019,7 +6027,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -6083,7 +6091,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -6591,7 +6599,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6599,7 +6607,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index a5e623efa..fef9a6b33 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -854,7 +854,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1042,7 +1042,7 @@ Activiteiten beheren apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -1070,7 +1070,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1342,11 +1342,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1362,7 +1362,7 @@ Gegevensstoring melden apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -1742,7 +1742,7 @@ Locatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -1750,7 +1750,7 @@ Datum- en getalnotatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -1758,7 +1758,7 @@ Zen-modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -1770,7 +1770,7 @@ Aanmelden met vingerafdruk apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -1782,7 +1782,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -2102,7 +2102,7 @@ Tijdlijn investeringen apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -2874,7 +2874,7 @@ Experimentele functies apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -2922,7 +2922,7 @@ Weergave apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -2930,7 +2930,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -2938,7 +2938,7 @@ Licht apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -2946,7 +2946,7 @@ Donker apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -2954,7 +2954,7 @@ Totaalbedrag apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -2970,7 +2970,7 @@ Spaarrente apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -3210,31 +3210,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -3282,7 +3290,7 @@ Tijdlijn dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -3462,7 +3470,7 @@ Afleidingsvrije ervaring voor roerige tijden apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3470,7 +3478,7 @@ Voorproefje van nieuwe functionaliteit apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -4122,7 +4130,7 @@ Huidige reeks apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4130,7 +4138,7 @@ Langste reeks apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4710,7 +4718,7 @@ Biometrische authenticatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -4794,7 +4802,7 @@ Exporteer Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -6018,7 +6026,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -6082,7 +6090,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -6590,7 +6598,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6598,7 +6606,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index a2d25dc5e..730d70421 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -674,31 +674,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -1902,7 +1910,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1954,11 +1962,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2242,7 +2250,7 @@ Manage Activities apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -2374,7 +2382,7 @@ Total Amount apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -2382,7 +2390,7 @@ Savings Rate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -2394,7 +2402,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2726,7 +2734,7 @@ Report Data Glitch apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -3082,7 +3090,7 @@ Ustawienia Regionalne apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -3090,7 +3098,7 @@ Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -3098,7 +3106,7 @@ Wygląd (tryb) apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -3106,7 +3114,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -3114,7 +3122,7 @@ Jasny apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -3122,7 +3130,7 @@ Ciemny apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -3130,7 +3138,7 @@ Tryb Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -3142,7 +3150,7 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3150,7 +3158,7 @@ Uwierzytelnianie Biometryczne apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -3158,7 +3166,7 @@ Zaloguj się za pomocą linii papilarnych apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -3166,7 +3174,7 @@ Funkcje Eksperymentalne apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -3174,7 +3182,7 @@ Włącz podgląd nadchodzących funkcji apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -3186,7 +3194,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -3194,7 +3202,7 @@ Eksportuj Dane apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -3334,7 +3342,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -4626,7 +4634,7 @@ Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -4634,7 +4642,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4642,7 +4650,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4650,7 +4658,7 @@ Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -6082,7 +6090,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -6590,7 +6598,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6598,7 +6606,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 8218c5d0b..4a4efb61b 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -934,7 +934,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1226,7 +1226,7 @@ Gerir Atividades apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -1282,7 +1282,7 @@ Valor Total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -1290,7 +1290,7 @@ Taxa de Poupança apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -1302,7 +1302,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1650,11 +1650,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1670,7 +1670,7 @@ Dados do Relatório com Problema apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -2010,7 +2010,7 @@ Localidade apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -2018,7 +2018,7 @@ Formato de números e datas apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -2026,7 +2026,7 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -2038,7 +2038,7 @@ Aparência apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -2046,7 +2046,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -2054,7 +2054,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -2062,7 +2062,7 @@ Escuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -2070,7 +2070,7 @@ Iniciar sessão com impressão digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -2078,7 +2078,7 @@ Funcionalidades Experimentais apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -2090,7 +2090,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -2650,7 +2650,7 @@ Cronograma de Investimento apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -3254,31 +3254,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -3350,7 +3358,7 @@ Cronograma de Dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -3462,7 +3470,7 @@ Experiência sem distrações para tempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3470,7 +3478,7 @@ Acesso antecipado a funcionalidades futuras apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -4122,7 +4130,7 @@ Série Atual apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4130,7 +4138,7 @@ Série mais Longa apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4710,7 +4718,7 @@ Autenticação biométrica apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -4794,7 +4802,7 @@ Exportar dados apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -6018,7 +6026,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -6082,7 +6090,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -6590,7 +6598,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6598,7 +6606,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 3e9fd38ac..26abf234c 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -650,31 +650,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -1690,11 +1698,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1818,7 +1826,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -2094,7 +2102,7 @@ İşlemleri Yönet apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -2226,7 +2234,7 @@ Toplam Tutar apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -2234,7 +2242,7 @@ Tasarruf Oranı apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -2246,7 +2254,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2570,7 +2578,7 @@ Rapor Veri Sorunu apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -3154,7 +3162,7 @@ Zen Modu apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -4114,7 +4122,7 @@ Yatırım Zaman Çizelgesi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -4122,7 +4130,7 @@ Güncel Seri apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4130,7 +4138,7 @@ En Uzun Seri apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4138,7 +4146,7 @@ Temettü Zaman Çizelgesi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -4970,7 +4978,7 @@ Yerel Ayarlar apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -4978,7 +4986,7 @@ Tarih ve Sayı Formatları apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -4986,7 +4994,7 @@ Görünüm apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -4994,7 +5002,7 @@ Otomatik apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -5002,7 +5010,7 @@ Açık apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -5010,7 +5018,7 @@ Koyu apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -5018,7 +5026,7 @@ Çalkantılı zamanlar için dikkat dağıtmayan bir deneyim apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -5026,7 +5034,7 @@ Biyometrik Kimlik Doğrulama apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -5034,7 +5042,7 @@ Parmak iziyle oturum aç apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -5042,7 +5050,7 @@ Deneysel Özellikler apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -5050,7 +5058,7 @@ Gelecek özelliklere göz atın apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -5062,7 +5070,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -5070,7 +5078,7 @@ Verileri Dışa Aktar apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -6018,7 +6026,7 @@ Hay Allah, Nakit bakiyesi tranferi başarısız oldu. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -6082,7 +6090,7 @@ Nakit Bakiyeleri apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -6590,7 +6598,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6598,7 +6606,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 24253d03d..00435c0d4 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -652,31 +652,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -828,7 +836,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -1804,7 +1812,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1851,11 +1859,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2110,7 +2118,7 @@ Manage Activities apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -2227,14 +2235,14 @@ Total Amount apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 Savings Rate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -2245,7 +2253,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2545,7 +2553,7 @@ Report Data Glitch apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -2867,49 +2875,49 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -2920,35 +2928,35 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -2959,14 +2967,14 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -3093,7 +3101,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -4244,28 +4252,28 @@ Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -5968,7 +5976,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 @@ -5982,7 +5990,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 3092e362e..3692c7b1d 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -675,31 +675,39 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 85 + 77 apps/client/src/app/components/user-account-settings/user-account-settings.html - 90 + 83 apps/client/src/app/components/user-account-settings/user-account-settings.html - 94 + 88 apps/client/src/app/components/user-account-settings/user-account-settings.html - 98 + 92 apps/client/src/app/components/user-account-settings/user-account-settings.html - 102 + 96 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 100 apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 apps/client/src/app/pages/features/features-page.html @@ -863,7 +871,7 @@ 现金余额 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 115 + 122 @@ -1919,7 +1927,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 368 apps/client/src/app/pages/accounts/accounts-page.html @@ -1971,11 +1979,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 386 + 393 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 423 + 430 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2259,7 +2267,7 @@ 管理活动 apps/client/src/app/components/home-holdings/home-holdings.html - 60 + 61 @@ -2391,7 +2399,7 @@ 总金额 apps/client/src/app/components/investment-chart/investment-chart.component.ts - 142 + 141 @@ -2399,7 +2407,7 @@ 储蓄率 apps/client/src/app/components/investment-chart/investment-chart.component.ts - 214 + 213 @@ -2411,7 +2419,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 255 + 251 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2743,7 +2751,7 @@ 报告数据故障 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 441 + 448 @@ -3099,7 +3107,7 @@ 语言环境 apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 123 @@ -3107,7 +3115,7 @@ 日期和数字格式 apps/client/src/app/components/user-account-settings/user-account-settings.html - 129 + 125 @@ -3115,7 +3123,7 @@ 外貌 apps/client/src/app/components/user-account-settings/user-account-settings.html - 152 + 148 @@ -3123,7 +3131,7 @@ 自动 apps/client/src/app/components/user-account-settings/user-account-settings.html - 166 + 162 @@ -3131,7 +3139,7 @@ 明亮 apps/client/src/app/components/user-account-settings/user-account-settings.html - 167 + 163 @@ -3139,7 +3147,7 @@ 黑暗 apps/client/src/app/components/user-account-settings/user-account-settings.html - 168 + 164 @@ -3147,7 +3155,7 @@ 极简模式 apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 173 apps/client/src/app/pages/features/features-page.html @@ -3159,7 +3167,7 @@ 动荡时期的无干扰体验 apps/client/src/app/components/user-account-settings/user-account-settings.html - 178 + 174 @@ -3167,7 +3175,7 @@ 生物识别认证 apps/client/src/app/components/user-account-settings/user-account-settings.html - 194 + 190 @@ -3175,7 +3183,7 @@ 使用指纹登录 apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 191 @@ -3183,7 +3191,7 @@ 实验性功能 apps/client/src/app/components/user-account-settings/user-account-settings.html - 211 + 207 @@ -3191,7 +3199,7 @@ 预览即将推出的功能 apps/client/src/app/components/user-account-settings/user-account-settings.html - 212 + 208 @@ -3203,7 +3211,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 224 @@ -3211,7 +3219,7 @@ 导出数据 apps/client/src/app/components/user-account-settings/user-account-settings.html - 236 + 232 @@ -3351,7 +3359,7 @@ 糟糕,现金余额转账失败。 apps/client/src/app/pages/accounts/accounts-page.component.ts - 304 + 308 @@ -4643,7 +4651,7 @@ 投资时间表 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 297 + 296 @@ -4651,7 +4659,7 @@ 当前连胜 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 318 + 317 @@ -4659,7 +4667,7 @@ 最长连续纪录 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 327 + 326 @@ -4667,7 +4675,7 @@ 股息时间表 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 356 + 354 @@ -6591,7 +6599,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 248 + 244 @@ -6599,7 +6607,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 283 + 279 From d1276dc1a700a022a7112fa8a3c9612d051956c3 Mon Sep 17 00:00:00 2001 From: Nuno Date: Sun, 11 Aug 2024 14:31:04 +0200 Subject: [PATCH 20/23] Bugfix/remove read_only true from docker-compose.yml (#3653) * Removed read_only: true * Update changelog --- CHANGELOG.md | 4 ++++ docker/docker-compose.yml | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df2f9e82d..19504c4a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the language localization for German (`de`) +### Fixed + +- Removed `read_only: true` from the `docker-compose.yml` file to allow `prisma` to run migrations + ## 2.103.0 - 2024-08-10 ### Changed diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 23d9d6358..0d2166ba8 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -2,7 +2,6 @@ services: ghostfolio: image: docker.io/ghostfolio/ghostfolio:latest init: true - read_only: true cap_drop: - ALL security_opt: From 9246a73f410a84c2e107df44f79cf037d4353f65 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 11 Aug 2024 15:43:02 +0200 Subject: [PATCH 21/23] Feature/refactor dark theme css selector (#3662) * Refactor dark theme CSS selector * Update changelog --- CHANGELOG.md | 1 + apps/client/src/app/app.component.scss | 2 +- apps/client/src/app/app.component.ts | 4 ++-- apps/client/src/app/components/header/header.component.scss | 2 +- apps/client/src/app/components/rule/rule.component.scss | 2 +- apps/client/src/app/components/toggle/toggle.component.scss | 2 +- .../components/user-account-access/user-account-access.scss | 2 +- .../user-account-membership/user-account-membership.scss | 2 +- .../user-account-settings/user-account-settings.scss | 2 +- .../components/world-map-chart/world-map-chart.component.scss | 2 +- apps/client/src/app/pages/about/about-page.scss | 2 +- apps/client/src/app/pages/about/changelog/changelog-page.scss | 2 +- apps/client/src/app/pages/about/license/license-page.scss | 2 +- .../src/app/pages/about/overview/about-overview-page.scss | 2 +- .../app/pages/about/privacy-policy/privacy-policy-page.scss | 2 +- apps/client/src/app/pages/admin/admin-page.scss | 2 +- apps/client/src/app/pages/blog/blog-page.scss | 2 +- apps/client/src/app/pages/faq/faq-page.scss | 2 +- apps/client/src/app/pages/features/features-page.scss | 2 +- apps/client/src/app/pages/home/home-page.scss | 2 +- apps/client/src/app/pages/landing/landing-page.scss | 2 +- apps/client/src/app/pages/open/open-page.scss | 2 +- .../create-or-update-activity-dialog.scss | 2 +- .../import-activities-dialog/import-activities-dialog.scss | 2 +- .../src/app/pages/portfolio/allocations/allocations-page.scss | 2 +- apps/client/src/app/pages/portfolio/portfolio-page.scss | 2 +- apps/client/src/app/pages/pricing/pricing-page.scss | 2 +- apps/client/src/app/pages/public/public-page.scss | 2 +- apps/client/src/app/pages/register/register-page.scss | 2 +- .../personal-finance-tools/personal-finance-tools-page.scss | 2 +- .../pages/resources/personal-finance-tools/product-page.scss | 2 +- apps/client/src/app/pages/resources/resources-page.scss | 2 +- apps/client/src/app/pages/user-account/user-account-page.scss | 2 +- apps/client/src/app/pages/zen/zen-page.scss | 2 +- apps/client/src/styles.scss | 2 +- apps/client/src/styles/theme.scss | 4 ++-- .../lib/activities-filter/activities-filter.component.scss | 2 +- libs/ui/src/lib/activity-type/activity-type.component.scss | 2 +- .../assistant/assistant-list-item/assistant-list-item.scss | 2 +- libs/ui/src/lib/assistant/assistant.scss | 2 +- .../ui/src/lib/fire-calculator/fire-calculator.component.scss | 2 +- .../no-transactions-info/no-transactions-info.component.scss | 2 +- 42 files changed, 44 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19504c4a5..3a7879844 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Refactored the dark theme CSS selector - Improved the language localization for German (`de`) ### Fixed diff --git a/apps/client/src/app/app.component.scss b/apps/client/src/app/app.component.scss index a23e94fbb..6037e9639 100644 --- a/apps/client/src/app/app.component.scss +++ b/apps/client/src/app/app.component.scss @@ -46,7 +46,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { footer { background-color: rgba(var(--palette-foreground-text-dark), 0.05); } diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index b1d9a7f09..d432d9619 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -296,9 +296,9 @@ export class AppComponent implements OnDestroy, OnInit { ); if (isDarkTheme) { - this.document.body.classList.add('is-dark-theme'); + this.document.body.classList.add('theme-dark'); } else { - this.document.body.classList.remove('is-dark-theme'); + this.document.body.classList.remove('theme-dark'); } this.document diff --git a/apps/client/src/app/components/header/header.component.scss b/apps/client/src/app/components/header/header.component.scss index 6a1521795..d73bf1a8a 100644 --- a/apps/client/src/app/components/header/header.component.scss +++ b/apps/client/src/app/components/header/header.component.scss @@ -50,7 +50,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .mat-toolbar { background-color: var(--dark-background); diff --git a/apps/client/src/app/components/rule/rule.component.scss b/apps/client/src/app/components/rule/rule.component.scss index 7246f41de..54ddce823 100644 --- a/apps/client/src/app/components/rule/rule.component.scss +++ b/apps/client/src/app/components/rule/rule.component.scss @@ -20,7 +20,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .icon-container { background-color: rgba(var(--light-primary-text), 0.05); } diff --git a/apps/client/src/app/components/toggle/toggle.component.scss b/apps/client/src/app/components/toggle/toggle.component.scss index 84ca3fd37..b61a02865 100644 --- a/apps/client/src/app/components/toggle/toggle.component.scss +++ b/apps/client/src/app/components/toggle/toggle.component.scss @@ -25,7 +25,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .mat-mdc-radio-button { &.mat-mdc-radio-checked { background-color: rgba(var(--light-dividers)); diff --git a/apps/client/src/app/components/user-account-access/user-account-access.scss b/apps/client/src/app/components/user-account-access/user-account-access.scss index 39eb6792e..c19bfd343 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.scss +++ b/apps/client/src/app/components/user-account-access/user-account-access.scss @@ -3,6 +3,6 @@ display: block; } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.scss b/apps/client/src/app/components/user-account-membership/user-account-membership.scss index bb296c89b..0b66f6ee9 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.scss +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.scss @@ -4,6 +4,6 @@ height: 100%; } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.scss b/apps/client/src/app/components/user-account-settings/user-account-settings.scss index 22555407a..53ea0acb7 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.scss +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.scss @@ -17,6 +17,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/components/world-map-chart/world-map-chart.component.scss b/apps/client/src/app/components/world-map-chart/world-map-chart.component.scss index b317294ef..9fd9418bb 100644 --- a/apps/client/src/app/components/world-map-chart/world-map-chart.component.scss +++ b/apps/client/src/app/components/world-map-chart/world-map-chart.component.scss @@ -21,7 +21,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { ::ng-deep { .svgMap-map-wrapper { .svgMap-country { diff --git a/apps/client/src/app/pages/about/about-page.scss b/apps/client/src/app/pages/about/about-page.scss index e87d9a05b..b536ec216 100644 --- a/apps/client/src/app/pages/about/about-page.scss +++ b/apps/client/src/app/pages/about/about-page.scss @@ -2,6 +2,6 @@ color: rgb(var(--dark-primary-text)); } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/about/changelog/changelog-page.scss b/apps/client/src/app/pages/about/changelog/changelog-page.scss index aff47b345..6f9de3bcc 100644 --- a/apps/client/src/app/pages/about/changelog/changelog-page.scss +++ b/apps/client/src/app/pages/about/changelog/changelog-page.scss @@ -35,6 +35,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/about/license/license-page.scss b/apps/client/src/app/pages/about/license/license-page.scss index 39eb6792e..c19bfd343 100644 --- a/apps/client/src/app/pages/about/license/license-page.scss +++ b/apps/client/src/app/pages/about/license/license-page.scss @@ -3,6 +3,6 @@ display: block; } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.scss b/apps/client/src/app/pages/about/overview/about-overview-page.scss index df6759442..8b9853f3e 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.scss +++ b/apps/client/src/app/pages/about/overview/about-overview-page.scss @@ -24,7 +24,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); .about-container { diff --git a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.scss b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.scss index e3c73e9f2..b90d23078 100644 --- a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.scss +++ b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.scss @@ -16,6 +16,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/admin/admin-page.scss b/apps/client/src/app/pages/admin/admin-page.scss index e87d9a05b..b536ec216 100644 --- a/apps/client/src/app/pages/admin/admin-page.scss +++ b/apps/client/src/app/pages/admin/admin-page.scss @@ -2,6 +2,6 @@ color: rgb(var(--dark-primary-text)); } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/blog/blog-page.scss b/apps/client/src/app/pages/blog/blog-page.scss index 9235ed3c2..e576551f2 100644 --- a/apps/client/src/app/pages/blog/blog-page.scss +++ b/apps/client/src/app/pages/blog/blog-page.scss @@ -9,6 +9,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/faq/faq-page.scss b/apps/client/src/app/pages/faq/faq-page.scss index e87d9a05b..b536ec216 100644 --- a/apps/client/src/app/pages/faq/faq-page.scss +++ b/apps/client/src/app/pages/faq/faq-page.scss @@ -2,6 +2,6 @@ color: rgb(var(--dark-primary-text)); } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/features/features-page.scss b/apps/client/src/app/pages/features/features-page.scss index 4a8680714..c3109fdf7 100644 --- a/apps/client/src/app/pages/features/features-page.scss +++ b/apps/client/src/app/pages/features/features-page.scss @@ -12,6 +12,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/home/home-page.scss b/apps/client/src/app/pages/home/home-page.scss index e87d9a05b..b536ec216 100644 --- a/apps/client/src/app/pages/home/home-page.scss +++ b/apps/client/src/app/pages/home/home-page.scss @@ -2,6 +2,6 @@ color: rgb(var(--dark-primary-text)); } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/landing/landing-page.scss b/apps/client/src/app/pages/landing/landing-page.scss index 5a3e129ca..4c0c14efd 100644 --- a/apps/client/src/app/pages/landing/landing-page.scss +++ b/apps/client/src/app/pages/landing/landing-page.scss @@ -120,7 +120,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .button-container { .mat-mdc-outlined-button { background-color: var(--dark-background); diff --git a/apps/client/src/app/pages/open/open-page.scss b/apps/client/src/app/pages/open/open-page.scss index e58d9f237..65c9b4e3c 100644 --- a/apps/client/src/app/pages/open/open-page.scss +++ b/apps/client/src/app/pages/open/open-page.scss @@ -14,6 +14,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.scss b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.scss index 6b1415dcb..5af305f9c 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.scss +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.scss @@ -18,7 +18,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .mat-mdc-dialog-content { .mat-datepicker-input { &.mat-mdc-input-element:disabled { diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss index 2dbbdaefc..54aa8c893 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss @@ -53,7 +53,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .drop-area { border-color: rgba( var(--palette-foreground-divider-dark), diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.scss b/apps/client/src/app/pages/portfolio/allocations/allocations-page.scss index c73ac7fc3..28071385c 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.scss +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.scss @@ -43,7 +43,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .mat-mdc-progress-bar { ::ng-deep { .mdc-linear-progress__buffer-bar { diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.scss b/apps/client/src/app/pages/portfolio/portfolio-page.scss index e87d9a05b..b536ec216 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.scss +++ b/apps/client/src/app/pages/portfolio/portfolio-page.scss @@ -2,6 +2,6 @@ color: rgb(var(--dark-primary-text)); } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/pricing/pricing-page.scss b/apps/client/src/app/pages/pricing/pricing-page.scss index 86f4b526f..ad8e97b19 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.scss +++ b/apps/client/src/app/pages/pricing/pricing-page.scss @@ -26,6 +26,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/public/public-page.scss b/apps/client/src/app/pages/public/public-page.scss index 9a6909a98..dbea95e24 100644 --- a/apps/client/src/app/pages/public/public-page.scss +++ b/apps/client/src/app/pages/public/public-page.scss @@ -17,6 +17,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/register/register-page.scss b/apps/client/src/app/pages/register/register-page.scss index 2334b58d4..322a2064f 100644 --- a/apps/client/src/app/pages/register/register-page.scss +++ b/apps/client/src/app/pages/register/register-page.scss @@ -24,7 +24,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .button-container { .mat-mdc-outlined-button { background-color: var(--dark-background); diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.scss b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.scss index 00667fe84..90a5a41dc 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.scss +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.scss @@ -20,6 +20,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.scss b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.scss index 9726e095f..670cde9a6 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.scss +++ b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.scss @@ -16,7 +16,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); .call-to-action { diff --git a/apps/client/src/app/pages/resources/resources-page.scss b/apps/client/src/app/pages/resources/resources-page.scss index 4a8680714..c3109fdf7 100644 --- a/apps/client/src/app/pages/resources/resources-page.scss +++ b/apps/client/src/app/pages/resources/resources-page.scss @@ -12,6 +12,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/user-account/user-account-page.scss b/apps/client/src/app/pages/user-account/user-account-page.scss index e87d9a05b..b536ec216 100644 --- a/apps/client/src/app/pages/user-account/user-account-page.scss +++ b/apps/client/src/app/pages/user-account/user-account-page.scss @@ -2,6 +2,6 @@ color: rgb(var(--dark-primary-text)); } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/zen/zen-page.scss b/apps/client/src/app/pages/zen/zen-page.scss index e87d9a05b..b536ec216 100644 --- a/apps/client/src/app/pages/zen/zen-page.scss +++ b/apps/client/src/app/pages/zen/zen-page.scss @@ -2,6 +2,6 @@ color: rgb(var(--dark-primary-text)); } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/styles.scss b/apps/client/src/styles.scss index b9b7ce828..2b8644521 100644 --- a/apps/client/src/styles.scss +++ b/apps/client/src/styles.scss @@ -214,7 +214,7 @@ body { } } - &.is-dark-theme { + &.theme-dark { background: var(--dark-background); color: rgba(var(--light-primary-text)); diff --git a/apps/client/src/styles/theme.scss b/apps/client/src/styles/theme.scss index 40a872c72..f437ec676 100644 --- a/apps/client/src/styles/theme.scss +++ b/apps/client/src/styles/theme.scss @@ -3,7 +3,7 @@ $dark-primary-text: rgba(black, 0.87); $light-primary-text: white; -$mat-css-dark-theme-selector: '.is-dark-theme'; +$mat-css-dark-theme-selector: '.theme-dark'; $gf-primary: ( 50: var(--gf-theme-primary-50), @@ -99,7 +99,7 @@ $gf-theme-dark: mat.m2-define-dark-theme( ) ); -.is-dark-theme { +.theme-dark { @include mat.all-component-colors($gf-theme-dark); } diff --git a/libs/ui/src/lib/activities-filter/activities-filter.component.scss b/libs/ui/src/lib/activities-filter/activities-filter.component.scss index 07964fdfa..f8b7f88dc 100644 --- a/libs/ui/src/lib/activities-filter/activities-filter.component.scss +++ b/libs/ui/src/lib/activities-filter/activities-filter.component.scss @@ -15,7 +15,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .mat-mdc-form-field { color: rgba(var(--light-primary-text)); } diff --git a/libs/ui/src/lib/activity-type/activity-type.component.scss b/libs/ui/src/lib/activity-type/activity-type.component.scss index c6aebbbe2..49889b665 100644 --- a/libs/ui/src/lib/activity-type/activity-type.component.scss +++ b/libs/ui/src/lib/activity-type/activity-type.component.scss @@ -40,7 +40,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .activity-type-badge { background-color: rgba(var(--palette-foreground-text-dark), 0.1) !important; } diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.scss b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.scss index c1679e56b..9f677c1a4 100644 --- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.scss +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.scss @@ -10,7 +10,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { &.has-focus { a { color: rgba(var(--dark-primary-text)); diff --git a/libs/ui/src/lib/assistant/assistant.scss b/libs/ui/src/lib/assistant/assistant.scss index 6ed02f658..2de06824a 100644 --- a/libs/ui/src/lib/assistant/assistant.scss +++ b/libs/ui/src/lib/assistant/assistant.scss @@ -26,7 +26,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { .date-range-selector-container { border-color: rgba(var(--light-dividers)); } diff --git a/libs/ui/src/lib/fire-calculator/fire-calculator.component.scss b/libs/ui/src/lib/fire-calculator/fire-calculator.component.scss index d5465964b..5662415da 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.scss +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.scss @@ -25,7 +25,7 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { ::ng-deep { .mdc-text-field--disabled { .mdc-notched-outline__leading, diff --git a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.scss b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.scss index 4f5588302..14d72b7da 100644 --- a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.scss +++ b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.scss @@ -11,6 +11,6 @@ } } -:host-context(.is-dark-theme) { +:host-context(.theme-dark) { border-color: rgba(var(--light-dividers)); } From 2893d71377073ad6c53acd0230e5b0f9a2cad9d4 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 11 Aug 2024 18:33:33 +0200 Subject: [PATCH 22/23] Feature/set up notification service (#3663) * Set up notification service * Update changelog --- CHANGELOG.md | 4 + apps/client/src/app/app.component.ts | 1 + apps/client/src/app/app.module.ts | 2 + .../accounts-table.component.ts | 21 +++-- .../portfolio-performance.component.ts | 10 ++- apps/client/src/app/core/layout.service.ts | 25 +++++- .../alert-dialog/alert-dialog.component.ts | 27 ++++++ .../alert-dialog/alert-dialog.html | 11 +++ .../alert-dialog/alert-dialog.scss | 2 + .../alert-dialog/interfaces/interfaces.ts | 6 ++ .../confirmation-dialog.component.ts | 41 +++++++++ .../confirmation-dialog.html | 20 +++++ .../confirmation-dialog.scss | 2 + .../confirmation-dialog.type.ts | 5 ++ .../interfaces/interfaces.ts | 9 ++ .../notification/interfaces/interfaces.ts | 19 +++++ .../core/notification/notification.module.ts | 18 ++++ .../core/notification/notification.service.ts | 83 +++++++++++++++++++ apps/client/src/styles.scss | 4 - libs/ui/src/lib/i18n.ts | 3 + 20 files changed, 297 insertions(+), 16 deletions(-) create mode 100644 apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts create mode 100644 apps/client/src/app/core/notification/alert-dialog/alert-dialog.html create mode 100644 apps/client/src/app/core/notification/alert-dialog/alert-dialog.scss create mode 100644 apps/client/src/app/core/notification/alert-dialog/interfaces/interfaces.ts create mode 100644 apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts create mode 100644 apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.html create mode 100644 apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.scss create mode 100644 apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.type.ts create mode 100644 apps/client/src/app/core/notification/confirmation-dialog/interfaces/interfaces.ts create mode 100644 apps/client/src/app/core/notification/interfaces/interfaces.ts create mode 100644 apps/client/src/app/core/notification/notification.module.ts create mode 100644 apps/client/src/app/core/notification/notification.service.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a7879844..e600373b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Set up a notification service for alert and confirmation dialogs + ### Changed - Refactored the dark theme CSS selector diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index d432d9619..ad6e6e808 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -270,6 +270,7 @@ export class AppComponent implements OnDestroy, OnInit { locale: this.user?.settings?.locale }, height: this.deviceType === 'mobile' ? '97.5vh' : '80vh', + maxWidth: this.deviceType === 'mobile' ? '95vw' : '50rem', width: this.deviceType === 'mobile' ? '100vw' : '50rem' }); diff --git a/apps/client/src/app/app.module.ts b/apps/client/src/app/app.module.ts index 9a311ac69..04602dd2e 100644 --- a/apps/client/src/app/app.module.ts +++ b/apps/client/src/app/app.module.ts @@ -33,6 +33,7 @@ import { GfSubscriptionInterstitialDialogModule } from './components/subscriptio import { authInterceptorProviders } from './core/auth.interceptor'; import { httpResponseInterceptorProviders } from './core/http-response.interceptor'; import { LanguageService } from './core/language.service'; +import { GfNotificationModule } from './core/notification/notification.module'; export function NgxStripeFactory(): string { return environment.stripePublicKey; @@ -47,6 +48,7 @@ export function NgxStripeFactory(): string { BrowserModule, GfHeaderModule, GfLogoComponent, + GfNotificationModule, GfSubscriptionInterstitialDialogModule, MarkdownModule.forRoot(), MatAutocompleteModule, diff --git a/apps/client/src/app/components/accounts-table/accounts-table.component.ts b/apps/client/src/app/components/accounts-table/accounts-table.component.ts index 702803aa0..d19cd748f 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.component.ts +++ b/apps/client/src/app/components/accounts-table/accounts-table.component.ts @@ -1,3 +1,5 @@ +import { ConfirmationDialogType } from '@ghostfolio/client/core/notification/confirmation-dialog/confirmation-dialog.type'; +import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { getLocale } from '@ghostfolio/common/helper'; import { @@ -54,7 +56,10 @@ export class AccountsTableComponent implements OnChanges, OnDestroy, OnInit { private unsubscribeSubject = new Subject(); - public constructor(private router: Router) {} + public constructor( + private notificationService: NotificationService, + private router: Router + ) {} public ngOnInit() {} @@ -97,13 +102,13 @@ export class AccountsTableComponent implements OnChanges, OnDestroy, OnInit { } public onDeleteAccount(aId: string) { - const confirmation = confirm( - $localize`Do you really want to delete this account?` - ); - - if (confirmation) { - this.accountDeleted.emit(aId); - } + this.notificationService.confirm({ + confirmFn: () => { + this.accountDeleted.emit(aId); + }, + confirmType: ConfirmationDialogType.Warn, + title: $localize`Do you really want to delete this account?` + }); } public onOpenAccountDetailDialog(accountId: string) { diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts index 3083184bb..7ca4677b0 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts @@ -1,3 +1,4 @@ +import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { getLocale, getNumberFormatDecimal, @@ -39,7 +40,7 @@ export class PortfolioPerformanceComponent implements OnChanges { @ViewChild('value') value: ElementRef; - public constructor() {} + public constructor(private notificationService: NotificationService) {} public ngOnChanges() { this.precision = this.precision >= 0 ? this.precision : 2; @@ -74,12 +75,15 @@ export class PortfolioPerformanceComponent implements OnChanges { } public onShowErrors() { - const errorMessageParts = [$localize`Market data is delayed for`]; + const errorMessageParts = []; for (const error of this.errors) { errorMessageParts.push(`${error.symbol} (${error.dataSource})`); } - alert(errorMessageParts.join('\n')); + this.notificationService.alert({ + message: errorMessageParts.join('
'), + title: $localize`Market data is delayed for` + }); } } diff --git a/apps/client/src/app/core/layout.service.ts b/apps/client/src/app/core/layout.service.ts index 3ba7af91e..a6fb65006 100644 --- a/apps/client/src/app/core/layout.service.ts +++ b/apps/client/src/app/core/layout.service.ts @@ -1,16 +1,39 @@ import { Injectable } from '@angular/core'; +import { DeviceDetectorService } from 'ngx-device-detector'; import { Observable, Subject } from 'rxjs'; +import { NotificationService } from './notification/notification.service'; + @Injectable({ providedIn: 'root' }) export class LayoutService { + public static readonly DEFAULT_NOTIFICATION_MAX_WIDTH = '50rem'; + public static readonly DEFAULT_NOTIFICATION_WIDTH = '75vw'; + public shouldReloadContent$: Observable; private shouldReloadSubject = new Subject(); - public constructor() { + public constructor( + private deviceService: DeviceDetectorService, + private notificationService: NotificationService + ) { this.shouldReloadContent$ = this.shouldReloadSubject.asObservable(); + + const deviceType = this.deviceService.getDeviceInfo().deviceType; + + this.notificationService.setDialogWidth( + deviceType === 'mobile' + ? '95vw' + : LayoutService.DEFAULT_NOTIFICATION_WIDTH + ); + + this.notificationService.setDialogMaxWidth( + deviceType === 'mobile' + ? '95vw' + : LayoutService.DEFAULT_NOTIFICATION_MAX_WIDTH + ); } public getShouldReloadSubject() { diff --git a/apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts b/apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts new file mode 100644 index 000000000..65439ec42 --- /dev/null +++ b/apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts @@ -0,0 +1,27 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule, MatDialogRef } from '@angular/material/dialog'; + +import { IAlertDialogParams } from './interfaces/interfaces'; + +@Component({ + imports: [CommonModule, MatButtonModule, MatDialogModule], + selector: 'gf-alert-dialog', + standalone: true, + styleUrls: ['./alert-dialog.scss'], + templateUrl: './alert-dialog.html' +}) +export class GfAlertDialogComponent { + public discardLabel: string; + public message: string; + public title: string; + + public constructor(public dialogRef: MatDialogRef) {} + + public initialize(aParams: IAlertDialogParams) { + this.discardLabel = aParams.discardLabel; + this.message = aParams.message; + this.title = aParams.title; + } +} diff --git a/apps/client/src/app/core/notification/alert-dialog/alert-dialog.html b/apps/client/src/app/core/notification/alert-dialog/alert-dialog.html new file mode 100644 index 000000000..6602078d3 --- /dev/null +++ b/apps/client/src/app/core/notification/alert-dialog/alert-dialog.html @@ -0,0 +1,11 @@ +@if (title) { +
+} + +@if (message) { +
+} + +
+ +
diff --git a/apps/client/src/app/core/notification/alert-dialog/alert-dialog.scss b/apps/client/src/app/core/notification/alert-dialog/alert-dialog.scss new file mode 100644 index 000000000..dc9093b45 --- /dev/null +++ b/apps/client/src/app/core/notification/alert-dialog/alert-dialog.scss @@ -0,0 +1,2 @@ +:host { +} diff --git a/apps/client/src/app/core/notification/alert-dialog/interfaces/interfaces.ts b/apps/client/src/app/core/notification/alert-dialog/interfaces/interfaces.ts new file mode 100644 index 000000000..7cff077a7 --- /dev/null +++ b/apps/client/src/app/core/notification/alert-dialog/interfaces/interfaces.ts @@ -0,0 +1,6 @@ +export interface IAlertDialogParams { + confirmLabel?: string; + discardLabel?: string; + message?: string; + title: string; +} diff --git a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts new file mode 100644 index 000000000..3545d39b7 --- /dev/null +++ b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts @@ -0,0 +1,41 @@ +import { CommonModule } from '@angular/common'; +import { Component, HostListener } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule, MatDialogRef } from '@angular/material/dialog'; + +import { ConfirmationDialogType } from './confirmation-dialog.type'; +import { IConfirmDialogParams } from './interfaces/interfaces'; + +@Component({ + imports: [CommonModule, MatButtonModule, MatDialogModule], + selector: 'gf-confirmation-dialog', + standalone: true, + styleUrls: ['./confirmation-dialog.scss'], + templateUrl: './confirmation-dialog.html' +}) +export class GfConfirmationDialogComponent { + public confirmLabel: string; + public confirmType: ConfirmationDialogType; + public discardLabel: string; + public message: string; + public title: string; + + public constructor( + public dialogRef: MatDialogRef + ) {} + + @HostListener('window:keyup', ['$event']) + public keyEvent(event: KeyboardEvent) { + if (event.key === 'Enter') { + this.dialogRef.close('confirm'); + } + } + + public initialize(aParams: IConfirmDialogParams) { + this.confirmLabel = aParams.confirmLabel; + this.confirmType = aParams.confirmType; + this.discardLabel = aParams.discardLabel; + this.message = aParams.message; + this.title = aParams.title; + } +} diff --git a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.html b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.html new file mode 100644 index 000000000..e9e2b693c --- /dev/null +++ b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.html @@ -0,0 +1,20 @@ +@if (title) { +
+} + +@if (message) { +
+} + +
+ + +
diff --git a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.scss b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.scss new file mode 100644 index 000000000..dc9093b45 --- /dev/null +++ b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.scss @@ -0,0 +1,2 @@ +:host { +} diff --git a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.type.ts b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.type.ts new file mode 100644 index 000000000..1fe1fc7c9 --- /dev/null +++ b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.type.ts @@ -0,0 +1,5 @@ +export enum ConfirmationDialogType { + Accent = 'accent', + Primary = 'primary', + Warn = 'warn' +} diff --git a/apps/client/src/app/core/notification/confirmation-dialog/interfaces/interfaces.ts b/apps/client/src/app/core/notification/confirmation-dialog/interfaces/interfaces.ts new file mode 100644 index 000000000..834988ceb --- /dev/null +++ b/apps/client/src/app/core/notification/confirmation-dialog/interfaces/interfaces.ts @@ -0,0 +1,9 @@ +import { ConfirmationDialogType } from '../confirmation-dialog.type'; + +export interface IConfirmDialogParams { + confirmLabel?: string; + confirmType: ConfirmationDialogType; + discardLabel?: string; + message?: string; + title: string; +} diff --git a/apps/client/src/app/core/notification/interfaces/interfaces.ts b/apps/client/src/app/core/notification/interfaces/interfaces.ts new file mode 100644 index 000000000..f5a526c92 --- /dev/null +++ b/apps/client/src/app/core/notification/interfaces/interfaces.ts @@ -0,0 +1,19 @@ +import { ConfirmationDialogType } from '../confirmation-dialog/confirmation-dialog.type'; + +export interface IAlertParams { + discardFn?: () => void; + discardLabel?: string; + message?: string; + title: string; +} + +export interface IConfirmParams { + confirmFn: () => void; + confirmLabel?: string; + confirmType?: ConfirmationDialogType; + disableClose?: boolean; + discardFn?: () => void; + discardLabel?: string; + message?: string; + title: string; +} diff --git a/apps/client/src/app/core/notification/notification.module.ts b/apps/client/src/app/core/notification/notification.module.ts new file mode 100644 index 000000000..542cae928 --- /dev/null +++ b/apps/client/src/app/core/notification/notification.module.ts @@ -0,0 +1,18 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { MatDialogModule } from '@angular/material/dialog'; + +import { GfAlertDialogComponent } from './alert-dialog/alert-dialog.component'; +import { GfConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component'; +import { NotificationService } from './notification.service'; + +@NgModule({ + imports: [ + CommonModule, + GfAlertDialogComponent, + GfConfirmationDialogComponent, + MatDialogModule + ], + providers: [NotificationService] +}) +export class GfNotificationModule {} diff --git a/apps/client/src/app/core/notification/notification.service.ts b/apps/client/src/app/core/notification/notification.service.ts new file mode 100644 index 000000000..2e7d9de6c --- /dev/null +++ b/apps/client/src/app/core/notification/notification.service.ts @@ -0,0 +1,83 @@ +import { translate } from '@ghostfolio/ui/i18n'; + +import { Injectable } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { isFunction } from 'lodash'; + +import { GfAlertDialogComponent } from './alert-dialog/alert-dialog.component'; +import { GfConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component'; +import { ConfirmationDialogType } from './confirmation-dialog/confirmation-dialog.type'; +import { IAlertParams, IConfirmParams } from './interfaces/interfaces'; + +@Injectable() +export class NotificationService { + private dialogMaxWidth: string; + private dialogWidth: string; + + public constructor(private matDialog: MatDialog) {} + + public alert(aParams: IAlertParams) { + if (!aParams.discardLabel) { + aParams.discardLabel = translate('CLOSE'); + } + + const dialog = this.matDialog.open(GfAlertDialogComponent, { + autoFocus: false, + maxWidth: this.dialogMaxWidth, + width: this.dialogWidth + }); + + dialog.componentInstance.initialize({ + discardLabel: aParams.discardLabel, + message: aParams.message, + title: aParams.title + }); + + return dialog.afterClosed().subscribe((result) => { + if (isFunction(aParams.discardFn)) { + aParams.discardFn(); + } + }); + } + + public confirm(aParams: IConfirmParams) { + if (!aParams.confirmLabel) { + aParams.confirmLabel = translate('YES'); + } + + if (!aParams.discardLabel) { + aParams.discardLabel = translate('CANCEL'); + } + + const dialog = this.matDialog.open(GfConfirmationDialogComponent, { + autoFocus: false, + disableClose: aParams.disableClose || false, + maxWidth: this.dialogMaxWidth, + width: this.dialogWidth + }); + + dialog.componentInstance.initialize({ + confirmLabel: aParams.confirmLabel, + confirmType: aParams.confirmType || ConfirmationDialogType.Primary, + discardLabel: aParams.discardLabel, + message: aParams.message, + title: aParams.title + }); + + return dialog.afterClosed().subscribe((result) => { + if (result === 'confirm' && isFunction(aParams.confirmFn)) { + aParams.confirmFn(); + } else if (result === 'discard' && isFunction(aParams.discardFn)) { + aParams.discardFn(); + } + }); + } + + public setDialogMaxWidth(aDialogMaxWidth: string) { + this.dialogMaxWidth = aDialogMaxWidth; + } + + public setDialogWidth(aDialogWidth: string) { + this.dialogWidth = aDialogWidth; + } +} diff --git a/apps/client/src/styles.scss b/apps/client/src/styles.scss index 2b8644521..1f068da1b 100644 --- a/apps/client/src/styles.scss +++ b/apps/client/src/styles.scss @@ -359,10 +359,6 @@ ngx-skeleton-loader { .cdk-global-overlay-wrapper { justify-content: center !important; } - - .cdk-overlay-pane { - max-width: 95vw !important; - } } .cursor-default { diff --git a/libs/ui/src/lib/i18n.ts b/libs/ui/src/lib/i18n.ts index 2c1fd9273..a98cbd704 100644 --- a/libs/ui/src/lib/i18n.ts +++ b/libs/ui/src/lib/i18n.ts @@ -6,7 +6,9 @@ const locales = { ASSET_CLASS: $localize`Asset Class`, ASSET_SUB_CLASS: $localize`Asset Sub Class`, BUY_AND_SELL_ACTIVITIES_TOOLTIP: $localize`Buy and sell`, + CANCEL: $localize`Cancel`, CORE: $localize`Core`, + CLOSE: $localize`Close`, DATA_IMPORT_AND_EXPORT_TOOLTIP_BASIC: $localize`Switch to Ghostfolio Premium or Ghostfolio Open Source easily`, DATA_IMPORT_AND_EXPORT_TOOLTIP_OSS: $localize`Switch to Ghostfolio Premium easily`, DATA_IMPORT_AND_EXPORT_TOOLTIP_PREMIUM: $localize`Switch to Ghostfolio Open Source or Ghostfolio Basic easily`, @@ -26,6 +28,7 @@ const locales = { TAG: $localize`Tag`, YEAR: $localize`Year`, YEARS: $localize`Years`, + YES: $localize`Yes`, // Activity types BUY: $localize`Buy`, From 18df8cebeba5b50ac56ee054f2dadbe1d4616a56 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:31:17 +0200 Subject: [PATCH 23/23] Feature/upgrade zone.js to version 0.14.10 (#3669) * Upgrade zone.js to version 0.14.10 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 13 +++++++------ package.json | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e600373b0..c60c62904 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Refactored the dark theme CSS selector - Improved the language localization for German (`de`) +- Upgraded `zone.js` from version `0.14.7` to `0.14.10` ### Fixed diff --git a/package-lock.json b/package-lock.json index 49eadc623..38589d68e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.101.0", + "version": "2.103.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.101.0", + "version": "2.103.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { @@ -92,7 +92,7 @@ "twitter-api-v2": "1.14.2", "uuid": "9.0.1", "yahoo-finance2": "2.11.3", - "zone.js": "0.14.7" + "zone.js": "0.14.10" }, "devDependencies": { "@angular-devkit/build-angular": "18.1.1", @@ -34390,9 +34390,10 @@ } }, "node_modules/zone.js": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.7.tgz", - "integrity": "sha512-0w6DGkX2BPuiK/NLf+4A8FLE43QwBfuqz2dVgi/40Rj1WmqUskCqj329O/pwrqFJLG5X8wkeG2RhIAro441xtg==" + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", + "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==", + "license": "MIT" } } } diff --git a/package.json b/package.json index 0e38d32a3..af6bd2a6b 100644 --- a/package.json +++ b/package.json @@ -136,7 +136,7 @@ "twitter-api-v2": "1.14.2", "uuid": "9.0.1", "yahoo-finance2": "2.11.3", - "zone.js": "0.14.7" + "zone.js": "0.14.10" }, "devDependencies": { "@angular-devkit/build-angular": "18.1.1",