diff --git a/npm/ng-packs/packages/core/src/lib/pipes/index.ts b/npm/ng-packs/packages/core/src/lib/pipes/index.ts index 0320350f55..0dfe63d39f 100644 --- a/npm/ng-packs/packages/core/src/lib/pipes/index.ts +++ b/npm/ng-packs/packages/core/src/lib/pipes/index.ts @@ -8,4 +8,5 @@ export * from './short-date-time.pipe'; export * from './utc-to-local.pipe'; export * from './async-localization.pipe'; export * from './lazy-localization.pipe'; +export * from './route-culture-url.pipe'; export * from './html-encode.pipe'; diff --git a/npm/ng-packs/packages/core/src/lib/pipes/route-culture-url.pipe.ts b/npm/ng-packs/packages/core/src/lib/pipes/route-culture-url.pipe.ts new file mode 100644 index 0000000000..26e43153e1 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/pipes/route-culture-url.pipe.ts @@ -0,0 +1,18 @@ +import { Pipe, PipeTransform, inject } from '@angular/core'; +import { RouteBasedCultureUrlService } from '../services/route-based-culture-url.service'; + +/** + * Prefixes menu/navigation paths with the current culture when route-based culture is enabled. + * Impure so links update after language changes. + */ +@Pipe({ + name: 'abpRouteCultureUrl', + pure: false, +}) +export class AbpRouteCultureUrlPipe implements PipeTransform { + private readonly url = inject(RouteBasedCultureUrlService); + + transform(path: string | undefined | null): string | undefined | null { + return this.url.prefixPathWithCulture(path); + } +}