your code, not beside it.
Ship your entire stack in 93 languages. No translation files. Wrap strings in ct() and a single command extracts, translates, and deploys.
import { useCt, Trans } from "@ciao-tools/react";
function ProductPage() {
const ct = useCt();
return (
<div>
<h1>{ct("Do'konimizga xush kelibsiz")}</h1>
<Trans>
Bizning <b>saralangan</b> toʻplamni koʻrib chiqing
</Trans>
<p>{ct("{amount:currency:USD}", { amount: 49.99 })}</p>
</div>
);
}Welcome to our store
Browse our curated collection
$49.99
Works with your stack
Qanday ishlaydi
Global erishish uchun uchta buyruq
Tabiiy yozing
Sizning komponent matningiz haqiqat manbaidir. O'ylab topish uchun kalitlar, sinxronlashtirish uchun JSON yo'q. Shunchaki satrlarni ct() yoki <Trans> ga o'rang va qurishni davom eting.
function Hero() {
const ct = useCt();
return <h1>{ct("Xush kelibsiz")}</h1>;
}Ajratib oling & tarjima qiling
Bitta buyruqni ishga tushiring. Kod bazangizdagi har bir tarjima qilinadigan satr topiladi, tarjima motoriga yuboriladi va to'liq kontekst bilan qaytariladi. Bir xil so'z qayerda paydo bo'lishiga qarab har xil tarjimalarni oladi.
Tezda yetkazib bering
Tarjimalar global CDN-ga tushadi. To'rt qatlamli kesh yuklash vaqtini 50ms dan kamroq ushlab turadi. Joylashtirish quvuringizga tegmasdan tarjimalarni yangilang.
// Generated manifest — fully typed
export const ciaoManifest = {
languages: ["en", "es", "fr", "de"] as const,
cdnUrls: { es: "https://cdn...", fr: "https://cdn..." },
} as const;AI Tarjima Dvigateli
Ajratib oling. Tarjima qiling. Baholang.
Har bir satr uch bosqichli quvurdan o'tadi. Har bir til juftligi uchun eng yaxshi model avtomatik ravishda tanlanadi. Siz hech qachon provayderni sozlashingiz shart emas.
Kontekstni ajratib oling
Sizning komponent daraxtingizni o'qiydi va har bir satr nimani anglatishini tushunadi: tugma yorlig'i, sarlavha, qutqaruv ogohlantiruvi.
Tarjima qilish
Har bir til juftligi uchun eng yaxshi model sizning satrlaringizni tarjima qiladi. Kontekstga bog'liq, so'zma-so'z emas, ma'no-ma'no.
Sifatni baholang
Har bir tarjimani baholaydi va eng yuqori sifatli natijani tanlaydi. Siz hech qachon modelni tanlamaysiz.
Kontekst hamma narsani o'zgartiradi
Bir xil so'z turli joylarda turli narsalarni anglatadi. AI maqsadni tushunish uchun atrofidagi satrlarni o'qiydi. Qo'lda kontekst teglariga ehtiyoj yo'q.
<div>
<img src={product.image} />
<h3>{product.name}</h3>
<span>${product.price}</span>
<button onClick={saveToWishlist}>
❤️ {ct("Saqlash")}
</button>
</div><div>
<span className="text-4xl">🦆</span>
<p>{ct("O'rdak cho'kmoqda!")}</p>
<p>{ct("Qolgan vaqt:")} 00:03</p>
<button onClick={rescue}>
🛟 {ct("Saqlash")}
</button>
</div>Dasturchi tajribasi
Sizning kodingiz — tarjima katalogingiz
Kalit nomlarni o'ylab topish yo'q. Endi qidiruv yo'q t('homepage.hero.cta.button') u qaysi matnga mos kelishini aniqlash uchun. Sizning satrlaringiz o'qiladigan ingliz tilida, to'g'ri joyda ko'rsatiladi.
The <Trans> komponent ichki JSXni (havolalar, qalin, spanlar, har qanday element) atrofidagi matnni tarjima qilishda saqlaydi.
function CheckoutSummary({ user, items }) {
const ct = useCt();
return (
<div>
<h1>{ct("Xush kelibsiz, {name}!", { name: user.name })}</h1>
<p>{ct("Sizda {count} {count:plural:item:items} bor", { count: items.length })}</p>
<p>{ct("Jami: {amount:currency:USD}", { amount: 129.99 })}</p>
</div>
);
}Welcome back, Sarah!
You have 3 items
Total: $129.99
The difference
Your workflow, simplified
Traditional i18n
Ciao Tools
Never think about translations again.
Bosqichma-bosqich qabul qilish
Tarjimalaringiz allaqachon bormi? O'zingiz bor joydan boshlang.
Ciao Tools qayta yozishni talab qilmaydi. Mavjud tarjimalaringizni olib keling, bosqichma-bosqich qabul qiling va o'z tezligingizda migratsiya qiling.
import { CiaoProvider } from "@ciao-tools/react";
// Already have translations? Pass them directly
const translations = {
es: { "Salom": "Hola", "Ro'yxatdan o'tish": "Registrarse" },
fr: { "Salom": "Bonjour", "Ro'yxatdan o'tish": "S'inscrire" },
};
<CiaoProvider translations={translations}>
<App />
</CiaoProvider>// Migrate one component at a time
function OldPage() {
return <h1>{t("pages.old.title")}</h1>; // keep this
}
function NewPage() {
const ct = useCt();
return <h1>{ct("Yangi sahifaga xush kelibsiz")}</h1>; // start here
}Mavjud tarjimalaringizni saqlang
Mavjud tarjima xaritalaringizni to'g'ridan-to'g'ri CiaoProviderga uzating. Migratsiya talab etilmaydi.
Komponentma-komponent migratsiya qiling
Eski sahifalar mavjud kutubxonangizdan foydalanishda davom etadi. Yangi kod ct() va <Trans> dan foydalanadi. Ikkalasi yonma-yon ishlaydi.
Tayyor bo'lgach, eski tizimni olib tashlang
Hamma narsa Ciao Tools'dan foydalangandan so'ng, eski sozlamalaringizni tashlang. Tarjima kalitlaringiz endi oddiy ingliz tilida.
Features
The complete translation platform
From string extraction to CDN delivery and live updates.
Automatic extraction
OXC and Babel plugins scan your codebase and find every ct() call and <Trans> component. Your source code is the catalog.
Context-aware translation
AI translates with full component context. "Save" in a button vs. "Save" as rescue — it gets the difference.
Global CDN hosting
Translations are hosted on a global edge network and served from the nearest node. You never manage translation files.
Live hot updates
Fix a translation and it's live in seconds. No redeploy, no cache bust, no waiting for a release cycle.
Glossary & consistency
Define key terms once and enforce them across every language. Brand names and domain vocabulary stay consistent.
Full-stack, every framework
ct() works in React, React Native, Next.js server components, and Express. One API from mobile to server.
Prompt translation
ctPrompt() translates LLM system prompts while preserving template variables, JSON schemas, code blocks, and regex. Your AI agents speak every language.
Translation memory
Every translation is cached server-side. Re-syncs only translate new or changed strings, saving time and cost.
Multilingual SEO
Hreflang links, canonical URLs, og:locale tags, and XML sitemaps. CiaoHead handles it at runtime, or generate a sitemap from the CLI.
App store translations
Translate App Store and Play Store metadata with character limit validation. Names, descriptions, keywords, and release notes.
ICU MessageFormat
Plurals, ordinals, currency, dates, numbers, and percentages. Full locale-aware formatting via the ICU standard.
Fallback chains
es-MX falls back to es, then to en. Four caching layers ensure translations are always available, even offline.
Ishlash
Odatiy tez, tasodif emas
Live demo
One codebase, every language
Click a language. Text, prices, dates, and plurals all update, formatted correctly for each locale.
Handcrafted Ceramic Mug
$34.99Artisan-made with natural glazes. Perfect for your morning ritual.
Erta kirish
Birinchi bo'ling
Ciao Tools'ni erta foydalanuvchilarning kichik guruhiga ochamiz. Kutish ro'yxatiga qo'shiling, joyingiz tayyor bo'lgach, biz siz bilan bog'lanamiz.
Bu sayt reCAPTCHA va Google tomonidan himoyalangan Maxfiylik siyosati va Xizmat ko'rsatish shartlari qo'llaniladi.