Feature/support localized routes (#2009)

* Support localized routes

* Update changelog
This commit is contained in:
Thomas Kaul 2023-05-27 09:53:48 +02:00 committed by GitHub
parent 21ebaae6ef
commit 7529a7a26c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 111 additions and 63 deletions

View File

@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Added a link to manage the benchmarks to the benchmark comparator - Added a link to manage the benchmarks to the benchmark comparator
- Added support for localized routes
## 1.272.0 - 2023-05-26 ## 1.272.0 - 2023-05-26

View File

@ -5,25 +5,27 @@ import { PageTitleStrategy } from '@ghostfolio/client/services/page-title.strate
import { ModulePreloadService } from './core/module-preload.service'; import { ModulePreloadService } from './core/module-preload.service';
const routes: Routes = [ const routes: Routes = [
{ ...['about', 'ueber-uns'].map((path) => ({
path: 'about', path,
loadChildren: () => loadChildren: () =>
import('./pages/about/about-page.module').then((m) => m.AboutPageModule) import('./pages/about/about-page.module').then((m) => m.AboutPageModule)
}, })),
{ ...['about/changelog', 'ueber-uns/changelog'].map((path) => ({
path: 'about/changelog', path,
loadChildren: () => loadChildren: () =>
import('./pages/about/changelog/changelog-page.module').then( import('./pages/about/changelog/changelog-page.module').then(
(m) => m.ChangelogPageModule (m) => m.ChangelogPageModule
) )
}, })),
{ ...['about/privacy-policy', 'ueber-uns/datenschutzbestimmungen'].map(
path: 'about/privacy-policy', (path) => ({
loadChildren: () => path,
import('./pages/about/privacy-policy/privacy-policy-page.module').then( loadChildren: () =>
(m) => m.PrivacyPolicyPageModule import('./pages/about/privacy-policy/privacy-policy-page.module').then(
) (m) => m.PrivacyPolicyPageModule
}, )
})
),
{ {
path: 'account', path: 'account',
loadChildren: () => loadChildren: () =>
@ -48,11 +50,11 @@ const routes: Routes = [
loadChildren: () => loadChildren: () =>
import('./pages/auth/auth-page.module').then((m) => m.AuthPageModule) import('./pages/auth/auth-page.module').then((m) => m.AuthPageModule)
}, },
{ ...['blog'].map((path) => ({
path: 'blog', path,
loadChildren: () => loadChildren: () =>
import('./pages/blog/blog-page.module').then((m) => m.BlogPageModule) import('./pages/blog/blog-page.module').then((m) => m.BlogPageModule)
}, })),
{ {
path: 'blog/2021/07/hallo-ghostfolio', path: 'blog/2021/07/hallo-ghostfolio',
loadChildren: () => loadChildren: () =>
@ -149,30 +151,30 @@ const routes: Routes = [
loadChildren: () => loadChildren: () =>
import('./pages/demo/demo-page.module').then((m) => m.DemoPageModule) import('./pages/demo/demo-page.module').then((m) => m.DemoPageModule)
}, },
{ ...['faq', 'haeufig-gestellte-fragen'].map((path) => ({
path: 'faq', path,
loadChildren: () => loadChildren: () =>
import('./pages/faq/faq-page.module').then((m) => m.FaqPageModule) import('./pages/faq/faq-page.module').then((m) => m.FaqPageModule)
}, })),
{ ...['features'].map((path) => ({
path: 'features', path,
loadChildren: () => loadChildren: () =>
import('./pages/features/features-page.module').then( import('./pages/features/features-page.module').then(
(m) => m.FeaturesPageModule (m) => m.FeaturesPageModule
) )
}, })),
{ {
path: 'home', path: 'home',
loadChildren: () => loadChildren: () =>
import('./pages/home/home-page.module').then((m) => m.HomePageModule) import('./pages/home/home-page.module').then((m) => m.HomePageModule)
}, },
{ ...['markets', 'maerkte'].map((path) => ({
path: 'markets', path,
loadChildren: () => loadChildren: () =>
import('./pages/markets/markets-page.module').then( import('./pages/markets/markets-page.module').then(
(m) => m.MarketsPageModule (m) => m.MarketsPageModule
) )
}, })),
{ {
path: 'open', path: 'open',
loadChildren: () => loadChildren: () =>
@ -192,27 +194,27 @@ const routes: Routes = [
(m) => m.PortfolioPageModule (m) => m.PortfolioPageModule
) )
}, },
{ ...['pricing', 'preise'].map((path) => ({
path: 'pricing', path,
loadChildren: () => loadChildren: () =>
import('./pages/pricing/pricing-page.module').then( import('./pages/pricing/pricing-page.module').then(
(m) => m.PricingPageModule (m) => m.PricingPageModule
) )
}, })),
{ ...['register', 'registrierung'].map((path) => ({
path: 'register', path,
loadChildren: () => loadChildren: () =>
import('./pages/register/register-page.module').then( import('./pages/register/register-page.module').then(
(m) => m.RegisterPageModule (m) => m.RegisterPageModule
) )
}, })),
{ ...['resources', 'ressourcen'].map((path) => ({
path: 'resources', path,
loadChildren: () => loadChildren: () =>
import('./pages/resources/resources-page.module').then( import('./pages/resources/resources-page.module').then(
(m) => m.ResourcesPageModule (m) => m.ResourcesPageModule
) )
}, })),
{ {
path: 'start', path: 'start',
loadChildren: () => loadChildren: () =>

View File

@ -1,6 +1,19 @@
User-agent: * User-agent: *
Allow: / 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/about/privacy-policy
Disallow: /en/p/* Disallow: /en/p/*
Disallow: /en/portfolio/*
Disallow: /portfolio/*
Disallow: /pricing/*
Disallow: /register/*
Disallow: /resources/*
Sitemap: https://ghostfol.io/sitemap.xml Sitemap: https://ghostfol.io/sitemap.xml

View File

@ -6,110 +6,142 @@
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url> <url>
<loc>https://ghostfol.io</loc> <loc>https://ghostfol.io</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/de/blog</loc> <loc>https://ghostfol.io/de/blog</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/de/blog/2021/07/hallo-ghostfolio</loc> <loc>https://ghostfol.io/de/blog/2021/07/hallo-ghostfolio</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/de/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt</loc> <loc>https://ghostfol.io/de/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/de/pricing</loc> <loc>https://ghostfol.io/de/features</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/haeufig-gestellte-fragen</loc>
<lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/maerkte</loc>
<lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/open</loc>
<lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/preise</loc>
<lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/registrierung</loc>
<lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen</loc>
<lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ueber-uns</loc>
<lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ueber-uns/changelog</loc>
<lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/about</loc> <loc>https://ghostfol.io/en/about</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/about/changelog</loc> <loc>https://ghostfol.io/en/about/changelog</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog</loc> <loc>https://ghostfol.io/en/blog</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2021/07/hello-ghostfolio</loc> <loc>https://ghostfol.io/en/blog/2021/07/hello-ghostfolio</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2022/01/ghostfolio-first-months-in-open-source</loc> <loc>https://ghostfol.io/en/blog/2022/01/ghostfolio-first-months-in-open-source</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2022/07/ghostfolio-meets-internet-identity</loc> <loc>https://ghostfol.io/en/blog/2022/07/ghostfolio-meets-internet-identity</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2022/07/how-do-i-get-my-finances-in-order</loc> <loc>https://ghostfol.io/en/blog/2022/07/how-do-i-get-my-finances-in-order</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2022/08/500-stars-on-github</loc> <loc>https://ghostfol.io/en/blog/2022/08/500-stars-on-github</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2022/10/hacktoberfest-2022</loc> <loc>https://ghostfol.io/en/blog/2022/10/hacktoberfest-2022</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2022/11/black-friday-2022</loc> <loc>https://ghostfol.io/en/blog/2022/11/black-friday-2022</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2022/12/the-importance-of-tracking-your-personal-finances</loc> <loc>https://ghostfol.io/en/blog/2022/12/the-importance-of-tracking-your-personal-finances</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2023/02/ghostfolio-meets-umbrel</loc> <loc>https://ghostfol.io/en/blog/2023/02/ghostfolio-meets-umbrel</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2023/03/ghostfolio-reaches-1000-stars-on-github</loc> <loc>https://ghostfol.io/en/blog/2023/03/ghostfolio-reaches-1000-stars-on-github</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/blog/2023/05/unlock-your-financial-potential-with-ghostfolio</loc> <loc>https://ghostfol.io/en/blog/2023/05/unlock-your-financial-potential-with-ghostfolio</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/demo</loc> <loc>https://ghostfol.io/en/demo</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/faq</loc> <loc>https://ghostfol.io/en/faq</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/features</loc> <loc>https://ghostfol.io/en/features</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/markets</loc> <loc>https://ghostfol.io/en/markets</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/open</loc> <loc>https://ghostfol.io/en/open</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/pricing</loc> <loc>https://ghostfol.io/en/pricing</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/register</loc> <loc>https://ghostfol.io/en/register</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ghostfol.io/en/resources</loc> <loc>https://ghostfol.io/en/resources</loc>
<lastmod>2023-05-20T00:00:00+00:00</lastmod> <lastmod>2023-05-27T00:00:00+00:00</lastmod>
</url> </url>
</urlset> </urlset>