เริ่มต้นใช้งานอย่างรวดเร็ว
แปลไฟล์ locale แรกของคุณภายใน 60 วินาที
1. ตั้งค่าไฟล์ Locale ของคุณ
สร้างไฟล์ locale ต้นทาง Rosetta รองรับ JSON, TOML และ YAML:
{
"hero": {
"title": "Welcome to our platform",
"subtitle": "Build something amazing"
},
"nav": {
"home": "Home",
"about": "About",
"contact": "Contact"
}
}
2. ตั้งค่า API Key ของคุณ
เลือกผู้ให้บริการและตั้งค่าคีย์:
# Option A: OpenRouter (200+ models, recommended)
export OPENROUTER_API_KEY=sk-or-v1-...
# Option B: Gemini (free tier — zero cost to start)
export GEMINI_API_KEY=AI...
รับคีย์ Gemini ฟรีได้ที่ aistudio.google.com/apikey รับคีย์ OpenRouter ได้ที่ openrouter.ai
3. รัน Sync
npx i18n-rosetta sync
:::tip ใช้ Gemini อยู่ใช่ไหม?
หากคุณเลือกตัวเลือก B (Gemini) ให้เพิ่ม --method gemini:
npx i18n-rosetta sync --method gemini
:::
Rosetta จะทำการ:
- ตรวจหา
locales/en.jsonว่าเป็นไฟล์ต้นทางโดยอัตโนมัติ - ค้นหา (หรือแจ้งให้ระบุ) ภาษาปลายทาง
- แปลคีย์ทั้งหมด
- เขียนไฟล์
locales/fr.json,locales/ja.jsonฯลฯ - สร้าง
.i18n-rosetta.lockเพื่อติดตามสิ่งที่ได้รับการแปลไปแล้ว
4. ตรวจสอบผลลัพธ์
cat locales/fr.json
{
"hero": {
"title": "Bienvenue sur notre plateforme",
"subtitle": "Construisez quelque chose d'incroyable"
},
"nav": {
"home": "Accueil",
"about": "À propos",
"contact": "Contact"
}
}
จะเกิดอะไรขึ้นต่อไป?
เมื่อคุณเปลี่ยนแปลงสตริงต้นทาง Rosetta จะตรวจจับการเปลี่ยนแปลงผ่านการติดตาม SHA-256 hash และจะแปลเฉพาะคีย์นั้นใหม่ในการรัน Sync ครั้งถัดไป:
{
"hero": {
"title": "Welcome to Acme Platform", // ← changed
"subtitle": "Build something amazing" // ← unchanged, skipped
}
}
npx i18n-rosetta sync
# Only "hero.title" is re-translated across all locales
ทางเลือกเพิ่มเติม: สร้างไฟล์ Config
สำหรับการควบคุมที่มากขึ้น ให้สร้างไฟล์ config:
npx i18n-rosetta init # guided wizard
npx i18n-rosetta init --yes --langs fr,de,ja # quick setup with specific targets
วิซาร์ดแนะนำจะพาคุณไปดู register presets ของแต่ละภาษา — ซึ่งเป็นคำสั่งกำหนดโทนเสียง/ระดับความเป็นทางการที่สร้างไว้ล่วงหน้าและปรับแต่งให้เข้ากับระบบภาษาของภาษานั้นๆ ภาษาฝรั่งเศสมีพรีเซ็ต T-V (vouvoiement เทียบกับ tutoiement) ภาษาเกาหลีมีระดับการพูด (해요체 เทียบกับ 합쇼체 เทียบกับ 해체) ภาษาญี่ปุ่นมีตัวเลือก keigo (です/ます เทียบกับ 丁寧語)
หรือสร้าง config ด้วยตนเองโดยใช้คีย์พรีเซ็ต:
{
"version": 3,
"inputLocale": "en",
"localesDir": "./locales",
"languages": {
"fr": "casual-tu",
"ko": "polite-haeyo",
"ja": "polite"
},
"model": "google/gemini-2.5-flash"
}
รัน npx i18n-rosetta init เพื่อเรียกดูพรีเซ็ตที่มีให้ใช้งานสำหรับแต่ละภาษา
ทางเลือกเพิ่มเติม: Watch Mode
แปลภาษาอัตโนมัติเมื่อไฟล์ต้นทางของคุณมีการเปลี่ยนแปลง:
npx i18n-rosetta watch
ขั้นตอนต่อไป
- Configuration — ข้อมูลอ้างอิง config ฉบับเต็ม
- Translation Methods — เลือกวิธีการแปลที่เหมาะสม
- Framework Integration — Hugo, next-intl, react-i18next
- CI/CD — ทำให้การแปลเป็นแบบอัตโนมัติใน pipeline ของคุณ