Đặt câu hỏi và nhận tóm tắt tài liệu bằng cách tham chiếu trang này và nhà cung cấp AI bạn chọn
Bằng cách tích hợp Intlayer MCP Server vào trợ lý AI ưa thích của bạn, bạn có thể truy xuất toàn bộ tài liệu trực tiếp từ ChatGPT, DeepSeek, Cursor, VSCode, v.v.
Xem tài liệu MCP ServerLịch sử phiên bản
- Cập nhật tài liệuv5.5.1119/11/2025
- Khởi tạo lịch sửv5.5.1029/6/2025
Nội dung của trang này đã được dịch bằng AI.
Xem phiên bản mới nhất của nội dung gốc bằng tiếng AnhNếu bạn có ý tưởng để cải thiện tài liệu này, vui lòng đóng góp bằng cách gửi pull request trên GitHub.
Liên kết GitHub tới tài liệuSao chép Markdown của tài liệu vào bộ nhớ tạm
Dịch trang web Vite và Svelte của bạn bằng Intlayer | Quốc tế hóa (i18n)
Mục lục
Intlayer là gì?
Intlayer là một thư viện quốc tế hóa (i18n) mã nguồn mở sáng tạo, được thiết kế để đơn giản hóa việc hỗ trợ đa ngôn ngữ trong các ứng dụng web hiện đại.
Với Intlayer, bạn có thể:
- Dễ dàng quản lý bản dịch bằng cách sử dụng các từ điển khai báo ở cấp độ component.
- Địa phương hóa động metadata, các tuyến đường và nội dung.
- Đảm bảo hỗ trợ TypeScript với các kiểu được tạo tự động, cải thiện tự động hoàn thành và phát hiện lỗi.
- Tận hưởng các tính năng nâng cao, như phát hiện và chuyển đổi ngôn ngữ động.
Hướng Dẫn Từng Bước Để Cài Đặt Intlayer Trong Ứng Dụng Vite và Svelte
Xem Mẫu Ứng Dụng trên GitHub.
Bước 1: Cài Đặt Các Phụ Thuộc
Cài đặt các gói cần thiết bằng npm:
npm install intlayer svelte-intlayernpm install vite-intlayer --save-devintlayer
Gói cốt lõi cung cấp các công cụ quốc tế hóa cho quản lý cấu hình, dịch thuật, khai báo nội dung, biên dịch lại, và các lệnh CLI.
svelte-intlayer Gói tích hợp Intlayer với ứng dụng Svelte. Nó cung cấp các context providers và hooks cho việc quốc tế hóa trong Svelte.
vite-intlayer Bao gồm plugin Vite để tích hợp Intlayer với Vite bundler, cũng như middleware để phát hiện ngôn ngữ ưu tiên của người dùng, quản lý cookie và xử lý chuyển hướng URL.
Bước 2: Cấu hình dự án của bạn
Tạo một file cấu hình để thiết lập các ngôn ngữ cho ứng dụng của bạn:
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Các ngôn ngữ khác của bạn ], defaultLocale: Locales.ENGLISH, },};export default config;Thông qua file cấu hình này, bạn có thể thiết lập các URL có địa phương hóa, chuyển hướng middleware, tên cookie, vị trí và phần mở rộng của các khai báo nội dung, tắt các log của Intlayer trên console, và nhiều hơn nữa. Để xem danh sách đầy đủ các tham số có sẵn, hãy tham khảo tài liệu cấu hình.
Bước 3: Tích hợp Intlayer vào cấu hình Vite của bạn
Thêm plugin intlayer vào cấu hình của bạn.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { defineConfig } from "vite";import { svelte } from "@sveltejs/vite-plugin-svelte";import { intlayer } from "vite-intlayer";// https://vitejs.dev/config/export default defineConfig({ plugins: [svelte(), intlayer()],});Plugin intlayer() của Vite được sử dụng để tích hợp Intlayer với Vite. Nó đảm bảo việc xây dựng các file khai báo nội dung và giám sát chúng trong chế độ phát triển. Nó định nghĩa các biến môi trường Intlayer trong ứng dụng Vite. Ngoài ra, nó cung cấp các alias để tối ưu hiệu năng.
Bước 4: Khai báo Nội dung của bạn
Tạo và quản lý các khai báo nội dung để lưu trữ các bản dịch:
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { t, type Dictionary } from "intlayer";const appContent = { key: "app", content: { title: t({ en: "Hello World", fr: "Bonjour le monde", es: "Hola mundo", }), },} satisfies Dictionary;export default appContent;Các khai báo nội dung của bạn có thể được định nghĩa ở bất kỳ đâu trong ứng dụng của bạn miễn là chúng được đưa vào thư mục contentDir (mặc định là ./src). Và phù hợp với phần mở rộng tệp khai báo nội dung (mặc định là .content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}).
Để biết thêm chi tiết, tham khảo tài liệu khai báo nội dung.
Bước 5: Sử dụng Intlayer trong mã của bạn
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
<script> import { useIntlayer } from "svelte-intlayer"; const content = useIntlayer("app");</script><div><!-- Hiển thị nội dung như nội dung đơn giản --><h1>{$content.title}</h1><!-- Để hiển thị nội dung có thể chỉnh sửa bằng trình soạn thảo --><h1><svelte:component this={$content.title} /></h1><!-- Để hiển thị nội dung dưới dạng chuỗi --><div aria-label={$content.title.value}></div>(Tùy chọn) Bước 6: Thay đổi ngôn ngữ của nội dung
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
<script lang="ts">import { getLocaleName } from 'intlayer';import { useLocale } from 'svelte-intlayer';// Lấy thông tin locale và hàm setLocaleconst { locale, availableLocales, setLocale } = useLocale();// Xử lý thay đổi localeconst changeLocale = (event: Event) => { const target = event.target as HTMLSelectElement; const newLocale = target.value; setLocale(newLocale);};</script><div> <select value={$locale} on:change={changeLocale}> {#each availableLocales ?? [] as loc} <option value={loc}> {getLocaleName(loc)} </option> {/each} </select></div>(Tùy chọn) Bước 7: Hiển thị Markdown
Intlayer hỗ trợ hiển thị nội dung Markdown trực tiếp trong ứng dụng Svelte của bạn. Theo mặc định, Markdown được xử lý như văn bản thuần túy. Để chuyển đổi Markdown thành HTML phong phú, bạn có thể tích hợp @humanspeak/svelte-markdown hoặc một trình phân tích markdown khác.
Để xem cách khai báo nội dung markdown sử dụng gói intlayer, xem tài liệu markdown doc.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
<script> import { setIntlayerMarkdown } from "svelte-intlayer"; setIntlayerMarkdown((markdown) => // hiển thị nội dung markdown dưới dạng chuỗi return markdown; );</script><h1>{$content.markdownContent}</h1>Bạn cũng có thể truy cập dữ liệu front-matter của markdown bằng cách sử dụng thuộc tính content.markdownContent.metadata.xxx.
(Tùy chọn) Bước 8: Thiết lập trình chỉnh sửa intlayer / CMS
Để thiết lập trình chỉnh sửa intlayer, bạn phải làm theo tài liệu trình chỉnh sửa intlayer.
Để thiết lập CMS intlayer, bạn phải làm theo tài liệu CMS intlayer.
Song song đó, trong ứng dụng Svelte của bạn, bạn phải thêm dòng sau vào một layout, hoặc tại gốc của ứng dụng:
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { useIntlayerEditor } from "svelte-intlayer";useIntlayerEditor();(Tùy chọn) Bước 7: Thêm định tuyến có bản địa hóa vào ứng dụng của bạn
Để xử lý định tuyến có bản địa hóa trong ứng dụng Svelte của bạn, bạn có thể sử dụng svelte-spa-router cùng với localeFlatMap của Intlayer để tạo các tuyến đường cho từng ngôn ngữ.
Trước tiên, cài đặt svelte-spa-router:
npm install svelte-spa-routerSau đó, tạo một file Router.svelte để định nghĩa các tuyến đường của bạn:
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
<script lang="ts">import { localeFlatMap } from "intlayer";import Router from "svelte-spa-router";import { wrap } from "svelte-spa-router/wrap";import App from "./App.svelte";const routes = Object.fromEntries( localeFlatMap(({locale, urlPrefix}) => [ [ urlPrefix || '/', wrap({ component: App as any, props: { locale, }, }), ], ]));</script><Router {routes} />Cập nhật file main.ts của bạn để mount component Router thay vì App:
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { mount } from "svelte";import Router from "./Router.svelte";const app = mount(Router, { target: document.getElementById("app")!,});export default app;Cuối cùng, cập nhật App.svelte của bạn để nhận prop locale và sử dụng nó với useIntlayer:
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
<script lang="ts">import type { Locale } from 'intlayer';import { useIntlayer } from 'svelte-intlayer';import Counter from './lib/Counter.svelte';import LocaleSwitcher từ './lib/LocaleSwitcher.svelte';export let locale: Locale;$: content = useIntlayer('app', locale);</script><main> <div class="locale-switcher-container"> <LocaleSwitcher currentLocale={locale} /> </div> <!-- ... phần còn lại của ứng dụng của bạn ... --></main>Cấu hình Routing phía Server (Tùy chọn)
Song song với đó, bạn cũng có thể sử dụng intlayerProxy để thêm routing phía server cho ứng dụng của bạn. Plugin này sẽ tự động phát hiện locale hiện tại dựa trên URL và thiết lập cookie locale phù hợp. Nếu không có locale nào được chỉ định, plugin sẽ xác định locale phù hợp nhất dựa trên sở thích ngôn ngữ trình duyệt của người dùng. Nếu không phát hiện được locale nào, nó sẽ chuyển hướng đến locale mặc định.
Lưu ý rằng để sử dụng intlayerProxy trong môi trường production, bạn cần chuyển gói vite-intlayer từ devDependencies sang dependencies.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { defineConfig } from "vite";import { svelte } from "@sveltejs/vite-plugin-svelte";import { intlayer, intlayerProxy } from "vite-intlayer";// https://vitejs.dev/config/export default defineConfig({ plugins: [svelte(), intlayer(), intlayerProxy()],});(Tùy chọn) Bước 8: Thay đổi URL khi thay đổi ngôn ngữ
Để cho phép người dùng chuyển đổi ngôn ngữ và cập nhật URL tương ứng, bạn có thể tạo một component LocaleSwitcher. Component này sẽ sử dụng getLocalizedUrl từ intlayer và push từ svelte-spa-router.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
<script lang="ts">import { getLocaleName, getLocalizedUrl } from "intlayer";import { useLocale } from "svelte-intlayer";import { push } from "svelte-spa-router";export let currentLocale: string | undefined = undefined;// Lấy thông tin ngôn ngữconst { locale, availableLocales } = useLocale();// Xử lý thay đổi ngôn ngữconst changeLocale = (event: Event) => { const target = event.target as HTMLSelectElement; const newLocale = target.value; const currentUrl = window.location.pathname; const url = getLocalizedUrl( currentUrl, newLocale); push(url);};</script><div class="locale-switcher"> <select value={currentLocale ?? $locale} onchange={changeLocale}> {#each availableLocales ?? [] as loc} <option value={loc}> {getLocaleName(loc)} </option> {/each} </select></div>Cấu hình Git
Khuyến nghị nên bỏ qua các file được tạo ra bởi Intlayer. Điều này giúp bạn tránh việc commit chúng vào kho Git của mình.
Để làm điều này, bạn có thể thêm các chỉ dẫn sau vào file .gitignore của bạn:
# Bỏ qua các file được tạo ra bởi Intlayer.intlayerTiện ích mở rộng VS Code
Để cải thiện trải nghiệm phát triển với Intlayer, bạn có thể cài đặt Tiện ích mở rộng Intlayer cho VS Code chính thức.
Cài đặt từ VS Code Marketplace
Tiện ích mở rộng này cung cấp:
- Tự động hoàn thành cho các khóa dịch.
- Phát hiện lỗi thời gian thực cho các bản dịch bị thiếu.
- Xem trước nội dung dịch ngay trong dòng.
- Hành động nhanh để dễ dàng tạo và cập nhật các bản dịch.
Để biết thêm chi tiết về cách sử dụng tiện ích mở rộng, hãy tham khảo tài liệu Tiện ích mở rộng Intlayer cho VS Code.
Đi xa hơn
Tiến xa hơn
Để tiến xa hơn, bạn có thể triển khai trình chỉnh sửa trực quan hoặc tách nội dung của bạn ra bên ngoài bằng cách sử dụng CMS.