diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 2d3417d..76c8414 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,5 +1,6 @@ import { Routes } from '@angular/router'; import { brandInfoRoutes, brandLegalRoutes } from './brands/brand-routes'; +import { languageGuard } from './guards/language.guard'; // Core routes (same across all brands) const coreRoutes: Routes = [ @@ -29,13 +30,18 @@ const coreRoutes: Routes = [ } ]; -// Combine core routes with brand-specific routes +// All routes sit under a :lang prefix (e.g. /ru/cart, /en/item/5) export const routes: Routes = [ - ...coreRoutes, - ...brandInfoRoutes, - ...brandLegalRoutes, { - path: '**', - redirectTo: '' - } + path: ':lang', + canActivate: [languageGuard], + children: [ + ...coreRoutes, + ...brandInfoRoutes, + ...brandLegalRoutes, + { path: '**', redirectTo: '' } + ] + }, + // URLs without a language prefix → redirect to default language + { path: '**', redirectTo: 'ru' } ]; \ No newline at end of file diff --git a/src/app/app.ts b/src/app/app.ts index 156e7bd..63ad618 100644 --- a/src/app/app.ts +++ b/src/app/app.ts @@ -45,7 +45,8 @@ export class App implements OnInit { .subscribe((event) => { const navEnd = event as NavigationEnd; const url = navEnd.urlAfterRedirects || navEnd.url; - this.isHomePage.set(url === '/' || url === '/home' || url === ''); + // Home pages: /ru, /en, /hy (with or without trailing slash) + this.isHomePage.set(/^\/[a-z]{2}\/?$/.test(url) || url === '/' || url === ''); }); } diff --git a/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.html b/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.html index f8b68eb..3630e87 100644 --- a/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.html +++ b/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.html @@ -103,7 +103,7 @@
↩️

6. Возврат средств

-

6.1. Порядок возврата денежных средств регулируется Политикой возврата и зависит от типа приобретенного Товара/Услуги.

+

6.1. Порядок возврата денежных средств регулируется Политикой возврата и зависит от типа приобретенного Товара/Услуги.

6.2. Возврат средств производится на тот же платежный инструмент, с которого была произведена оплата.

6.3. Срок возврата денежных средств составляет:

diff --git a/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.ts b/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.ts index a149b22..c959f5f 100644 --- a/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.ts +++ b/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.ts @@ -1,8 +1,10 @@ import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { RouterLink } from '@angular/router'; +import { LangRoutePipe } from '../../../../../pipes/lang-route.pipe'; @Component({ selector: 'app-payment-terms-novo', - imports: [], + imports: [RouterLink, LangRoutePipe], templateUrl: './payment-terms.component.html', styleUrls: ['../../../../../pages/legal/payment-terms/payment-terms.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush diff --git a/src/app/brands/novo/pages/legal/public-offer/public-offer.component.html b/src/app/brands/novo/pages/legal/public-offer/public-offer.component.html index c4070db..a26bb86 100644 --- a/src/app/brands/novo/pages/legal/public-offer/public-offer.component.html +++ b/src/app/brands/novo/pages/legal/public-offer/public-offer.component.html @@ -31,7 +31,7 @@

1.4. Акцепт происходит автоматически при любом действии: визите, регистрации, оформлении покупки.

1.5. Подписание бумажного договора не требуется — электронная форма юридически действительна.

1.6. Несогласие с условиями означает обязанность покинуть сайт.

-

1.7. Также применяется Политика конфиденциальности.

+

1.7. Также применяется Политика конфиденциальности.

1.8. Мы можем обновлять условия в одностороннем порядке.

1.9. Промо-кампании могут иметь специальные правила.

@@ -204,7 +204,7 @@
↩️

13. Возврат и обмен товара

-

13.1. Общие правила: Цифровые товары не подлежат возврату. Физические товары — согласно Политике возврата и законам о правах потребителей.

+

13.1. Общие правила: Цифровые товары не подлежат возврату. Физические товары — согласно Политике возврата и законам о правах потребителей.

13.2. Процедура возврата: В соответствии с соглашением и законодательством РФ.

13.3. Акционные наборы: Возврат только в комплексе, отдельные товары вернуть нельзя.

13.4. Затраты на доставку: При возврате качественного товара продавец может взыскать затраты на доставку.

diff --git a/src/app/brands/novo/pages/legal/public-offer/public-offer.component.ts b/src/app/brands/novo/pages/legal/public-offer/public-offer.component.ts index 0aa0542..38a57a0 100644 --- a/src/app/brands/novo/pages/legal/public-offer/public-offer.component.ts +++ b/src/app/brands/novo/pages/legal/public-offer/public-offer.component.ts @@ -1,8 +1,10 @@ import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { RouterLink } from '@angular/router'; +import { LangRoutePipe } from '../../../../../pipes/lang-route.pipe'; @Component({ selector: 'app-public-offer-novo', - imports: [], + imports: [RouterLink, LangRoutePipe], templateUrl: './public-offer.component.html', styleUrls: ['../../../../../pages/legal/public-offer/public-offer.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush diff --git a/src/app/components/footer/footer.component.html b/src/app/components/footer/footer.component.html index 955ae27..6327731 100644 --- a/src/app/components/footer/footer.component.html +++ b/src/app/components/footer/footer.component.html @@ -11,27 +11,27 @@ @@ -63,28 +63,28 @@ diff --git a/src/app/components/footer/footer.component.ts b/src/app/components/footer/footer.component.ts index fa10f24..71153bd 100644 --- a/src/app/components/footer/footer.component.ts +++ b/src/app/components/footer/footer.component.ts @@ -1,10 +1,11 @@ import { Component, ChangeDetectionStrategy } from '@angular/core'; import { RouterLink } from '@angular/router'; import { environment } from '../../../environments/environment'; +import { LangRoutePipe } from '../../pipes/lang-route.pipe'; @Component({ selector: 'app-footer', - imports: [RouterLink], + imports: [RouterLink, LangRoutePipe], templateUrl: './footer.component.html', styleUrls: ['./footer.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush diff --git a/src/app/components/header/header.component.html b/src/app/components/header/header.component.html index a2045b3..50f3d43 100644 --- a/src/app/components/header/header.component.html +++ b/src/app/components/header/header.component.html @@ -3,7 +3,7 @@
- @@ -11,16 +11,16 @@