From 476b287ef35432148c48d49dca69af1272fab5bd Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 31 Mar 2025 12:03:17 +0200 Subject: [PATCH 01/13] Feature/upgrade @types/lodash to version 4.17.16 (#4489) * Upgrade @types/lodash to version 4.17.16 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 94a912830..b9fa900bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -130,7 +130,7 @@ "@types/cache-manager": "4.0.6", "@types/google-spreadsheet": "3.1.5", "@types/jest": "29.5.13", - "@types/lodash": "4.17.7", + "@types/lodash": "4.17.16", "@types/node": "20.14.10", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.16", @@ -12446,9 +12446,9 @@ } }, "node_modules/@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "version": "4.17.16", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", + "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 4e163d197..bb2861f22 100644 --- a/package.json +++ b/package.json @@ -176,7 +176,7 @@ "@types/cache-manager": "4.0.6", "@types/google-spreadsheet": "3.1.5", "@types/jest": "29.5.13", - "@types/lodash": "4.17.7", + "@types/lodash": "4.17.16", "@types/node": "20.14.10", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.16", From 4df575e34f609b1bc18501cf1d77289ba9f90e93 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:47:57 +0200 Subject: [PATCH 02/13] Feature/migrate ion-icon usage to self-closing tags (#4492) * Migrate to self-closing tags --- .../show-access-token-dialog/show-access-token-dialog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html b/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html index 7e09c8bbe..c37abeadd 100644 --- a/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html +++ b/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -105,7 +105,7 @@ - +
From 29739b27eead19f24957618c772cf70d15f44d36 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 3 Apr 2025 17:20:21 +0200 Subject: [PATCH 03/13] Feature/upgrade ng-extract-i18n-merge to version 2.14.3 (#4500) * Upgrade ng-extract-i18n-merge to version 2.14.3 * Update changelog --- CHANGELOG.md | 6 ++++++ package-lock.json | 8 ++++---- package.json | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2925d3e54..e11ce6ec0 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 + +- Upgraded `ng-extract-i18n-merge` from version `2.14.1` to `2.14.3` + ## 2.149.0 - 2025-03-30 ### Added diff --git a/package-lock.json b/package-lock.json index b9fa900bb..dfc9094dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,7 +73,7 @@ "lodash": "4.17.21", "marked": "15.0.4", "ms": "3.0.0-canary.1", - "ng-extract-i18n-merge": "2.14.1", + "ng-extract-i18n-merge": "2.14.3", "ngx-device-detector": "9.0.0", "ngx-markdown": "19.0.0", "ngx-skeleton-loader": "10.0.0", @@ -26315,9 +26315,9 @@ "license": "MIT" }, "node_modules/ng-extract-i18n-merge": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.14.1.tgz", - "integrity": "sha512-hymcJcjfXJ+0r3EQShaSGmsST0AV3usgJuNMf6l04X+nIsgUPLMrXPBB/hVVVlAOjRcEB7RamKnfmexa5Rq1tw==", + "version": "2.14.3", + "resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.14.3.tgz", + "integrity": "sha512-5zYuS/divhP2Tk0fizk7D8q5TyhwRjyj/DgaEgurrRwkWfIZFDUGc98eTziR3vIMsb9/sgbUSyeA+8LllCkKyA==", "license": "MIT", "dependencies": { "@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0 || ^0.1800.0 || ^0.1900.0", diff --git a/package.json b/package.json index bb2861f22..b8c1a1589 100644 --- a/package.json +++ b/package.json @@ -119,7 +119,7 @@ "lodash": "4.17.21", "marked": "15.0.4", "ms": "3.0.0-canary.1", - "ng-extract-i18n-merge": "2.14.1", + "ng-extract-i18n-merge": "2.14.3", "ngx-device-detector": "9.0.0", "ngx-markdown": "19.0.0", "ngx-skeleton-loader": "10.0.0", From 2894274b92242b9c790efddfc3f4838a16fe6155 Mon Sep 17 00:00:00 2001 From: lechtidu56 Date: Fri, 4 Apr 2025 19:37:19 +0200 Subject: [PATCH 04/13] Feature/improve language localization for fr (#4502) * Improve language localization for fr * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.fr.xlf | 218 ++++++++++++------------ 2 files changed, 110 insertions(+), 109 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e11ce6ec0..3ec9773a4 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 (`fr`) - Upgraded `ng-extract-i18n-merge` from version `2.14.1` to `2.14.3` ## 2.149.0 - 2025-03-30 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 3de2437ca..cf27aaf4a 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -1631,7 +1631,7 @@ Please set the amount of your emergency fund. - Veuillez entrer le montant de votre fonds d’urgence : + Veuillez entrer le montant de votre fonds d’urgence : apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts 64 @@ -1887,7 +1887,7 @@ Please enter your coupon code. - Veuillez entrer votre code promotionnel : + Veuillez entrer votre code promotionnel. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 208 @@ -2851,7 +2851,7 @@ Hello, has shared a Portfolio with you! - Bonjour, a partagé un Portefeuille avec vous ! + Bonjour, a partagé un Portefeuille avec vous ! apps/client/src/app/pages/public/public-page.html 4 @@ -7052,7 +7052,7 @@ Copy link to clipboard - Copy link to clipboard + Copier le lien dans le presse-papiers apps/client/src/app/components/access-table/access-table.component.html 70 @@ -7060,7 +7060,7 @@ Portfolio Snapshot - Portfolio Snapshot + Résumé du portefeuille apps/client/src/app/components/admin-jobs/admin-jobs.html 39 @@ -7068,7 +7068,7 @@ Change with currency effect Change - Change with currency effect Change + Variation avec taux de change appliqué Variation apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 50 @@ -7076,7 +7076,7 @@ Performance with currency effect Performance - Performance with currency effect Performance + Performance avec taux de change appliqué Performance apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 69 @@ -7084,7 +7084,7 @@ Threshold Min - Threshold Min + Seuil Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html 54 @@ -7092,7 +7092,7 @@ Threshold Max - Threshold Max + Seuil Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html 92 @@ -7100,7 +7100,7 @@ Close - Close + Fermer apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html 129 @@ -7108,7 +7108,7 @@ Customize - Customize + Personnaliser apps/client/src/app/components/rule/rule.component.html 67 @@ -7116,7 +7116,7 @@ No auto-renewal. - No auto-renewal. + Pas de renouvellement automatique. apps/client/src/app/components/user-account-membership/user-account-membership.html 74 @@ -7124,7 +7124,7 @@ Today - Today + Aujourd’hui apps/client/src/app/pages/public/public-page.html 24 @@ -7132,7 +7132,7 @@ This year - This year + Cette année apps/client/src/app/pages/public/public-page.html 42 @@ -7140,7 +7140,7 @@ From the beginning - From the beginning + Depuis le début apps/client/src/app/pages/public/public-page.html 60 @@ -7148,7 +7148,7 @@ Oops! Invalid currency. - Oops! Invalid currency. + Oups! Devise non valide. apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html 49 @@ -7156,7 +7156,7 @@ This page has been archived. - This page has been archived. + Cette page a été archivée. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 14 @@ -7164,7 +7164,7 @@ is Open Source Software - is Open Source Software + est un logiciel open source apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 139 @@ -7172,7 +7172,7 @@ is not Open Source Software - is not Open Source Software + n’est pas un logiciel open source apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 146 @@ -7180,7 +7180,7 @@ is Open Source Software - is Open Source Software + est un logiciel open source apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 156 @@ -7188,7 +7188,7 @@ is not Open Source Software - is not Open Source Software + n’est pas un logiciel open source apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 163 @@ -7196,7 +7196,7 @@ can be self-hosted - can be self-hosted + peut être auto-hébergé apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 178 @@ -7204,7 +7204,7 @@ cannot be self-hosted - cannot be self-hosted + ne peut pas être auto-hébergé apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 185 @@ -7212,7 +7212,7 @@ can be self-hosted - can be self-hosted + peut être auto-hébergé apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 195 @@ -7220,7 +7220,7 @@ cannot be self-hosted - cannot be self-hosted + ne peut pas être auto-hébergé apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 202 @@ -7228,7 +7228,7 @@ can be used anonymously - can be used anonymously + peut être utilisé de manière anonyme apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 217 @@ -7236,7 +7236,7 @@ cannot be used anonymously - cannot be used anonymously + ne peut pas être utilisé de manière anonyme apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 224 @@ -7244,7 +7244,7 @@ can be used anonymously - can be used anonymously + peut être utilisé de manière anonyme apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 234 @@ -7252,7 +7252,7 @@ cannot be used anonymously - cannot be used anonymously + ne peut pas être utilisé de manière anonyme apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 241 @@ -7260,7 +7260,7 @@ offers a free plan - offers a free plan + propose un plan gratuit apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 256 @@ -7268,7 +7268,7 @@ does not offer a free plan - does not offer a free plan + ne propose pas de plan gratuit apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 263 @@ -7276,7 +7276,7 @@ offers a free plan - offers a free plan + propose un plan gratuit apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 273 @@ -7284,7 +7284,7 @@ does not offer a free plan - does not offer a free plan + ne propose pas de plan gratuit apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 280 @@ -7292,7 +7292,7 @@ Oops! Could not find any assets. - Oops! Could not find any assets. + Oups! Aucun actif n’a été trouvé. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html 40 @@ -7300,7 +7300,7 @@ Data Providers - Data Providers + Fournisseurs de données apps/client/src/app/components/admin-settings/admin-settings.component.html 4 @@ -7308,7 +7308,7 @@ Set API key - Set API key + Définir clé API apps/client/src/app/components/admin-settings/admin-settings.component.html 70 @@ -7316,7 +7316,7 @@ Want to stay updated? Click below to get notified as soon as it’s available. - Want to stay updated? Click below to get notified as soon as it’s available. + Vous souhaitez rester informé ? Cliquez ci-dessous pour être informé dès qu'il sera disponible. apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html 23 @@ -7324,7 +7324,7 @@ Get access to 80’000+ tickers from over 50 exchanges - Get access to 80’000+ tickers from over 50 exchanges + Accédez à plus de 80 000 symboles financiers issus de plus de 50 marchés boursiers. libs/ui/src/lib/i18n.ts 24 @@ -7332,7 +7332,7 @@ Ukraine - Ukraine + Ukraine libs/ui/src/lib/i18n.ts 95 @@ -7340,7 +7340,7 @@ Skip - Skip + Passer apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 83 @@ -7348,7 +7348,7 @@ Join now - Join now + Rejoindre maintenant apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 93 @@ -7356,7 +7356,7 @@ Glossary - Glossary + Glossaire apps/client/src/app/pages/resources/glossary/resources-glossary-routing.module.ts 10 @@ -7368,7 +7368,7 @@ Guides - Guides + Guides apps/client/src/app/pages/resources/guides/resources-guides-routing.module.ts 10 @@ -7380,7 +7380,7 @@ guides - guides + guides snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -7393,7 +7393,7 @@ glossary - glossary + glossaire snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -7406,7 +7406,7 @@ Threshold range - Threshold range + Plage de seuil apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html 9 @@ -7414,7 +7414,7 @@ Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy. - Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy. + Ghostfolio X-ray utilise l’analyse statique pour détecter d'éventuels problèmes et risques dans votre portefeuille. Ajustez les règles ci-dessous et définissez des seuils personnalisés afin de les adapter à votre stratégie d'investissement. apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 5 @@ -7422,7 +7422,7 @@ Economic Market Cluster Risks - Economic Market Cluster Risks + Risques liés aux zones économiques du marché apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 165 @@ -7430,7 +7430,7 @@ of - of + sur apps/client/src/app/components/admin-settings/admin-settings.component.html 42 @@ -7438,7 +7438,7 @@ daily requests - daily requests + requêtes journalières apps/client/src/app/components/admin-settings/admin-settings.component.html 44 @@ -7446,7 +7446,7 @@ Remove API key - Remove API key + Retirer la clé API apps/client/src/app/components/admin-settings/admin-settings.component.html 58 @@ -7454,7 +7454,7 @@ Do you really want to delete the API key? - Do you really want to delete the API key? + Voulez-vous vraiment supprimer la clé API? apps/client/src/app/components/admin-settings/admin-settings.component.ts 93 @@ -7462,7 +7462,7 @@ Please enter your Ghostfolio API key: - Please enter your Ghostfolio API key: + Veuillez saisir votre clé API Ghostfolio : apps/client/src/app/pages/api/api-page.component.ts 40 @@ -7470,7 +7470,7 @@ Notify me - Notify me + Me prévenir apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html 32 @@ -7478,7 +7478,7 @@ I have an API key - I have an API key + J’ai une clé API apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html 43 @@ -7486,7 +7486,7 @@ API Requests Today - API Requests Today + Requêtes API aujourd’hui apps/client/src/app/components/admin-users/admin-users.html 178 @@ -7494,7 +7494,7 @@ Could not generate an API key - Could not generate an API key + Impossible de générer une clé API apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 134 @@ -7502,7 +7502,7 @@ Set this API key in your self-hosted environment: - Set this API key in your self-hosted environment: + Définissez cette clé API dans votre environnement auto-hébergé : apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 149 @@ -7510,7 +7510,7 @@ Ghostfolio Premium Data Provider API Key - Ghostfolio Premium Data Provider API Key + Clé API du fournisseur de données Ghostfolio Premium apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 152 @@ -7518,7 +7518,7 @@ Do you really want to generate a new API key? - Do you really want to generate a new API key? + Voulez-vous vraiment générer une nouvelle clé API ? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 157 @@ -7526,7 +7526,7 @@ Tag - Tag + Étiquette libs/ui/src/lib/assistant/assistant.html 155 @@ -7534,7 +7534,7 @@ API Key - API Key + Clé API libs/ui/src/lib/membership-card/membership-card.component.html 18 @@ -7542,7 +7542,7 @@ Generate Ghostfolio Premium Data Provider API key for self-hosted environments... - Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Générer la clé API du fournisseur de données Ghostfolio Premium pour les environnements auto-hébergés... libs/ui/src/lib/membership-card/membership-card.component.html 26 @@ -7550,7 +7550,7 @@ out of - out of + sur apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 56 @@ -7558,7 +7558,7 @@ rules align with your portfolio. - rules align with your portfolio. + règles sont en accord avec votre portefeuille. apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 58 @@ -7566,7 +7566,7 @@ Save - Save + Sauvegarder apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts 62 @@ -7574,7 +7574,7 @@ Asset Class Cluster Risks - Asset Class Cluster Risks + Risques liés aux regroupements de classes d’actifs apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 117 @@ -7582,7 +7582,7 @@ Me - Me + Moi apps/client/src/app/components/user-account-access/user-account-access.component.ts 135 @@ -7590,7 +7590,7 @@ Received Access - Received Access + Accès reçu apps/client/src/app/components/user-account-access/user-account-access.html 3 @@ -7598,7 +7598,7 @@ Please enter your Ghostfolio API key. - Please enter your Ghostfolio API key. + Veuillez saisir votre clé API Ghostfolio. apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 57 @@ -7606,7 +7606,7 @@ AI prompt has been copied to the clipboard - AI prompt has been copied to the clipboard + Le prompt IA a été copié dans le presse-papiers apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 173 @@ -7614,7 +7614,7 @@ Link has been copied to the clipboard - Link has been copied to the clipboard + Le lien a été copié dans le presse-papiers apps/client/src/app/components/access-table/access-table.component.ts 65 @@ -7622,7 +7622,7 @@ Early Access - Early Access + Accès anticipé apps/client/src/app/components/admin-settings/admin-settings.component.html 16 @@ -7630,7 +7630,7 @@ Regional Market Cluster Risks - Regional Market Cluster Risks + Risques liés aux regroupements de marchés régionaux apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 189 @@ -7638,7 +7638,7 @@ Lazy - Lazy + Paresseux apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 136 @@ -7646,7 +7646,7 @@ Instant - Instant + Instantané apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 140 @@ -7654,7 +7654,7 @@ Default Market Price - Default Market Price + Prix du marché par défaut apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 368 @@ -7662,7 +7662,7 @@ Mode - Mode + Mode apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 405 @@ -7670,7 +7670,7 @@ Selector - Selector + Selecteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 421 @@ -7678,7 +7678,7 @@ HTTP Request Headers - HTTP Request Headers + En-têtes de requête HTTP apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 381 @@ -7686,7 +7686,7 @@ end of day - end of day + fin de journée apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 136 @@ -7694,7 +7694,7 @@ real-time - real-time + temps réel apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 140 @@ -7702,7 +7702,7 @@ Open Duck.ai - Open Duck.ai + Ouvrir Duck.ai apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 174 @@ -7710,7 +7710,7 @@ Create - Create + Créer libs/ui/src/lib/tags-selector/tags-selector.component.html 50 @@ -7718,7 +7718,7 @@ Market Data - Market Data + Données de Marché apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 374 @@ -7726,7 +7726,7 @@ Change - Change + Variation libs/ui/src/lib/treemap-chart/treemap-chart.component.ts 365 @@ -7734,7 +7734,7 @@ Performance - Performance + Performance libs/ui/src/lib/treemap-chart/treemap-chart.component.ts 365 @@ -7746,7 +7746,7 @@ Copy portfolio data to clipboard for AI prompt - Copy portfolio data to clipboard for AI prompt + Copier les données du portefeuille dans le presse-papiers pour le prompt IA apps/client/src/app/pages/portfolio/analysis/analysis-page.html 42 @@ -7754,7 +7754,7 @@ Copy AI prompt to clipboard for analysis - Copy AI prompt to clipboard for analysis + Copier le prompt IA dans le presse-papiers pour analyse apps/client/src/app/pages/portfolio/analysis/analysis-page.html 67 @@ -7762,7 +7762,7 @@ Armenia - Armenia + Arménie libs/ui/src/lib/i18n.ts 73 @@ -7770,7 +7770,7 @@ British Virgin Islands - British Virgin Islands + Îles Vierges britanniques libs/ui/src/lib/i18n.ts 77 @@ -7778,7 +7778,7 @@ Singapore - Singapore + Singapour libs/ui/src/lib/i18n.ts 91 @@ -7786,7 +7786,7 @@ Terms and Conditions - Terms and Conditions + Conditions générales apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 15 @@ -7794,7 +7794,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. - Please keep your security token safe. If you lose it, you will not be able to recover your account. + Veuillez garder votre jeton de sécurité en lieu sûr. Si vous le perdez, vous ne pourrez pas récupérer votre compte. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 18 @@ -7802,7 +7802,7 @@ I understand that if I lose my security token, I cannot recover my account - I understand that if I lose my security token, I cannot recover my account + Je comprends que si je perds mon jeton de sécurité, je ne pourrai pas récupérer mon compte apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 28 @@ -7810,7 +7810,7 @@ Continue - Continue + Continuer apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 57 @@ -7818,7 +7818,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. - Here is your security token. It is only visible once, please store and keep it in a safe place. + Voici votre jeton de sécurité. Il n’est visible qu’une seule fois, veuillez le conserver en lieu sûr. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 67 @@ -7826,7 +7826,7 @@ Security token - Security token + Jeton de sécurité apps/client/src/app/components/admin-users/admin-users.component.ts 163 @@ -7834,7 +7834,7 @@ Do you really want to generate a new security token for this user? - Do you really want to generate a new security token for this user? + Voulez-vous vraiment générer un nouveau jeton de sécurité pour cet utilisateur ? apps/client/src/app/components/admin-users/admin-users.component.ts 168 @@ -7842,7 +7842,7 @@ Generate Security Token - Generate Security Token + Générer un jeton de sécurité apps/client/src/app/components/admin-users/admin-users.html 249 @@ -7850,7 +7850,7 @@ United Kingdom - United Kingdom + Royaume-Uni libs/ui/src/lib/i18n.ts 96 @@ -7858,7 +7858,7 @@ Terms of Service - Terms of Service + Conditions d’utilisation apps/client/src/app/app.component.html 112 @@ -7866,7 +7866,7 @@ terms-of-service - terms-of-service + conditions-d-utilisation snake-case apps/client/src/app/app.component.ts @@ -7887,7 +7887,7 @@ Terms of Service - Terms of Service + Conditions d’utilisation apps/client/src/app/pages/about/about-page.component.ts 71 @@ -7899,7 +7899,7 @@ Terms of Service - Terms of Service + Conditions d’utilisation apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.html 4 @@ -7907,7 +7907,7 @@ and I agree to the Terms of Service. - and I agree to the Terms of Service. + et j’accepte les conditions d’utilisation. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 34 @@ -7915,7 +7915,7 @@ () is already in use. - () is already in use. + () est déjà utilisé. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 458 @@ -7923,7 +7923,7 @@ An error occurred while updating to (). - An error occurred while updating to (). + Une erreur s’est produite lors de la mise à jour vers (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 466 @@ -7931,7 +7931,7 @@ Apply - Apply + Appliquer apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 122 From f1d292330a3584a04bca2f532a94460facc4a1e3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 4 Apr 2025 21:51:39 +0200 Subject: [PATCH 05/13] Feature/update locales (#4506) * Update locales * Update translations --------- Co-authored-by: github-actions[bot] Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> --- apps/client/src/locales/messages.fr.xlf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index cf27aaf4a..8550ff8e9 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -7316,7 +7316,7 @@ Want to stay updated? Click below to get notified as soon as it’s available. - Vous souhaitez rester informé ? Cliquez ci-dessous pour être informé dès qu'il sera disponible. + Vous souhaitez rester informé ? Cliquez ci-dessous pour être informé dès qu’il sera disponible. apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html 23 @@ -7414,7 +7414,7 @@ Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy. - Ghostfolio X-ray utilise l’analyse statique pour détecter d'éventuels problèmes et risques dans votre portefeuille. Ajustez les règles ci-dessous et définissez des seuils personnalisés afin de les adapter à votre stratégie d'investissement. + Ghostfolio X-ray utilise l’analyse statique pour détecter d’éventuels problèmes et risques dans votre portefeuille. Ajustez les règles ci-dessous et définissez des seuils personnalisés afin de les adapter à votre stratégie d’investissement. apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 5 From 6ae22d13ec7fa5d54742df2b3c40fe7b4d2ca4c8 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 4 Apr 2025 21:53:35 +0200 Subject: [PATCH 06/13] Feature/extend API keys for Ghostfolio data provider (#4501) * Extend API keys for Ghostfolio data provider --- .../user-account-membership.html | 5 ++++- .../src/app/pages/pricing/pricing-page.html | 19 ++++++++++++++++++- .../membership-card.component.html | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.html b/apps/client/src/app/components/user-account-membership/user-account-membership.html index 64dd2ce8f..dafbfa9c5 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.html +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.html @@ -4,7 +4,10 @@
diff --git a/apps/client/src/app/pages/pricing/pricing-page.html b/apps/client/src/app/pages/pricing/pricing-page.html index 3124d99b1..b165d5c23 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.html +++ b/apps/client/src/app/pages/pricing/pricing-page.html @@ -240,7 +240,12 @@ -
  • +
  • Professional Data Provider
  • + @if (user?.settings?.isExperimentalFeatures) { +
  • +
  • + }
  • @if (hasPermissionToCreateApiKey) { -
    +
    API Key
    * * * * * * * * *
    From 5754f0181993a526a0e0f165230ef7f671e168c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Szyma=C5=84ski?= Date: Fri, 4 Apr 2025 21:10:26 +0100 Subject: [PATCH 07/13] Feature/improve check for duplicates in preview step of activities import (comments) (#4498) * Improve check for duplicates in preview step of activities import (comments) * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/import/import.service.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ec9773a4..3313e43c6 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 check for duplicates in the preview step of the activities import (allow different comments) - Improved the language localization for German (`fr`) - Upgraded `ng-extract-i18n-merge` from version `2.14.1` to `2.14.3` diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 729049fd1..9a4fff5ed 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -519,6 +519,7 @@ export class ImportService { const isDuplicate = existingActivities.some((activity) => { return ( activity.accountId === accountId && + activity.comment === comment && activity.SymbolProfile.currency === currency && activity.SymbolProfile.dataSource === dataSource && isSameSecond(activity.date, date) && From b6fc5566d4010c43a24ea0d05162015775bab402 Mon Sep 17 00:00:00 2001 From: Akd11111 <70412728+Akd11111@users.noreply.github.com> Date: Fri, 4 Apr 2025 22:11:08 +0200 Subject: [PATCH 08/13] Feature/update messages.pl.xlf (#4499) * Update messages.pl.xlf * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.pl.xlf | 66 ++++++++++++------------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3313e43c6..46bd81f48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the check for duplicates in the preview step of the activities import (allow different comments) - Improved the language localization for German (`fr`) +- Improved the language localization for Polish (`pl`) - Upgraded `ng-extract-i18n-merge` from version `2.14.1` to `2.14.3` ## 2.149.0 - 2025-03-30 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index a4106e3ad..7e40171d3 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -2132,7 +2132,7 @@ Performance - Wydajność + Wyniki apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html 6 @@ -7582,7 +7582,7 @@ Me - Me + Ja apps/client/src/app/components/user-account-access/user-account-access.component.ts 135 @@ -7590,7 +7590,7 @@ Received Access - Received Access + Otrzymany dostęp apps/client/src/app/components/user-account-access/user-account-access.html 3 @@ -7598,7 +7598,7 @@ Please enter your Ghostfolio API key. - Please enter your Ghostfolio API key. + Wprowadź swój klucz API Ghostfolio. apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 57 @@ -7606,7 +7606,7 @@ AI prompt has been copied to the clipboard - AI prompt has been copied to the clipboard + Prompt AI został skopiowany do schowka apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 173 @@ -7614,7 +7614,7 @@ Link has been copied to the clipboard - Link has been copied to the clipboard + Link został skopiowany do schowka apps/client/src/app/components/access-table/access-table.component.ts 65 @@ -7622,7 +7622,7 @@ Early Access - Early Access + Wczesny dostęp apps/client/src/app/components/admin-settings/admin-settings.component.html 16 @@ -7702,7 +7702,7 @@ Open Duck.ai - Open Duck.ai + Otwórz Duck.ai apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 174 @@ -7710,7 +7710,7 @@ Create - Create + Stwórz libs/ui/src/lib/tags-selector/tags-selector.component.html 50 @@ -7726,7 +7726,7 @@ Change - Change + Zmiana libs/ui/src/lib/treemap-chart/treemap-chart.component.ts 365 @@ -7734,7 +7734,7 @@ Performance - Performance + Wydajność libs/ui/src/lib/treemap-chart/treemap-chart.component.ts 365 @@ -7746,7 +7746,7 @@ Copy portfolio data to clipboard for AI prompt - Copy portfolio data to clipboard for AI prompt + Skopiuj dane portfela do schowka dla prompta AI apps/client/src/app/pages/portfolio/analysis/analysis-page.html 42 @@ -7754,7 +7754,7 @@ Copy AI prompt to clipboard for analysis - Copy AI prompt to clipboard for analysis + Skopiuj prompt AI do schowka w celu analizy apps/client/src/app/pages/portfolio/analysis/analysis-page.html 67 @@ -7762,7 +7762,7 @@ Armenia - Armenia + Armenia libs/ui/src/lib/i18n.ts 73 @@ -7770,7 +7770,7 @@ British Virgin Islands - British Virgin Islands + Brytyjskie Wyspy Dziewicze libs/ui/src/lib/i18n.ts 77 @@ -7778,7 +7778,7 @@ Singapore - Singapore + Singapur libs/ui/src/lib/i18n.ts 91 @@ -7786,7 +7786,7 @@ Terms and Conditions - Terms and Conditions + Zasady i Warunki użytkownia apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 15 @@ -7794,7 +7794,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. - Please keep your security token safe. If you lose it, you will not be able to recover your account. + Przechowuj swój Token Bezpieczeństwa w bezpiecznym miejscu. Jeśli go zgubisz, nie będziesz mógł odzyskać swojego konta. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 18 @@ -7802,7 +7802,7 @@ I understand that if I lose my security token, I cannot recover my account - I understand that if I lose my security token, I cannot recover my account + Rozumiem, że jeśli utracę token zabezpieczający, nie będę mógł odzyskać konta apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 28 @@ -7810,7 +7810,7 @@ Continue - Continue + Kontynuuj apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 57 @@ -7818,7 +7818,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. - Here is your security token. It is only visible once, please store and keep it in a safe place. + To twój Token Bezpieczeństwa. JEST ON WIDOCZNY TYLKO RAZ! Przechowuj go w bezpiecznym miejscu. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 67 @@ -7826,7 +7826,7 @@ Security token - Security token + Token bezpieczeństwa apps/client/src/app/components/admin-users/admin-users.component.ts 163 @@ -7834,7 +7834,7 @@ Do you really want to generate a new security token for this user? - Do you really want to generate a new security token for this user? + Czy napewno chcesz wygenerować nowy token bezpieczeństwa dla tego użytkownika? apps/client/src/app/components/admin-users/admin-users.component.ts 168 @@ -7842,7 +7842,7 @@ Generate Security Token - Generate Security Token + Generowanie Tokena Zabezpieczającego apps/client/src/app/components/admin-users/admin-users.html 249 @@ -7850,7 +7850,7 @@ United Kingdom - United Kingdom + Wielka Brytania libs/ui/src/lib/i18n.ts 96 @@ -7858,7 +7858,7 @@ Terms of Service - Terms of Service + Warunki świadczenia usług apps/client/src/app/app.component.html 112 @@ -7866,7 +7866,7 @@ terms-of-service - terms-of-service + warunki-świadczenia-usług snake-case apps/client/src/app/app.component.ts @@ -7887,7 +7887,7 @@ Terms of Service - Terms of Service + Warunki świadczenia usług apps/client/src/app/pages/about/about-page.component.ts 71 @@ -7899,7 +7899,7 @@ Terms of Service - Terms of Service + Warunki świadczenia usług apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.html 4 @@ -7907,7 +7907,7 @@ and I agree to the Terms of Service. - and I agree to the Terms of Service. + i zgadzam się na Warunki świadczenia usług. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 34 @@ -7915,7 +7915,7 @@ () is already in use. - () is already in use. + () jest już w użyciu. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 458 @@ -7923,7 +7923,7 @@ An error occurred while updating to (). - An error occurred while updating to (). + Wystąpił błąd podczas aktualizacji do (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 466 @@ -7931,7 +7931,7 @@ Apply - Apply + Zatwierdź apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 122 From d3ecbc0a96459aa337a5e67600010bf81a5b72a1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 5 Apr 2025 10:36:50 +0200 Subject: [PATCH 09/13] Feature/update locales (#4507) * Update locales * Update translations * Update changelog --------- Co-authored-by: github-actions[bot] Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> --- CHANGELOG.md | 3 +- apps/client/src/locales/messages.ca.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.de.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.es.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.fr.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.it.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.nl.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.pl.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.pt.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.tr.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.uk.xlf | 40 +++++++++++++++---------- apps/client/src/locales/messages.xlf | 39 ++++++++++++++---------- apps/client/src/locales/messages.zh.xlf | 40 +++++++++++++++---------- 13 files changed, 289 insertions(+), 193 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46bd81f48..2b8581363 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the check for duplicates in the preview step of the activities import (allow different comments) -- Improved the language localization for German (`fr`) +- Improved the language localization for Français (`fr`) +- Improved the language localization for German (`de`) - Improved the language localization for Polish (`pl`) - Upgraded `ng-extract-i18n-merge` from version `2.14.1` to `2.14.3` diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index c08a8603e..40a656304 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -2403,11 +2403,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -2419,11 +2419,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -3151,7 +3151,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -3167,7 +3167,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -3335,11 +3335,11 @@ per year apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -3347,7 +3347,7 @@ Try Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -3355,7 +3355,7 @@ Redeem Coupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -4203,7 +4203,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -5407,7 +5407,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -5423,7 +5423,7 @@ Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -5431,7 +5431,7 @@ One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -5439,7 +5439,7 @@ It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -7119,7 +7119,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7937,6 +7937,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index d45121a83..bf5996f48 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -1698,11 +1698,11 @@ pro Jahr apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -1710,7 +1710,7 @@ Premium ausprobieren apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -1718,7 +1718,7 @@ Gutschein einlösen apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3562,7 +3562,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -3586,11 +3586,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3686,7 +3686,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -3702,7 +3702,7 @@ Einmalige Zahlung, keine automatische Erneuerung. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -3718,7 +3718,7 @@ Es ist kostenlos. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -3802,7 +3802,7 @@ E-Mail und Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -3862,7 +3862,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -3882,11 +3882,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -4918,7 +4918,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -7119,7 +7119,7 @@ Keine automatische Erneuerung. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7937,6 +7937,14 @@ 122 + + with API access for + inklusive API-Zugriff für + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 216122b6e..68d80d2f6 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -1699,11 +1699,11 @@ por año apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -1711,7 +1711,7 @@ Prueba Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -1719,7 +1719,7 @@ Canjea el cupón apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3563,7 +3563,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -3587,11 +3587,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3687,7 +3687,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -3703,7 +3703,7 @@ Pago único, sin renovación automática. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -3719,7 +3719,7 @@ Es gratis. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -3803,7 +3803,7 @@ Soporte a Traves de Email y Chat apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -3863,7 +3863,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -3883,11 +3883,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -4919,7 +4919,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -7120,7 +7120,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7938,6 +7938,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 8550ff8e9..0ff76d454 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -1954,11 +1954,11 @@ par an apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -1966,7 +1966,7 @@ Essayer Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -1974,7 +1974,7 @@ Utiliser un Code Promotionnel apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3562,7 +3562,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -3586,11 +3586,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3686,7 +3686,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -3702,7 +3702,7 @@ Paiement unique, sans auto-renouvellement. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -3718,7 +3718,7 @@ C’est gratuit. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -3802,7 +3802,7 @@ Support par E-mail et Tchat apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -3862,7 +3862,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -3882,11 +3882,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -4918,7 +4918,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -7119,7 +7119,7 @@ Pas de renouvellement automatique. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7937,6 +7937,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index d77e5c5aa..9ba941503 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -1699,11 +1699,11 @@ per anno apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -1711,7 +1711,7 @@ Prova Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -1719,7 +1719,7 @@ Riscatta il buono apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3563,7 +3563,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -3587,11 +3587,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3687,7 +3687,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -3703,7 +3703,7 @@ Pagamento una tantum, senza rinnovo automatico. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -3719,7 +3719,7 @@ È gratuito. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -3803,7 +3803,7 @@ Supporto via email e chat apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -3863,7 +3863,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -3883,11 +3883,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -4919,7 +4919,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -7120,7 +7120,7 @@ No rinnovo automatico. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7938,6 +7938,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 8534f1123..fc3f8ea13 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -1698,11 +1698,11 @@ per jaar apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -1710,7 +1710,7 @@ Probeer Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -1718,7 +1718,7 @@ Coupon inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3562,7 +3562,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -3586,11 +3586,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3686,7 +3686,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -3702,7 +3702,7 @@ Eenmalige betaling, geen automatische verlenging. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -3718,7 +3718,7 @@ Het is gratis. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -3802,7 +3802,7 @@ Ondersteuning via e-mail en chat apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -3862,7 +3862,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -3882,11 +3882,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -4918,7 +4918,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -7119,7 +7119,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7937,6 +7937,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 7e40171d3..2e903a21c 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -2891,7 +2891,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -2907,7 +2907,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -2939,11 +2939,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3067,11 +3067,11 @@ rocznie apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -3079,7 +3079,7 @@ Wypróbuj Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -3087,7 +3087,7 @@ Wykorzystaj kupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3827,7 +3827,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -4963,7 +4963,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -4979,7 +4979,7 @@ Wsparcie przez E-mail i Czat apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -4991,11 +4991,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -5003,7 +5003,7 @@ Płatność jednorazowa, bez automatycznego odnawiania. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -5019,7 +5019,7 @@ Jest bezpłatny. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -7119,7 +7119,7 @@ Bez automatycznego odnawiania. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7937,6 +7937,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 1655d1cd9..dfe078701 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -1938,11 +1938,11 @@ por ano apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -1950,7 +1950,7 @@ Experimentar Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -1958,7 +1958,7 @@ Resgatar Cupão apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3562,7 +3562,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -3586,11 +3586,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3686,7 +3686,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -3702,7 +3702,7 @@ Pagamento único, sem renovação automática. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -3718,7 +3718,7 @@ É gratuito. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -3802,7 +3802,7 @@ Suporte por Email e Chat apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -3862,7 +3862,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -3882,11 +3882,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -4918,7 +4918,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -7119,7 +7119,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7937,6 +7937,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 19bded869..a4f4b9cae 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -2731,7 +2731,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -2747,7 +2747,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -2779,11 +2779,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3359,7 +3359,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -4427,7 +4427,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -4443,7 +4443,7 @@ E-posta ve Sohbet Desteği apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -4455,11 +4455,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -4467,7 +4467,7 @@ Tek seferlik ödeme, otomatik yenileme yok. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -4483,7 +4483,7 @@ Ücretsiz. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -4983,11 +4983,11 @@ yıllık apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -4995,7 +4995,7 @@ Premium’u Deneyin apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -5003,7 +5003,7 @@ Kupon Kullan apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -7119,7 +7119,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7937,6 +7937,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 86c916c15..e21af24b0 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -2535,11 +2535,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -2551,11 +2551,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -3311,7 +3311,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -3327,7 +3327,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -3575,11 +3575,11 @@ на рік apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -3587,7 +3587,7 @@ Спробуйте Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -3595,7 +3595,7 @@ Обміняти купон apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3603,7 +3603,7 @@ Без автоматичного поновлення. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -4443,7 +4443,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -5731,7 +5731,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -5747,7 +5747,7 @@ Підтримка електронної пошти та чату apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -5755,7 +5755,7 @@ Разова оплата, без автоматичного поновлення. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -5763,7 +5763,7 @@ Це безкоштовно. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -7937,6 +7937,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index b30e143da..cd3ba2015 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -2700,7 +2700,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -2715,7 +2715,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -2744,11 +2744,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -2859,25 +2859,25 @@ per year apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 Try Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 Redeem Coupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3542,7 +3542,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -4555,7 +4555,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -4569,7 +4569,7 @@ Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -4580,18 +4580,18 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -4605,7 +4605,7 @@ It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -6456,7 +6456,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7177,6 +7177,13 @@ 122 + + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index b7012faea..ee3fbb5fc 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -2900,7 +2900,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 245 + 250 @@ -2916,7 +2916,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 257 + 274 @@ -2948,11 +2948,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 + 21 apps/client/src/app/pages/pricing/pricing-page.html - 293 + 310 @@ -3076,11 +3076,11 @@ 每年 apps/client/src/app/components/user-account-membership/user-account-membership.html - 36 + 39 apps/client/src/app/pages/pricing/pricing-page.html - 279 + 296 @@ -3088,7 +3088,7 @@ 尝试高级版 apps/client/src/app/components/user-account-membership/user-account-membership.html - 53 + 56 @@ -3096,7 +3096,7 @@ 兑换优惠券 apps/client/src/app/components/user-account-membership/user-account-membership.html - 67 + 70 @@ -3836,7 +3836,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 329 + 346 @@ -4972,7 +4972,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 266 + 283 @@ -4988,7 +4988,7 @@ 电子邮件和聊天支持 apps/client/src/app/pages/pricing/pricing-page.html - 262 + 279 @@ -5000,11 +5000,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 24 + 27 apps/client/src/app/pages/pricing/pricing-page.html - 299 + 316 @@ -5012,7 +5012,7 @@ 一次性付款,无自动续订。 apps/client/src/app/pages/pricing/pricing-page.html - 303 + 320 @@ -5028,7 +5028,7 @@ 免费。 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 349 @@ -7120,7 +7120,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 74 + 77 @@ -7938,6 +7938,14 @@ 122 + + with API access for + with API access for + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + From 57748a18effd1f6909627467ef4c97890557b1db Mon Sep 17 00:00:00 2001 From: Tobias Kugel <78074722+tobikugel@users.noreply.github.com> Date: Sat, 5 Apr 2025 05:52:31 -0300 Subject: [PATCH 10/13] Feature/add data gathering toggle to asset profile details dialog (#4497) * Add data gathering toggle to asset profile details dialog * Update changelog --- CHANGELOG.md | 4 ++++ apps/api/src/app/admin/admin.service.ts | 2 ++ .../src/app/admin/update-asset-profile.dto.ts | 5 +++++ apps/api/src/app/import/import.service.ts | 1 + apps/api/src/app/order/create-order.dto.ts | 6 +++--- .../portfolio-calculator-test-utils.ts | 1 + .../asset-profile-dialog.component.ts | 18 ++++++++++++++++++ .../asset-profile-dialog.html | 12 +++++++++++- apps/client/src/app/services/admin.service.ts | 2 ++ .../enhanced-symbol-profile.interface.ts | 1 + 10 files changed, 48 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b8581363..bb2809b7e 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 + +- Added support to toggle the data gathering for individual asset profiles in the asset profile details dialog of the admin control panel + ### Changed - Improved the check for duplicates in the preview step of the activities import (allow different comments) diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index d73e2b878..6a8906c17 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -480,6 +480,7 @@ export class AdminService { currency, dataSource: newDataSource, holdings, + isActive, name, scraperConfiguration, sectors, @@ -557,6 +558,7 @@ export class AdminService { currency, dataSource, holdings, + isActive, scraperConfiguration, sectors, symbol, diff --git a/apps/api/src/app/admin/update-asset-profile.dto.ts b/apps/api/src/app/admin/update-asset-profile.dto.ts index b28fe3cdc..45923410a 100644 --- a/apps/api/src/app/admin/update-asset-profile.dto.ts +++ b/apps/api/src/app/admin/update-asset-profile.dto.ts @@ -3,6 +3,7 @@ import { IsCurrencyCode } from '@ghostfolio/api/validators/is-currency-code'; import { AssetClass, AssetSubClass, DataSource, Prisma } from '@prisma/client'; import { IsArray, + IsBoolean, IsEnum, IsObject, IsOptional, @@ -35,6 +36,10 @@ export class UpdateAssetProfileDto { @IsOptional() dataSource?: DataSource; + @IsBoolean() + @IsOptional() + isActive?: boolean; + @IsOptional() @IsString() name?: string; diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 9a4fff5ed..c72420417 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -555,6 +555,7 @@ export class ImportService { createdAt: undefined, holdings: undefined, id: undefined, + isActive: true, sectors: undefined, updatedAt: undefined } diff --git a/apps/api/src/app/order/create-order.dto.ts b/apps/api/src/app/order/create-order.dto.ts index 6f52e7032..f40e65ba1 100644 --- a/apps/api/src/app/order/create-order.dto.ts +++ b/apps/api/src/app/order/create-order.dto.ts @@ -27,12 +27,12 @@ export class CreateOrderDto { @IsString() accountId?: string; - @IsOptional() @IsEnum(AssetClass, { each: true }) + @IsOptional() assetClass?: AssetClass; - @IsOptional() @IsEnum(AssetSubClass, { each: true }) + @IsOptional() assetSubClass?: AssetSubClass; @IsOptional() @@ -49,8 +49,8 @@ export class CreateOrderDto { @IsOptional() customCurrency?: string; - @IsOptional() @IsEnum(DataSource, { each: true }) + @IsOptional() dataSource?: DataSource; @IsISO8601() diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts index 217ec499b..c5a902c29 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts @@ -24,6 +24,7 @@ export const symbolProfileDummyData = { createdAt: undefined, holdings: [], id: undefined, + isActive: true, sectors: [], updatedAt: undefined }; diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index 14aa3a19e..d9b344699 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -34,6 +34,7 @@ import { ValidationErrors, Validators } from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; import { @@ -88,6 +89,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { historicalData: this.formBuilder.group({ csvString: '' }), + isActive: [true], name: ['', Validators.required], scraperConfiguration: this.formBuilder.group({ defaultMarketPrice: null, @@ -254,6 +256,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { historicalData: { csvString: AssetProfileDialog.HISTORICAL_DATA_TEMPLATE }, + isActive: this.assetProfile?.isActive, name: this.assetProfile.name ?? this.assetProfile.symbol, scraperConfiguration: { defaultMarketPrice: @@ -395,6 +398,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { assetSubClass: this.assetProfileForm.get('assetSubClass').value, comment: this.assetProfileForm.get('comment').value || null, currency: this.assetProfileForm.get('currency').value, + isActive: this.assetProfileForm.get('isActive').value, name: this.assetProfileForm.get('name').value, url: this.assetProfileForm.get('url').value || null }; @@ -538,6 +542,20 @@ export class AssetProfileDialog implements OnDestroy, OnInit { }); } + public onToggleIsActive({ checked }: MatCheckboxChange) { + if (checked) { + this.assetProfileForm.get('isActive')?.setValue(true); + } else { + this.assetProfileForm.get('isActive')?.setValue(false); + } + + if (checked === this.assetProfile.isActive) { + this.assetProfileForm.get('isActive')?.markAsPristine(); + } else { + this.assetProfileForm.get('isActive')?.markAsDirty(); + } + } + public onUnsetBenchmark({ dataSource, symbol }: AssetProfileIdentifier) { this.dataService .deleteBenchmark({ dataSource, symbol }) diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html index f1e8a40bd..c58a40a51 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -512,7 +512,17 @@
    -
    +
    +
    + + Data Gathering + +