Skip to content

Commit f116026

Browse files
authored
refactor: change default language to english (#288)
1 parent 9102a27 commit f116026

File tree

7 files changed

+171
-26
lines changed

7 files changed

+171
-26
lines changed

apps/blog/scripts/build-routes.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const SITEMAP_FILE_PATH = 'apps/blog/src/sitemap.xml';
99
const ROOT_PATHS_FILE_PREFIX = 'apps/blog/src/assets/root-paths';
1010

1111
const SUPPORTED_LANGUAGES = ['pl', 'en'];
12-
const DEFAULT_LANGUAGE = 'pl';
12+
const DEFAULT_LANGUAGE = 'en';
1313

1414
const STATIC_ROUTE_PATHS = [
1515
'',
@@ -19,6 +19,7 @@ const STATIC_ROUTE_PATHS = [
1919
'latest',
2020
'news',
2121
'guides',
22+
'404',
2223
];
2324

2425
/**

apps/blog/scripts/build-sitemap.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export function generateSitemap({
1717

1818
ssgRoutes.forEach((routeObj) => {
1919
const url = urlset.ele('url');
20-
const modifiedUrl = routeObj.url.replace('/pl/', '/');
20+
const modifiedUrl = routeObj.url.replace('/en/', '/');
2121

2222
url.ele('loc').txt(`${baseUrl}${modifiedUrl}`);
2323
url.ele('lastmod').txt(new Date(routeObj.publishDate).toISOString());

apps/blog/src/_redirects

Lines changed: 153 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,156 @@
11
# English articles
2-
/en/:year/:month/:day/:slug /en/:slug 301
3-
/en/:year/:month/:day/:slug/ /en/:slug 301
2+
/en/:year/:month/:day/:slug /:slug/ 301
3+
/en/:year/:month/:day/:slug/ /:slug/ 301
44

55
# Polish articles (no language prefix)
6-
/:year/:month/:day/:slug /:slug 301
7-
/:year/:month/:day/:slug/ /:slug 301
8-
/pl/:year/:month/:day/:slug /:slug 301
9-
/pl/:year/:month/:day/:slug/ /:slug 301
6+
/:year/:month/:day/:slug /pl/:slug/ 301
7+
/:year/:month/:day/:slug/ /pl/:slug/ 301
8+
/pl/:year/:month/:day/:slug /pl/:slug/ 301
9+
/pl/:year/:month/:day/:slug/ /pl/:slug/ 301
10+
11+
/en / 301
12+
/en/* /:splat/ 301
13+
14+
/parsowanie-i-mapowanie-odpowiedzi-z-api-z-wykorzystaniem-zod-js /pl/parsowanie-i-mapowanie-odpowiedzi-z-api-z-wykorzystaniem-zod-js/ 301
15+
/sygnaly-w-angular-gleboka-analiza-dla-zapracowanych-deweloperow /pl/sygnaly-w-angular-gleboka-analiza-dla-zapracowanych-deweloperow/ 301
16+
/najistotniejsze-zmiany-wprowadzone-w-nowej-wersji-typescripta-5-5 /pl/najistotniejsze-zmiany-wprowadzone-w-nowej-wersji-typescripta-5-5/ 301
17+
/przywracanie-pozycji-przewijania-scroll-w-angularze /pl/przywracanie-pozycji-przewijania-scroll-w-angularze/ 301
18+
/angular-zmienna-szablonu-let-hit-czy-kit /pl/angular-zmienna-szablonu-let-hit-czy-kit/ 301
19+
/kontroluj-bundle-size-aplikacji-z-bundlemon /pl/kontroluj-bundle-size-aplikacji-z-bundlemon/ 301
20+
/wszystko-co-musisz-wiedziec-o-angular-router /pl/wszystko-co-musisz-wiedziec-o-angular-router/ 301
21+
/testowanie-jednostkowe-widokow-z-blokami-defer /pl/testowanie-jednostkowe-widokow-z-blokami-defer/ 301
22+
/angular-18-co-nowego /pl/angular-18-co-nowego/ 301
23+
/signal-store-ngxs-zwiekszanie-elastycznosci-w-zarzadzaniu-stanem /pl/signal-store-ngxs-zwiekszanie-elastycznosci-w-zarzadzaniu-stanem/ 301
24+
/jak-zoptymalizowac-bundle-size-angulara /pl/jak-zoptymalizowac-bundle-size-angulara/ 301
25+
/jak-uzywac-bloku-defer-w-angularze-aby-zwiekszyc-wydajnosc /pl/jak-uzywac-bloku-defer-w-angularze-aby-zwiekszyc-wydajnosc/ 301
26+
/wszystko-co-musisz-wiedziec-o-dependency-injection-w-angularze /pl/wszystko-co-musisz-wiedziec-o-dependency-injection-w-angularze/ 301
27+
/zmiany-w-typescript-5-3 /pl/zmiany-w-typescript-5-3/ 301
28+
/microfrontendy-w-angularze-przyszlosc-skalowalnych-aplikacji-front-endowych /pl/microfrontendy-w-angularze-przyszlosc-skalowalnych-aplikacji-front-endowych/ 301
29+
/przelom-w-zarzadzaniu-stanem-odkryj-prostote-signal-store-czesc-1 /pl/przelom-w-zarzadzaniu-stanem-odkryj-prostote-signal-store-czesc-1/ 301
30+
/zwieksz-wydajnosc-swojej-aplikacji-z-ngoptimizedimage /pl/zwieksz-wydajnosc-swojej-aplikacji-z-ngoptimizedimage/ 301
31+
/jak-zbudowac-galerie-pokemonow-za-pomoca-nowego-przeplywu-sterowania-w-angular-17 /pl/jak-zbudowac-galerie-pokemonow-za-pomoca-nowego-przeplywu-sterowania-w-angular-17/ 301
32+
/analog-meta-framework-dla-angulara /pl/analog-meta-framework-dla-angulara/ 301
33+
/angular-styles-masterclass /pl/angular-styles-masterclass/ 301
34+
/miedzy-nami-dyrektywami-directive-composition-api /pl/miedzy-nami-dyrektywami-directive-composition-api/ 301
35+
/angular-17-co-nowego /pl/angular-17-co-nowego/ 301
36+
/bezproblemowe-wdrazanie-aplikacji-angularowej-z-uzyciem-vercel /pl/bezproblemowe-wdrazanie-aplikacji-angularowej-z-uzyciem-vercel/ 301
37+
/internacjonalizacja-czyli-jak-otworzyc-aplikacje-na-swiat-czesc-2 /pl/internacjonalizacja-czyli-jak-otworzyc-aplikacje-na-swiat-czesc-2/ 301
38+
/internacjonalizacja-czyli-jak-otworzyc-aplikacje-na-swiat-czesc-1 /pl/internacjonalizacja-czyli-jak-otworzyc-aplikacje-na-swiat-czesc-1/ 301
39+
/znamy-nowy-syntax-dla-control-flow-w-angularze /pl/znamy-nowy-syntax-dla-control-flow-w-angularze/ 301
40+
/angular-storybook-2 /pl/angular-storybook-2/ 301
41+
/poznaj-destroyref /pl/poznaj-destroyref/ 301
42+
/skalowalna-i-modulowa-aplikacja-angular-z-nx /pl/skalowalna-i-modulowa-aplikacja-angular-z-nx/ 301
43+
/programowanie-animacji-w-angularze /pl/programowanie-animacji-w-angularze/ 301
44+
/dlaczego-sygnaly-nie-zastapia-rxjs /pl/dlaczego-sygnaly-nie-zastapia-rxjs/ 301
45+
/wspoldzialanie-sygnalow-i-rxjs-w-angularze-na-praktycznym-przykladzie /pl/wspoldzialanie-sygnalow-i-rxjs-w-angularze-na-praktycznym-przykladzie/ 301
46+
/angular-rozszerzanie-elementow-natywnych /pl/angular-rozszerzanie-elementow-natywnych/ 301
47+
/sygnaly-w-angularze-16 /pl/sygnaly-w-angularze-16/ 301
48+
/co-nowego-w-angular-16 /pl/co-nowego-w-angular-16/ 301
49+
/wszystko-co-musisz-wiedziec-aby-rozpoczac-prace-z-ngxs /pl/wszystko-co-musisz-wiedziec-aby-rozpoczac-prace-z-ngxs/ 301
50+
/czy-mozemy-w-pelni-zaufac-sanitizerom-html-i-jak-pracowac-bez-nich /pl/czy-mozemy-w-pelni-zaufac-sanitizerom-html-i-jak-pracowac-bez-nich/ 301
51+
/nx-i-angular-elements-studium-przypadku /pl/nx-i-angular-elements-studium-przypadku/ 301
52+
/angular-15-co-nowego /pl/angular-15-co-nowego/ 301
53+
/angular-standalone-api /pl/angular-standalone-api/ 301
54+
/typed-forms /pl/typed-forms/ 301
55+
/cypress-wprowadzenie /pl/cypress-wprowadzenie/ 301
56+
/co-nowego-w-ngrx-przeglad-zmian-i-praktyczne-wskazowki /pl/co-nowego-w-ngrx-przeglad-zmian-i-praktyczne-wskazowki/ 301
57+
/teleportacja-w-angularze /pl/teleportacja-w-angularze/ 301
58+
/angular-v14-co-warto-wiedziec /pl/angular-v14-co-warto-wiedziec/ 301
59+
/ng-mocks-z-czym-to-sie-je /pl/ng-mocks-z-czym-to-sie-je/ 301
60+
/backend-for-frontend-by-frontend /pl/backend-for-frontend-by-frontend/ 301
61+
/angular-meetup-2-03-2022 /pl/angular-meetup-2-03-2022/ 301
62+
/angular-extended-diagnostics /pl/angular-extended-diagnostics/ 301
63+
/sharing-is-caring-wersja-angular /pl/sharing-is-caring-wersja-angular/ 301
64+
/template-driven-forms-i-reactive-forms /pl/template-driven-forms-i-reactive-forms/ 301
65+
/rxjs-w-angularze-wiedza-w-pigulce /pl/rxjs-w-angularze-wiedza-w-pigulce/ 301
66+
/angular-dependency-inversion-principle /pl/angular-dependency-inversion-principle/ 301
67+
/angular-interface-segregation-principle /pl/angular-interface-segregation-principle/ 301
68+
/angular-liskov-substitution-principle /pl/angular-liskov-substitution-principle/ 301
69+
/angular-open-closed-principle /pl/angular-open-closed-principle/ 301
70+
/angular-single-responsibility-principle /pl/angular-single-responsibility-principle/ 301
71+
/angular-tips-tricks-cz-viii /pl/angular-tips-tricks-cz-viii/ 301
72+
/ngwarsztaty-recenzja /pl/ngwarsztaty-recenzja/ 301
73+
/angular-electron /pl/angular-electron/ 301
74+
/pwa-angular-progressive-web-apps /pl/pwa-angular-progressive-web-apps/ 301
75+
/jak-z-tworzenia-ui-stalem-sie-angular-developerem /pl/jak-z-tworzenia-ui-stalem-sie-angular-developerem/ 301
76+
/kompendium-wiedzy-o-restrykcjach-na-etapie-kompilacji /pl/kompendium-wiedzy-o-restrykcjach-na-etapie-kompilacji/ 301
77+
/rxjs7-co-nowego /pl/rxjs7-co-nowego/ 301
78+
/behavior-driven-development-zlote-ale-czy-skromne /pl/behavior-driven-development-zlote-ale-czy-skromne/ 301
79+
/wywiad-z-kamilem-mysliwcem /pl/wywiad-z-kamilem-mysliwcem/ 301
80+
/angular-na-platformach-mobilnych /pl/angular-na-platformach-mobilnych/ 301
81+
/nestjs-backend-w-stylu-angular /pl/nestjs-backend-w-stylu-angular/ 301
82+
/ngrx-tips-tricks /pl/ngrx-tips-tricks/ 301
83+
/nestjs-mockowanie-zewnetrznych-zaleznosci-w-testach-e2e-aplikacji /pl/nestjs-mockowanie-zewnetrznych-zaleznosci-w-testach-e2e-aplikacji/ 301
84+
/angular-architects-nasza-opinia-na-temat-szkolen /pl/angular-architects-nasza-opinia-na-temat-szkolen/ 301
85+
/angular-elements /pl/angular-elements/ 301
86+
/angular-tree-shaking /pl/angular-tree-shaking/ 301
87+
/ciemna-strona-server-side-renderingu /pl/ciemna-strona-server-side-renderingu/ 301
88+
/jak-postepowac-zgodnie-z-zasada-odwrocenia-zaleznosci-dip-w-nestjs-i-angular /pl/jak-postepowac-zgodnie-z-zasada-odwrocenia-zaleznosci-dip-w-nestjs-i-angular/ 301
89+
/black-friday-z-angular-love /pl/black-friday-z-angular-love/ 301
90+
/przywitaj-nan-stack /pl/przywitaj-nan-stack/ 301
91+
/last-minute-200-na-najwieksza-konferencje-z-ng-conf /pl/last-minute-200-na-najwieksza-konferencje-z-ng-conf/ 301
92+
/ngrxcomponent /pl/ngrxcomponent/ 301
93+
/ngrx-nie-tylko-store /pl/ngrx-nie-tylko-store/ 301
94+
/angular-nieco-inne-podejscie-do-personalizowania-szablonu-komponentow /pl/angular-nieco-inne-podejscie-do-personalizowania-szablonu-komponentow/ 301
95+
/zagniezdzone-formularze-z-controlcontainer /pl/zagniezdzone-formularze-z-controlcontainer/ 301
96+
/angular-tips-tricks-cz-vii /pl/angular-tips-tricks-cz-vii/ 301
97+
/spectator-kiedy-testowanie-staje-sie-przyjemnoscia /pl/spectator-kiedy-testowanie-staje-sie-przyjemnoscia/ 301
98+
/komponenty-dynamiczne-drzewo /pl/komponenty-dynamiczne-drzewo/ 301
99+
/ng-conf-kod-znizkowy-konferencja-online /pl/ng-conf-kod-znizkowy-konferencja-online/ 301
100+
/real-live-case-dyrektywa-do-obslugi-rol /pl/real-live-case-dyrektywa-do-obslugi-rol/ 301
101+
/ngrx-praktycznie-garsc-wskazowek /pl/ngrx-praktycznie-garsc-wskazowek/ 301
102+
/dokumentowanie-aplikacji-angular-poprzez-compodoc /pl/dokumentowanie-aplikacji-angular-poprzez-compodoc/ 301
103+
/angular-schematics-tutorial /pl/angular-schematics-tutorial/ 301
104+
/testowanie-rxjs-marble-diagrams /pl/testowanie-rxjs-marble-diagrams/ 301
105+
/o-server-side-rendering-w-angular /pl/o-server-side-rendering-w-angular/ 301
106+
/testowanie-ngrx-komponenty /pl/testowanie-ngrx-komponenty/ 301
107+
/testowanie-ngrx-jak-zaczac /pl/testowanie-ngrx-jak-zaczac/ 301
108+
/angular-7-co-nowego /pl/angular-7-co-nowego/ 301
109+
/confrontjs-wygraj-bilet /pl/confrontjs-wygraj-bilet/ 301
110+
/konferencja-ngpoland-jspoland-2018-wygraj-bilet /pl/konferencja-ngpoland-jspoland-2018-wygraj-bilet/ 301
111+
/angular-skad-czerpac-wiedze /pl/angular-skad-czerpac-wiedze/ 301
112+
/profiling-w-angular /pl/profiling-w-angular/ 301
113+
/angular-firebase-crud-login-cz-i /pl/angular-firebase-crud-login-cz-i/ 301
114+
/angular-performance-tips /pl/angular-performance-tips/ 301
115+
/angular-6-1-0-scroll-behavior-viewportscroller /pl/angular-6-1-0-scroll-behavior-viewportscroller/ 301
116+
/angular-tips-tricks-cz-vi /pl/angular-tips-tricks-cz-vi/ 301
117+
/rxjs-w-angular-co-wypada-wiedziec /pl/rxjs-w-angular-co-wypada-wiedziec/ 301
118+
/rxjs-share-operator /pl/rxjs-share-operator/ 301
119+
/angular-asynchroniczne-walidatory /pl/angular-asynchroniczne-walidatory/ 301
120+
/angular-injectiontoken /pl/angular-injectiontoken/ 301
121+
/angular-i-zone-js /pl/angular-i-zone-js/ 301
122+
/angular-testowanie-zapytan-http /pl/angular-testowanie-zapytan-http/ 301
123+
/angular-dekorator-hostbinding /pl/angular-dekorator-hostbinding/ 301
124+
/angular-tips-tricks-cz-v /pl/angular-tips-tricks-cz-v/ 301
125+
/angular-v-5-0-0-co-nowego /pl/angular-v-5-0-0-co-nowego/ 301
126+
/angular-ngfortemplate-ngforofcontext /pl/angular-ngfortemplate-ngforofcontext/ 301
127+
/wyniki-konkursu-o-wejsciowki-na-ng-poland /pl/wyniki-konkursu-o-wejsciowki-na-ng-poland/ 301
128+
/konferencja-ng-poland-2017-wygraj-bilet /pl/konferencja-ng-poland-2017-wygraj-bilet/ 301
129+
/angular-tips-tricks-cz-iv /pl/angular-tips-tricks-cz-iv/ 301
130+
/angular-multiple-environments /pl/angular-multiple-environments/ 301
131+
/angular-dyrektywy-strukturalne /pl/angular-dyrektywy-strukturalne/ 301
132+
/angular-router-events-i-spinner /pl/angular-router-events-i-spinner/ 301
133+
/konferencja-frontend-con-2017 /pl/konferencja-frontend-con-2017/ 301
134+
/angular-candeactivate-guard /pl/angular-candeactivate-guard/ 301
135+
/angular-tips-tricks-cz-iii /pl/angular-tips-tricks-cz-iii/ 301
136+
/wyniki-konkursu-js-poland-i-blog-www-polskifrontend-pl /pl/wyniki-konkursu-js-poland-i-blog-www-polskifrontend-pl/ 301
137+
/angular-manipulacja-dom-w-roznych-srodowiskach /pl/angular-manipulacja-dom-w-roznych-srodowiskach/ 301
138+
/konferencja-js-poland-2017-wygraj-bilet-lub-skorzystaj-ze-znizki /pl/konferencja-js-poland-2017-wygraj-bilet-lub-skorzystaj-ze-znizki/ 301
139+
/angular-2-custom-form-controls /pl/angular-2-custom-form-controls/ 301
140+
/angular-2-tips-tricks-cz-ii /pl/angular-2-tips-tricks-cz-ii/ 301
141+
/angular-2-sharedmodule-w-wiekszych-projektach /pl/angular-2-sharedmodule-w-wiekszych-projektach/ 301
142+
/angular-2-tips-tricks-cz-i /pl/angular-2-tips-tricks-cz-i/ 301
143+
/angular-2-validation-service-usprawniamy-wyswietlanie-errorow /pl/angular-2-validation-service-usprawniamy-wyswietlanie-errorow/ 301
144+
/angular-2-custom-validators /pl/angular-2-custom-validators/ 301
145+
/angular-2-model-driven-forms-dynamiczne-formularze /pl/angular-2-model-driven-forms-dynamiczne-formularze/ 301
146+
/angular-2-model-driven-forms-cz-ii-zmiana-zasad-walidacji-w-locie /pl/angular-2-model-driven-forms-cz-ii-zmiana-zasad-walidacji-w-locie/ 301
147+
/angular-2-model-driven-forms-cz-i-tworzymy-formularz-z-walidacja /pl/angular-2-model-driven-forms-cz-i-tworzymy-formularz-z-walidacja/ 301
148+
/angular-2-template-driven-forms /pl/angular-2-template-driven-forms/ 301
149+
/angular-2-lifecycle-hooks-ngonchanges-ngoncheck /pl/angular-2-lifecycle-hooks-ngonchanges-ngoncheck/ 301
150+
/angular-2-change-detector-mechanizmy-detekcji-oraz-strategia-onpush /pl/angular-2-change-detector-mechanizmy-detekcji-oraz-strategia-onpush/ 301
151+
/angular-2-format-date-pipe /pl/angular-2-format-date-pipe/ 301
152+
/angular-2-injector-tree-jak-dzialaja-serwisy /pl/angular-2-injector-tree-jak-dzialaja-serwisy/ 301
153+
/angular-2-augury-debugging-aplikacji /pl/angular-2-augury-debugging-aplikacji/ 301
154+
/angular-2-bidrectional-service-komunikacja-komponentow-poprzez-serwis /pl/angular-2-bidrectional-service-komunikacja-komponentow-poprzez-serwis/ 301
155+
/angular-2-dynamic-component-tworzymy-dynamiczne-komponenty /pl/angular-2-dynamic-component-tworzymy-dynamiczne-komponenty/ 301
156+
/angular-2-resolver-dostarczamy-dane-przed-aktywacja-routa /pl/angular-2-resolver-dostarczamy-dane-przed-aktywacja-routa/ 301

libs/blog/articles/data-access/src/lib/guards/article-exists.guard.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,7 @@ export const articleExistsGuard: CanActivateFn = (route) => {
2121
inject(ArticleDetailsStore);
2222

2323
const notFoundPageUrlTree = router.createUrlTree(
24-
localizeService.localizePath(['/', 'not-found']),
25-
);
26-
const homepageUrlTree = router.createUrlTree(
27-
localizeService.localizePath(['/']),
24+
localizeService.localizePath(['/', '404']),
2825
);
2926

3027
return http
@@ -48,7 +45,7 @@ export const articleExistsGuard: CanActivateFn = (route) => {
4845
{},
4946
);
5047
} else {
51-
return homepageUrlTree;
48+
return notFoundPageUrlTree;
5249
}
5350
}
5451

libs/blog/articles/feature-article/src/lib/article-share-icons/article-share-icons.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ export class ArticleShareIconsComponent {
6666

6767
readonly articleUrl = computed(() =>
6868
this.language() === 'pl_PL'
69-
? `https://angular.love/${this.slug()}`
70-
: `https://angular.love/en/${this.slug()}`,
69+
? `https://angular.love/pl/${this.slug()}`
70+
: `https://angular.love/${this.slug()}`,
7171
);
7272

7373
readonly items = computed<ShareItem[]>(() => {

libs/blog/i18n/data-access/src/lib/providers.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ export const provideI18n = () => {
1616
return [
1717
provideTransloco({
1818
config: {
19-
availableLangs: ['pl', 'en'],
20-
defaultLang: 'pl',
21-
fallbackLang: 'pl',
19+
availableLangs: ['en', 'pl'],
20+
defaultLang: 'en',
21+
fallbackLang: 'en',
2222
reRenderOnLangChange: true,
2323
prodMode: !isDevMode(),
2424
},

libs/blog/shell/feature-shell-web/src/lib/blog-shell.routes.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ import { RootShellComponent } from './root-shell.component';
77

88
export const blogShellRoutes: Route[] = [
99
{
10-
path: 'en',
10+
path: 'pl',
1111
pathMatch: 'prefix',
12-
loadChildren: () => routes,
13-
canActivate: [activeLanguageGuard('en')],
12+
loadChildren: () => commonRoutes,
13+
canActivate: [activeLanguageGuard('pl')],
1414
},
1515
{
1616
path: '',
1717
pathMatch: 'prefix',
18-
loadChildren: () => routes,
19-
canActivate: [activeLanguageGuard('pl')],
18+
loadChildren: () => commonRoutes,
19+
canActivate: [activeLanguageGuard('en')],
2020
},
2121
];
2222

23-
export const routes: Route[] = [
23+
export const commonRoutes: Route[] = [
2424
{
2525
path: '',
2626
component: RootShellComponent,
@@ -73,7 +73,7 @@ export const routes: Route[] = [
7373
.NewsletterPageComponent,
7474
},
7575
{
76-
path: 'not-found',
76+
path: '404',
7777
loadComponent: async () =>
7878
(await import('@angular-love/blog/shared/ui-not-found'))
7979
.NotFoundPageComponent,
@@ -84,7 +84,7 @@ export const routes: Route[] = [
8484
...articleRoutes,
8585
{
8686
path: '**',
87-
redirectTo: 'not-found',
87+
redirectTo: '404',
8888
},
8989
],
9090
},

0 commit comments

Comments
 (0)