Creation:2026-01-22Last update:2026-01-22

    Tài liệu: Hàm getCanonicalPath trong intlayer

    Mô tả

    Hàm getCanonicalPath giải quyết một đường dẫn URL đã bản địa hóa (ví dụ: /a-propos) trở lại đường dẫn ứng dụng chuẩn nội bộ của nó (ví dụ: /about). Điều này rất quan trọng để router có thể khớp đúng route nội bộ bất kể ngôn ngữ trong URL.

    Tính năng chính:

    • Hỗ trợ các tham số route động bằng cách sử dụng cú pháp [param].
    • Khớp các đường dẫn đã bản địa hóa với các quy tắc rewrite tùy chỉnh được định nghĩa trong cấu hình của bạn.
    • Trả về đường dẫn gốc nếu không tìm thấy quy tắc rewrite phù hợp.

    Chữ ký hàm

    typescript
    getCanonicalPath(  localizedPath: string,         // Bắt buộc  locale: Locales,               // Bắt buộc  rewriteRules?: RoutingConfig['rewrite'] // Tùy chọn): string

    Tham số

    Tham số bắt buộc

    • localizedPath: string

      • Mô tả: Đường dẫn đã được bản địa hóa như hiển thị trong trình duyệt (ví dụ: /a-propos).
      • Kiểu: string
      • Bắt buộc: Có
    • locale: Locales

      • Mô tả: Ngôn ngữ (locale) được sử dụng cho đường dẫn đang được giải quyết.
      • Kiểu: Locales
      • Bắt buộc: Có

    Tham số Tuỳ chọn

    • rewriteRules?: RoutingConfig['rewrite']
      • Mô tả: Một đối tượng định nghĩa các quy tắc rewrite tùy chỉnh. Nếu không được cung cấp, nó mặc định về thuộc tính routing.rewrite từ cấu hình dự án của bạn.
      • Kiểu: RoutingConfig['rewrite']
      • Mặc định: configuration.routing.rewrite

    Trả về

    • Kiểu: string
    • Mô tả: Đường dẫn canonical nội bộ.

    Ví dụ Sử dụng

    Sử dụng cơ bản (Với cấu hình)

    Nếu bạn đã cấu hình các rewrite tùy chỉnh trong intlayer.config.ts:

    typescript
    import { getCanonicalPath, Locales } from "intlayer";// Cấu hình: { '/about': { en: '/about', fr: '/a-propos' } }getCanonicalPath("/a-propos", Locales.FRENCH);// Kết quả: "/about"getCanonicalPath("/about", Locales.ENGLISH);// Kết quả: "/about"

    Sử dụng với các route động

    typescript
    import { getCanonicalPath, Locales } from "intlayer";// Cấu hình: { '/product/[id]': { en: '/product/[id]', fr: '/produit/[id]' } }getCanonicalPath("/produit/123", Locales.FRENCH);// Kết quả: "/product/123"

    Quy tắc rewrite thủ công

    Bạn cũng có thể truyền các quy tắc rewrite thủ công vào hàm:

    typescript
    import { getCanonicalPath, Locales } from "intlayer";const manualRules = {  "/contact": {    en: "/contact-us",    fr: "/contactez-nous",  },};getCanonicalPath("/contactez-nous", Locales.FRENCH, manualRules);// Output: "/contact"

    Hàm liên quan

    • getLocalizedPath: Chuyển một canonical path thành đường dẫn đã được bản địa hóa tương ứng.
    • getLocalizedUrl: Tạo một URL hoàn toàn bản địa hóa (bao gồm protocol, host, và tiền tố locale).