diff --git a/CHANGELOG.md b/CHANGELOG.md index 5153ab476..863df020b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added a link to manage the benchmarks to the benchmark comparator +- Added support for localized routes ## 1.272.0 - 2023-05-26 diff --git a/apps/client/src/app/app-routing.module.ts b/apps/client/src/app/app-routing.module.ts index b4b2792b8..e824862f7 100644 --- a/apps/client/src/app/app-routing.module.ts +++ b/apps/client/src/app/app-routing.module.ts @@ -5,25 +5,27 @@ import { PageTitleStrategy } from '@ghostfolio/client/services/page-title.strate import { ModulePreloadService } from './core/module-preload.service'; const routes: Routes = [ - { - path: 'about', + ...['about', 'ueber-uns'].map((path) => ({ + path, loadChildren: () => import('./pages/about/about-page.module').then((m) => m.AboutPageModule) - }, - { - path: 'about/changelog', + })), + ...['about/changelog', 'ueber-uns/changelog'].map((path) => ({ + path, loadChildren: () => import('./pages/about/changelog/changelog-page.module').then( (m) => m.ChangelogPageModule ) - }, - { - path: 'about/privacy-policy', - loadChildren: () => - import('./pages/about/privacy-policy/privacy-policy-page.module').then( - (m) => m.PrivacyPolicyPageModule - ) - }, + })), + ...['about/privacy-policy', 'ueber-uns/datenschutzbestimmungen'].map( + (path) => ({ + path, + loadChildren: () => + import('./pages/about/privacy-policy/privacy-policy-page.module').then( + (m) => m.PrivacyPolicyPageModule + ) + }) + ), { path: 'account', loadChildren: () => @@ -48,11 +50,11 @@ const routes: Routes = [ loadChildren: () => import('./pages/auth/auth-page.module').then((m) => m.AuthPageModule) }, - { - path: 'blog', + ...['blog'].map((path) => ({ + path, loadChildren: () => import('./pages/blog/blog-page.module').then((m) => m.BlogPageModule) - }, + })), { path: 'blog/2021/07/hallo-ghostfolio', loadChildren: () => @@ -149,30 +151,30 @@ const routes: Routes = [ loadChildren: () => import('./pages/demo/demo-page.module').then((m) => m.DemoPageModule) }, - { - path: 'faq', + ...['faq', 'haeufig-gestellte-fragen'].map((path) => ({ + path, loadChildren: () => import('./pages/faq/faq-page.module').then((m) => m.FaqPageModule) - }, - { - path: 'features', + })), + ...['features'].map((path) => ({ + path, loadChildren: () => import('./pages/features/features-page.module').then( (m) => m.FeaturesPageModule ) - }, + })), { path: 'home', loadChildren: () => import('./pages/home/home-page.module').then((m) => m.HomePageModule) }, - { - path: 'markets', + ...['markets', 'maerkte'].map((path) => ({ + path, loadChildren: () => import('./pages/markets/markets-page.module').then( (m) => m.MarketsPageModule ) - }, + })), { path: 'open', loadChildren: () => @@ -192,27 +194,27 @@ const routes: Routes = [ (m) => m.PortfolioPageModule ) }, - { - path: 'pricing', + ...['pricing', 'preise'].map((path) => ({ + path, loadChildren: () => import('./pages/pricing/pricing-page.module').then( (m) => m.PricingPageModule ) - }, - { - path: 'register', + })), + ...['register', 'registrierung'].map((path) => ({ + path, loadChildren: () => import('./pages/register/register-page.module').then( (m) => m.RegisterPageModule ) - }, - { - path: 'resources', + })), + ...['resources', 'ressourcen'].map((path) => ({ + path, loadChildren: () => import('./pages/resources/resources-page.module').then( (m) => m.ResourcesPageModule ) - }, + })), { path: 'start', loadChildren: () => diff --git a/apps/client/src/assets/robots.txt b/apps/client/src/assets/robots.txt index 059aea258..3b0250e72 100644 --- a/apps/client/src/assets/robots.txt +++ b/apps/client/src/assets/robots.txt @@ -1,6 +1,19 @@ User-agent: * Allow: / +Disallow: /de/about/* +Disallow: /de/faq +Disallow: /de/markets +Disallow: /de/portfolio/* +Disallow: /de/pricing +Disallow: /de/register +Disallow: /de/resources +Disallow: /de/ueber-uns/datenschutzbestimmungen Disallow: /en/about/privacy-policy Disallow: /en/p/* +Disallow: /en/portfolio/* +Disallow: /portfolio/* +Disallow: /pricing/* +Disallow: /register/* +Disallow: /resources/* Sitemap: https://ghostfol.io/sitemap.xml diff --git a/apps/client/src/assets/sitemap.xml b/apps/client/src/assets/sitemap.xml index 8e4f8725e..98d5bf777 100644 --- a/apps/client/src/assets/sitemap.xml +++ b/apps/client/src/assets/sitemap.xml @@ -6,110 +6,142 @@ http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> https://ghostfol.io - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/de/blog - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/de/blog/2021/07/hallo-ghostfolio - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/de/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 - - https://ghostfol.io/de/pricing - 2023-05-20T00:00:00+00:00 + + https://ghostfol.io/de/features + 2023-05-27T00:00:00+00:00 + + + https://ghostfol.io/de/haeufig-gestellte-fragen + 2023-05-27T00:00:00+00:00 + + + https://ghostfol.io/de/maerkte + 2023-05-27T00:00:00+00:00 + + + https://ghostfol.io/de/open + 2023-05-27T00:00:00+00:00 + + + https://ghostfol.io/de/preise + 2023-05-27T00:00:00+00:00 + + + https://ghostfol.io/de/registrierung + 2023-05-27T00:00:00+00:00 + + + https://ghostfol.io/de/ressourcen + 2023-05-27T00:00:00+00:00 + + + https://ghostfol.io/de/ueber-uns + 2023-05-27T00:00:00+00:00 + + + https://ghostfol.io/de/ueber-uns/changelog + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/about - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/about/changelog - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2021/07/hello-ghostfolio - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2022/01/ghostfolio-first-months-in-open-source - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2022/07/ghostfolio-meets-internet-identity - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2022/07/how-do-i-get-my-finances-in-order - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2022/08/500-stars-on-github - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2022/10/hacktoberfest-2022 - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2022/11/black-friday-2022 - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2022/12/the-importance-of-tracking-your-personal-finances - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2023/02/ghostfolio-meets-umbrel - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2023/03/ghostfolio-reaches-1000-stars-on-github - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/blog/2023/05/unlock-your-financial-potential-with-ghostfolio - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/demo - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/faq - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/features - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/markets - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/open - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/pricing - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/register - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00 https://ghostfol.io/en/resources - 2023-05-20T00:00:00+00:00 + 2023-05-27T00:00:00+00:00