Chuyển đến nội dung chính

Tích hợp Framework

Hướng dẫn thiết lập từng bước cho champollion với các framework phổ biến.

Hugo (TOML / YAML / Markdown)

Cấu trúc dự án

Hugo sử dụng i18n/ cho các bản dịch chuỗi và content/ cho nội dung trang:

my-hugo-site/
├── i18n/
│ ├── en.toml ← source of truth
│ ├── fr.toml
│ └── ja.toml
├── content/
│ ├── posts/
│ │ ├── hello.md ← source (English)
│ │ ├── hello.fr.md
│ │ └── hello.ja.md
│ └── about.md
└── .env.local

Thiết lập

npm install --save-dev champollion
champollion.config.json
{
"version": 3,
"inputLocale": "en",
"localesDir": "./i18n",
"contentDir": "./content",
"format": "auto",
"languages": ["fr", "de", "ja", "es", "ko", "zh"]
}
champollion sync # sync i18n string files + content files
champollion sync --dry # preview changes without writing

Chi tiết dịch thuật nội dung

Front matter: Hỗ trợ cả dấu phân cách YAML (---) và TOML (+++). Dịch mặc định các trường title, description, summary, subtitle, caption, và linkTitle. Tất cả các trường khác (date, draft, tags, weight, slug, v.v.) đều được giữ nguyên. Tùy chỉnh bằng translatableFields trong cấu hình của bạn.

Bảo vệ khối (Block protection): Các khối mã (code block), Hugo shortcode, mã nội dòng (inline code) và HTML thô được tự động bảo vệ bằng các trình giữ chỗ sentinel Unicode. Chúng được giữ nguyên vẹn.

Quy ước đặt tên tệp: Tuân theo quy trình dịch theo tên tệp của Hugo:

  • my-post.mdmy-post.fr.md
  • my-post.en.mdmy-post.fr.md (loại bỏ hậu tố nguồn)

Bỏ qua tệp đã có: Các tệp đã dịch hiện có sẽ không bao giờ bị ghi đè. Hãy xóa tệp đích để bắt buộc dịch lại.

Dạng số nhiều

Các tệp locale TOML và YAML hỗ trợ các dạng số nhiều CLDR:

[items]
one = "{{ .Count }} item"
other = "{{ .Count }} items"

Được biểu diễn nội bộ dưới dạng items.oneitems.other để so sánh sự khác biệt (diffing), sau đó được tuần tự hóa lại thành định dạng phân đoạn chính xác khi ghi.