Nhận thông báo về các bản phát hành sắp tới của Intlayer
    Ngày tạo:2024-08-13Cập nhật lần cuối:2025-10-25

    Tài liệu Cấu hình Intlayer

    Tổng quan

    Các tệp cấu hình Intlayer cho phép tùy chỉnh nhiều khía cạnh khác nhau của plugin, chẳng hạn như quốc tế hóa, middleware và xử lý nội dung. Tài liệu này cung cấp mô tả chi tiết về từng thuộc tính trong cấu hình.


    Mục lục


    Hỗ trợ tệp cấu hình

    Intlayer chấp nhận các định dạng tệp cấu hình JSON, JS, MJS và TS:

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    Ví dụ tệp cấu hình

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH],  },  content: {    contentDir: ["src", "../ui-library"],  },  dictionary: {    fill: "./{{fileName}}.content.json",  },  routing: {    mode: "prefix-no-default",    storage: "cookie",  },  editor: {    applicationURL: "https://example.com",  },  ai: {    apiKey: process.env.OPENAI_API_KEY,    applicationContext: "Đây là một ứng dụng thử nghiệm", // ngữ cảnh ứng dụng AI  },  build: {    importMode: "dynamic",  },};export default config;

    Tham chiếu Cấu hình

    Các phần sau mô tả các thiết lập cấu hình khác nhau có sẵn cho Intlayer.


    Cấu hình Quốc tế hóa

    Định nghĩa các thiết lập liên quan đến quốc tế hóa, bao gồm các ngôn ngữ có sẵn và ngôn ngữ mặc định cho ứng dụng.

    Thuộc tính

    • locales:

      • Kiểu: string[]
      • Mặc định: ['en']
      • Mô tả: Danh sách các ngôn ngữ được hỗ trợ trong ứng dụng.
      • Ví dụ: ['en', 'fr', 'es']
    • requiredLocales:
      • Kiểu: string[]
      • Mặc định: []
      • Mô tả: Danh sách các ngôn ngữ bắt buộc trong ứng dụng.
      • Ví dụ: []
      • Lưu ý: Nếu để trống, tất cả các ngôn ngữ đều bắt buộc trong chế độ strict.
      • Lưu ý: Đảm bảo các ngôn ngữ bắt buộc cũng được định nghĩa trong trường locales.
    • strictMode:

      • Kiểu: string
      • Mặc định: inclusive
      • Mô tả: Đảm bảo việc triển khai nội dung quốc tế hóa mạnh mẽ bằng cách sử dụng typescript.
      • Lưu ý: Nếu được đặt thành "strict", hàm dịch t sẽ yêu cầu mỗi ngôn ngữ được khai báo phải được định nghĩa. Nếu thiếu một ngôn ngữ hoặc nếu một ngôn ngữ không được khai báo trong cấu hình của bạn, nó sẽ báo lỗi.
      • Lưu ý: Nếu được đặt thành "inclusive", hàm dịch t sẽ yêu cầu mỗi ngôn ngữ được khai báo phải được định nghĩa. Nếu thiếu một ngôn ngữ, nó sẽ cảnh báo. Nhưng sẽ chấp nhận nếu một ngôn ngữ không được khai báo trong cấu hình của bạn nhưng tồn tại.
      • Lưu ý: Nếu được đặt thành "loose", hàm dịch t sẽ chấp nhận bất kỳ ngôn ngữ nào tồn tại.
    • defaultLocale:

      • Kiểu: string
      • Mặc định: 'en'
      • Mô tả: Ngôn ngữ mặc định được sử dụng làm dự phòng nếu ngôn ngữ yêu cầu không được tìm thấy.
      • Ví dụ: 'en'
      • Lưu ý: Điều này được sử dụng để xác định ngôn ngữ khi không có ngôn ngữ nào được chỉ định trong URL, cookie hoặc header.

    Cấu hình Trình soạn thảo

    Định nghĩa các thiết lập liên quan đến trình soạn thảo tích hợp, bao gồm cổng máy chủ và trạng thái hoạt động.

    Thuộc tính

    • applicationURL:

      • Kiểu: string
      • Mặc định: http://localhost:3000
      • Mô tả: URL của ứng dụng. Được sử dụng để giới hạn nguồn gốc của trình soạn thảo vì lý do bảo mật.
      • Ví dụ:
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Lưu ý: URL của ứng dụng. Được sử dụng để giới hạn nguồn gốc của trình soạn thảo vì lý do bảo mật. Nếu được đặt thành '*', trình soạn thảo có thể truy cập từ bất kỳ nguồn gốc nào.
    • port:

      • Kiểu: number
      • Mặc định: 8000
      • Mô tả: Cổng được sử dụng bởi máy chủ trình soạn thảo trực quan.
    • editorURL:

      • Kiểu: string
      • Mặc định: 'http://localhost:8000'
      • Mô tả: URL của máy chủ trình soạn thảo. Được sử dụng để giới hạn nguồn gốc của trình soạn thảo vì lý do bảo mật.
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Lưu ý: URL của máy chủ trình soạn thảo để truy cập từ ứng dụng. Được sử dụng để giới hạn các nguồn gốc có thể tương tác với ứng dụng vì lý do bảo mật. Nếu được đặt thành '*', trình soạn thảo có thể truy cập từ bất kỳ nguồn gốc nào. Nên được đặt nếu cổng bị thay đổi, hoặc nếu trình soạn thảo được lưu trữ trên một miền khác.
    • cmsURL:

      • Kiểu: string
      • Mặc định: 'https://intlayer.org'
      • Mô tả: URL của Intlayer CMS.
      • Ví dụ: 'https://intlayer.org'
      • Lưu ý: URL của Intlayer CMS.
    • backendURL:

      • Kiểu: string
      • Mặc định: https://back.intlayer.org
      • Mô tả: URL của máy chủ backend.
      • Ví dụ: http://localhost:4000
    • enabled:

      • Kiểu: boolean
      • Mặc định: true
      • Mô tả: Chỉ ra liệu ứng dụng có tương tác với trình soạn thảo trực quan hay không.
      • Ví dụ: process.env.NODE_ENV !== 'production'
      • Lưu ý: Nếu là true, trình soạn thảo sẽ có thể tương tác với ứng dụng. Nếu là false, trình soạn thảo sẽ không thể tương tác với ứng dụng. Trong mọi trường hợp, trình soạn thảo chỉ có thể được kích hoạt bởi trình soạn thảo trực quan. Việc vô hiệu hóa trình soạn thảo cho các môi trường cụ thể là một cách để tăng cường bảo mật.
    • clientId:

      • Kiểu: string | undefined
      • Mặc định: undefined
      • Mô tả: clientId và clientSecret cho phép các package của intlayer xác thực với backend sử dụng xác thực oAuth2. Một access token được sử dụng để xác thực người dùng liên quan đến dự án. Để lấy access token, truy cập https://intlayer.org/dashboard/project và tạo một tài khoản.
      • Ví dụ: true
      • Lưu ý: Quan trọng: clientId và clientSecret cần được giữ bí mật và không được chia sẻ công khai. Vui lòng đảm bảo giữ chúng ở nơi an toàn, chẳng hạn như biến môi trường.
    • clientSecret:

      • Kiểu: string | undefined
      • Mặc định: undefined
      • Mô tả: clientId và clientSecret cho phép các package của intlayer xác thực với backend sử dụng xác thực oAuth2. Một access token được sử dụng để xác thực người dùng liên quan đến dự án. Để lấy access token, truy cập https://intlayer.org/dashboard/project và tạo một tài khoản.
      • Ví dụ: true
      • Lưu ý: Quan trọng: clientId và clientSecret cần được giữ bí mật và không được chia sẻ công khai. Vui lòng đảm bảo giữ chúng ở nơi an toàn, chẳng hạn như biến môi trường.
    • dictionaryPriorityStrategy:

      • Kiểu: string
      • Mặc định: 'local_first'
      • Mô tả: Chiến lược ưu tiên từ điển trong trường hợp có cả từ điển cục bộ và từ điển từ xa. Nếu được đặt thành 'distant_first', ứng dụng sẽ ưu tiên từ điển từ xa hơn từ điển cục bộ. Nếu được đặt thành 'local_first', ứng dụng sẽ ưu tiên từ điển cục bộ hơn từ điển từ xa.
      • Ví dụ: 'distant_first'
    • liveSync:

      • Kiểu: boolean
      • Mặc định: false
      • Mô tả: Chỉ định liệu server ứng dụng có nên tải lại nóng nội dung của ứng dụng khi phát hiện có thay đổi trên CMS / Visual Editor / Backend hay không.
      • Ví dụ: true
      • Lưu ý: Ví dụ, khi một từ điển mới được thêm hoặc cập nhật, ứng dụng sẽ cập nhật nội dung để hiển thị trên trang.
      • Lưu ý: Live sync cần phải đưa nội dung của ứng dụng ra một server khác. Điều này có nghĩa là nó có thể ảnh hưởng nhẹ đến hiệu năng của ứng dụng. Để hạn chế điều này, chúng tôi khuyến nghị nên host ứng dụng và server live sync trên cùng một máy. Ngoài ra, sự kết hợp giữa live sync và optimize có thể tạo ra một số lượng lớn các yêu cầu đến server live sync. Tùy thuộc vào hạ tầng của bạn, chúng tôi khuyến nghị nên thử nghiệm cả hai tùy chọn và sự kết hợp của chúng.
    • liveSyncPort:

      • Kiểu: number
      • Mặc định: 4000
      • Mô tả: Cổng của server live sync.
      • Ví dụ: 4000
      • Lưu ý: Cổng của server live sync.
    • liveSyncURL:

      • Kiểu: string
      • Mặc định: 'http://localhost:{liveSyncPort}'
      • Mô tả: URL của server live sync.
      • Ví dụ: 'https://example.com'
      • Lưu ý: Mặc định trỏ tới localhost nhưng có thể thay đổi thành bất kỳ URL nào trong trường hợp server live sync từ xa.

    Cấu hình Routing

    Các thiết lập kiểm soát hành vi routing, bao gồm cấu trúc URL, lưu trữ locale và xử lý middleware.

    Thuộc tính

    • mode:

      • Kiểu: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
      • Mặc định: 'prefix-no-default'
      • Mô tả: Chế độ routing URL để xử lý locale.
      • Ví dụ:
        • 'prefix-no-default': /dashboard (en) hoặc /fr/dashboard (fr)
        • 'prefix-all': /en/dashboard (en) hoặc /fr/dashboard (fr)
        • 'no-prefix': /dashboard (locale được xử lý bằng cách khác)
        • 'search-params': /dashboard?locale=fr
      • Lưu ý: Thiết lập này không ảnh hưởng đến quản lý cookie hoặc lưu trữ locale.
    • storage:

      • Kiểu: false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array
      • Mặc định: 'localStorage'
      • Mô tả: Cấu hình để lưu trữ locale trên client.

      • cookie:

        • Mô tả: Lưu dữ liệu trong cookie, các mẩu dữ liệu nhỏ được lưu trên trình duyệt của client, có thể truy cập cả phía client và server.
        • Lưu ý: Để tuân thủ GDPR, cần đảm bảo có sự đồng ý của người dùng trước khi sử dụng.
        • Lưu ý: Các tham số cookie có thể tùy chỉnh nếu được đặt dưới dạng CookiesAttributes ({ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }).
      • localStorage:

        • Mô tả: Lưu dữ liệu trong trình duyệt mà không có ngày hết hạn, cho phép dữ liệu tồn tại qua các phiên làm việc, chỉ có thể truy cập ở phía client.
        • Lưu ý: Phù hợp để lưu trữ dữ liệu lâu dài nhưng cần lưu ý về các vấn đề bảo mật và quyền riêng tư do dữ liệu không hết hạn trừ khi được xóa rõ ràng.
        • Lưu ý: Bộ lưu trữ locale chỉ có thể truy cập ở phía client, proxy intlayer sẽ không thể truy cập được.
        • Lưu ý: Các tham số lưu trữ locale có thể tùy chỉnh nếu được đặt dưới dạng StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }).
      • sessionStorage:

        • Mô tả: Lưu dữ liệu trong suốt phiên làm việc của trang, nghĩa là dữ liệu sẽ bị xóa khi tab hoặc cửa sổ trình duyệt đóng, chỉ có thể truy cập ở phía client.
        • Lưu ý: Phù hợp để lưu trữ dữ liệu tạm thời cho mỗi phiên làm việc.
        • Lưu ý: Bộ lưu trữ locale chỉ có thể truy cập ở phía client, proxy intlayer sẽ không thể truy cập được.
        • Lưu ý: Các tham số lưu trữ locale có thể tùy chỉnh nếu được đặt dưới dạng StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }).
      • header:

        • Mô tả: Sử dụng các header HTTP để lưu trữ hoặc truyền dữ liệu locale, phù hợp cho việc xác định ngôn ngữ phía server.
        • Lưu ý: Hữu ích trong các cuộc gọi API để duy trì cài đặt ngôn ngữ nhất quán qua các yêu cầu.
        • Lưu ý: Header chỉ có thể truy cập ở phía server, phía client sẽ không thể truy cập được.
        • Lưu ý: Tên header có thể tùy chỉnh nếu được đặt dưới dạng StorageAttributes ({ type: 'header', name: 'custom-locale' }).
    • basePath:

      • Kiểu: string
      • Mặc định: ''
      • Mô tả: Đường dẫn cơ sở cho các URL của ứng dụng.
      • Ví dụ: '/my-app'
      • Lưu ý:
        • Nếu ứng dụng được lưu trữ tại https://example.com/my-app
        • Đường dẫn cơ sở là '/my-app'
        • URL sẽ là https://example.com/my-app/en
        • Nếu không đặt đường dẫn cơ sở, URL sẽ là https://example.com/en

    Khi sử dụng lưu trữ cookie, bạn có thể cấu hình thêm các thuộc tính cookie:

    • name: Tên cookie (mặc định: 'INTLAYER_LOCALE')
    • domain: Miền cookie (mặc định: không xác định)
    • path: Đường dẫn cookie (mặc định: không xác định)
    • secure: Yêu cầu HTTPS (mặc định: không xác định)
    • httpOnly: Cờ chỉ HTTP (mặc định: không xác định)
    • sameSite: Chính sách SameSite ('strict' | 'lax' | 'none')
    • expires: Ngày hết hạn hoặc số ngày (mặc định: không xác định)

    Thuộc tính lưu trữ Locale

    Khi sử dụng localStorage hoặc sessionStorage:

    • type: Loại lưu trữ ('localStorage' | 'sessionStorage')
    • name: Tên khóa lưu trữ (mặc định: 'INTLAYER_LOCALE')

    Ví dụ cấu hình

    Dưới đây là một số ví dụ cấu hình phổ biến cho cấu trúc routing mới v7:

    Cấu hình cơ bản (Mặc định):

    // intlayer.config.tsexport default defineConfig({  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default",    storage: "localStorage",    headerName: "x-intlayer-locale",    basePath: "",  },});

    Cấu hình tuân thủ GDPR:

    // intlayer.config.tsexport default defineConfig({  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default",    storage: [      {        type: "localStorage",        name: "user-locale",      },      {        type: "cookie",        name: "user-locale",        secure: true,        sameSite: "strict",        httpOnly: false,      },    ],    headerName: "x-intlayer-locale",    basePath: "",  },});

    Chế độ Tham số Tìm kiếm:

    // intlayer.config.tsexport default defineConfig({  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "search-params",    storage: "localStorage",    headerName: "x-intlayer-locale",    basePath: "",  },});

    Chế độ Không Tiền Tố với Bộ Lưu Trữ Tùy Chỉnh:

    // intlayer.config.tsexport default defineConfig({  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "no-prefix",    storage: {      type: "sessionStorage",      name: "app-locale",    },    headerName: "x-custom-locale",    basePath: "/my-app",  },});

    Cấu hình Nội dung

    Các thiết lập liên quan đến việc xử lý nội dung trong ứng dụng, bao gồm tên thư mục, phần mở rộng tệp, và các cấu hình dẫn xuất.

    Thuộc tính

    • watch:

      • Kiểu: boolean
      • Mặc định: process.env.NODE_ENV === 'development'
      • Mô tả: Chỉ định liệu Intlayer có nên theo dõi các thay đổi trong các tệp khai báo nội dung trong ứng dụng để xây dựng lại các từ điển liên quan hay không.
    • fileExtensions:

      • Kiểu: string[]
      • Mặc định: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
      • Mô tả: Các phần mở rộng tệp cần tìm khi xây dựng từ điển.
      • Ví dụ: ['.data.ts', '.data.js', '.data.json']
      • Lưu ý: Tùy chỉnh phần mở rộng tệp có thể giúp tránh xung đột.
    • baseDir:

      • Kiểu: string
      • Mặc định: process.cwd()
      • Mô tả: Thư mục gốc của dự án.
      • Ví dụ: '/path/to/project'
      • Lưu ý: Được sử dụng để giải quyết tất cả các thư mục liên quan đến Intlayer.
    • contentDir:

      • Kiểu: string[]
      • Mặc định: ['.']
      • Ví dụ: ['src', '../../ui-library', require.resolve("@my-package/content")]
      • Mô tả: Đường dẫn thư mục nơi lưu trữ nội dung.
    • dictionariesDir:

      • Kiểu: string
      • Mặc định: '.intlayer/dictionaries'
      • Mô tả: Đường dẫn thư mục để lưu trữ kết quả trung gian hoặc đầu ra.
    • moduleAugmentationDir:

      • Kiểu: string
      • Mặc định: '.intlayer/types'
      • Mô tả: Thư mục dành cho việc mở rộng module, giúp IDE gợi ý và kiểm tra kiểu tốt hơn.
      • Ví dụ: 'intlayer-types'
      • Lưu ý: Hãy chắc chắn bao gồm thư mục này trong tsconfig.json.
    • unmergedDictionariesDir:

      • Kiểu: string
      • Mặc định: '.intlayer/unmerged_dictionary'
      • Mô tả: Thư mục để lưu trữ các từ điển chưa được hợp nhất.
      • Ví dụ: 'translations'
    • dictionariesDir:

      • Kiểu: string
      • Mặc định: '.intlayer/dictionary'
      • Mô tả: Thư mục để lưu trữ các từ điển bản địa hóa.
      • Ví dụ: 'translations'
    • typesDir:

      • Kiểu: string
      • Mặc định: 'types'
      • Mô tả: Thư mục để lưu trữ các kiểu của từ điển.
      • Ví dụ: 'intlayer-types'
    • mainDir:

      • Kiểu: string
      • Mặc định: 'main'
      • Mô tả: Thư mục nơi lưu trữ các tệp chính của ứng dụng.
      • Ví dụ: 'intlayer-main'
    • excludedPath:

      • Kiểu: string[]
      • Mặc định: ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']
      • Mô tả: Các thư mục bị loại trừ khỏi việc tìm kiếm nội dung.
      • Lưu ý: Cài đặt này hiện chưa được sử dụng, nhưng dự kiến sẽ được triển khai trong tương lai.
    • formatCommand:

      • Kiểu: string
      • Mặc định: undefined
      • Mô tả: Lệnh để định dạng nội dung. Khi Intlayer ghi các tệp .content của bạn trên máy cục bộ, lệnh này sẽ được sử dụng để định dạng nội dung.
      • Ví dụ: 'npx prettier --write "{{file}}" --log-level silent' Sử dụng Prettier
      • Ví dụ: 'npx biome format "{{file}}" --write --log-level none' Sử dụng Biome
      • Ví dụ: 'npx eslint --fix "{{file}}" --quiet' Sử dụng ESLint
      • Lưu ý: Intlayer sẽ thay thế {{file}} bằng đường dẫn của tệp cần định dạng.
      • Lưu ý: Nếu không được thiết lập, Intlayer sẽ cố gắng tự động phát hiện lệnh định dạng. Bằng cách thử giải quyết các lệnh sau: prettier, biome, eslint.

    Cấu hình Từ điển

    Các cài đặt kiểm soát hoạt động của từ điển, bao gồm hành vi tự động điền và tạo nội dung.

    Cấu hình từ điển này phục vụ hai mục đích chính:

    1. Giá trị Mặc định: Định nghĩa các giá trị mặc định khi tạo các tệp khai báo nội dung
    2. Hành vi Dự phòng: Cung cấp các giá trị dự phòng khi các trường cụ thể không được định nghĩa, cho phép bạn định nghĩa hành vi hoạt động của từ điển trên toàn cục

    Để biết thêm thông tin về các tệp khai báo nội dung và cách các giá trị cấu hình được áp dụng, xem Tài liệu Tệp Nội dung.

    Thuộc tính

    • fill
    • description
    • locale
    • priority
    • live
    • title
    • tags
    • version

    Cấu hình Logger

    Các cài đặt kiểm soát logger, bao gồm tiền tố sử dụng.

    Thuộc tính

    • mode:

      • Kiểu: string
      • Mặc định: default
      • Mô tả: Chỉ định chế độ của logger.
      • Tùy chọn: default, verbose, disabled
      • Ví dụ: default
      • Lưu ý: Chế độ của logger. Chế độ verbose sẽ ghi lại nhiều thông tin hơn, nhưng có thể được sử dụng cho mục đích gỡ lỗi. Chế độ disabled sẽ tắt logger.
    • prefix:

      • Kiểu: string
      • Mặc định: '[intlayer] '
      • Mô tả: Tiền tố của logger.
      • Ví dụ: '[my custom prefix] '
      • Lưu ý: Tiền tố của logger.

    Cấu hình AI

    Các cài đặt kiểm soát các tính năng AI của Intlayer, bao gồm nhà cung cấp, mô hình và khóa API.

    Cấu hình này là tùy chọn nếu bạn đã đăng ký trên Bảng điều khiển Intlayer bằng khóa truy cập. Intlayer sẽ tự động quản lý giải pháp AI hiệu quả và tiết kiệm chi phí nhất cho nhu cầu của bạn. Sử dụng các tùy chọn mặc định đảm bảo khả năng bảo trì lâu dài tốt hơn khi Intlayer liên tục cập nhật để sử dụng các mô hình phù hợp nhất.

    Nếu bạn muốn sử dụng khóa API riêng hoặc mô hình cụ thể, bạn có thể định nghĩa cấu hình AI tùy chỉnh của mình. Cấu hình AI này sẽ được sử dụng toàn cục trong môi trường Intlayer của bạn. Các lệnh CLI sẽ sử dụng các cài đặt này làm mặc định cho các lệnh (ví dụ: fill), cũng như SDK, Visual Editor và CMS. Bạn có thể ghi đè các giá trị mặc định này cho các trường hợp sử dụng cụ thể bằng cách sử dụng các tham số lệnh.

    Intlayer hỗ trợ nhiều nhà cung cấp AI để tăng tính linh hoạt và lựa chọn. Các nhà cung cấp hiện được hỗ trợ bao gồm:

    • OpenAI (mặc định)
    • Anthropic Claude
    • Mistral AI
    • DeepSeek
    • Google Gemini
    • Meta Llama

    Thuộc tính

    • provider:

      • Kiểu: string
      • Mặc định: 'openai'
      • Mô tả: Nhà cung cấp được sử dụng cho các tính năng AI của Intlayer.
      • Tùy chọn: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini'
      • Ví dụ: 'anthropic'
      • Lưu ý: Các nhà cung cấp khác nhau có thể yêu cầu các khóa API khác nhau và có các mô hình giá khác nhau.
    • model:

      • Kiểu: string
      • Mặc định: Không có
      • Mô tả: Mô hình được sử dụng cho các tính năng AI của Intlayer.
      • Ví dụ: 'gpt-4o-2024-11-20'
      • Lưu ý: Mô hình cụ thể được sử dụng sẽ khác nhau tùy theo nhà cung cấp.
    • temperature:

      • Kiểu: number
      • Mặc định: Không có
      • Mô tả: Tham số temperature điều khiển độ ngẫu nhiên trong các phản hồi của AI.
      • Ví dụ: 0.1
      • Lưu ý: Temperature cao hơn sẽ làm AI sáng tạo hơn và ít dự đoán được hơn.
    • apiKey:

      • Kiểu: string
      • Mặc định: Không có
      • Mô tả: Khóa API của bạn cho nhà cung cấp đã chọn.
      • Ví dụ: process.env.OPENAI_API_KEY
      • Lưu ý: Quan trọng: Các khóa API cần được giữ bí mật và không được chia sẻ công khai. Vui lòng đảm bảo giữ chúng ở một vị trí an toàn, chẳng hạn như biến môi trường.
    • applicationContext:

      • Kiểu: string
      • Mặc định: Không có
      • Mô tả: Cung cấp bối cảnh bổ sung về ứng dụng của bạn cho mô hình AI, giúp nó tạo ra các bản dịch chính xác hơn và phù hợp với ngữ cảnh. Điều này có thể bao gồm thông tin về lĩnh vực ứng dụng, đối tượng mục tiêu, giọng điệu hoặc thuật ngữ cụ thể của bạn.

    Cấu hình Build

    Các thiết lập kiểm soát cách Intlayer tối ưu hóa và xây dựng tính quốc tế hóa của ứng dụng bạn.

    Các tùy chọn build áp dụng cho các plugin @intlayer/babel@intlayer/swc.

    Ở chế độ phát triển, Intlayer sử dụng các import tĩnh cho từ điển để đơn giản hóa trải nghiệm phát triển.
    Khi được tối ưu hóa, Intlayer sẽ thay thế các lệnh gọi từ điển để tối ưu hóa việc chia nhỏ, do đó gói cuối cùng chỉ nhập các từ điển thực sự được sử dụng.

    Thuộc tính

    • optimize:

      • Kiểu: boolean
      • Mặc định: process.env.NODE_ENV === 'production'
      • Mô tả: Điều khiển việc có nên tối ưu hóa quá trình build hay không.
      • Ví dụ: true
      • Lưu ý: Khi được bật, Intlayer sẽ thay thế tất cả các lệnh gọi từ điển để tối ưu hóa việc chia nhỏ. Bằng cách đó, gói cuối cùng sẽ chỉ nhập các từ điển được sử dụng. Tất cả các import sẽ vẫn giữ ở dạng import tĩnh để tránh xử lý bất đồng bộ khi tải các từ điển.
      • Lưu ý: Intlayer sẽ thay thế tất cả các lệnh gọi useIntlayer bằng chế độ được định nghĩa trong tùy chọn importModegetIntlayer bằng getDictionary.
      • Lưu ý: Tùy chọn này dựa vào các plugin @intlayer/babel@intlayer/swc.
      • Lưu ý: Đảm bảo tất cả các khóa được khai báo tĩnh trong các lệnh gọi useIntlayer. Ví dụ: useIntlayer('navbar').
    • importMode:
      • Kiểu: 'static' | 'dynamic' | 'live'
      • Mặc định: 'static'
      • Mô tả: Điều khiển cách các từ điển được nhập.
      • Ví dụ: 'dynamic'
      • Lưu ý: Các chế độ có sẵn:
        • "static": Các từ điển được nhập một cách tĩnh. Thay thế useIntlayer bằng useDictionary.
        • "dynamic": Các từ điển được nhập động sử dụng Suspense. Thay thế useIntlayer bằng useDictionaryDynamic.
        • "live": Các từ điển được lấy động bằng cách sử dụng API đồng bộ trực tiếp (live sync API). Thay thế useIntlayer bằng useDictionaryDynamic.
      • Lưu ý: Việc nhập động dựa vào Suspense và có thể ảnh hưởng nhẹ đến hiệu suất render.
      • Lưu ý: Nếu tắt, tất cả các locale sẽ được tải cùng một lúc, ngay cả khi chúng không được sử dụng.
      • Lưu ý: Tùy chọn này dựa vào các plugin @intlayer/babel@intlayer/swc.
      • Lưu ý: Đảm bảo tất cả các khóa được khai báo tĩnh trong các lệnh gọi useIntlayer. Ví dụ: useIntlayer('navbar').
      • Lưu ý: Tùy chọn này sẽ bị bỏ qua nếu optimize bị tắt.
      • Lưu ý: Nếu được đặt thành "live", chỉ những từ điển bao gồm nội dung từ xa và được đánh dấu là "live" mới được chuyển đổi sang chế độ live. Các từ điển khác sẽ được nhập động dưới dạng chế độ "dynamic" để tối ưu số lượng truy vấn fetch và hiệu suất tải.
      • Lưu ý: Chế độ live sẽ sử dụng live sync API để lấy các từ điển. Nếu cuộc gọi API thất bại, các từ điển sẽ được nhập động dưới dạng chế độ "dynamic".
      • Lưu ý: Tùy chọn này sẽ không ảnh hưởng đến các hàm getIntlayer, getDictionary, useDictionary, useDictionaryAsyncuseDictionaryDynamic.
    • outputFormat:

      • Kiểu: 'esm' | 'cjs'
      • Mặc định: 'esm'
      • Mô tả: Điều khiển định dạng đầu ra của các từ điển.
      • Ví dụ: 'cjs'
      • Lưu ý: Định dạng đầu ra của các từ điển.
    • traversePattern:

      • Kiểu: string[]
      • Mặc định: ['**/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx}', '!**/node_modules/**']
      • Mô tả: Các mẫu định nghĩa những tệp nào sẽ được duyệt trong quá trình tối ưu hóa.
        • Ví dụ: ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']
      • Lưu ý: Sử dụng để giới hạn tối ưu hóa chỉ cho các tệp mã liên quan và cải thiện hiệu suất xây dựng.
      • Lưu ý: Tùy chọn này sẽ bị bỏ qua nếu optimize bị vô hiệu hóa.
      • Lưu ý: Sử dụng mẫu glob.
    Nhận thông báo về các bản phát hành sắp tới của Intlayer