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("Gabaa keenyaatti baga dhuftan")}</h1>
<Trans>
Kuusaa <b>qopheessine</b> keessa daawwadhaa
</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
Akkamitti hojjeta
Ajaja sadii hanga guututti
Uumamaan barreessi
Barruun komponentii keessanii maddeen dhugaa. Keys hin argattan, JSON hin sync godhattan. Jecha ct() keessa galchaa itti fufaa.
function Hero() {
const ct = useCt();
return <h1>{ct("Baga deebitan")}</h1>;
}Baasuu & hiikuu
Ajaja tokko oofaa. Jechi hiikamuu danda'u code keessatti argama, hiikkaatti erga hiika guutuun deebi'a. Jechi tokko iddoo addaatti hiika adda qaba.
Hatattamaan ergii
Hiikni CDN guutuu keessatti argama. Caching'n afur yeroo 50ms gadi eega. Hiikkaa haaromsaa pipeline gubuu malee.
// Generated manifest — fully typed
export const ciaoManifest = {
languages: ["en", "es", "fr", "de"] as const,
cdnUrls: { es: "https://cdn...", fr: "https://cdn..." },
} as const;Injineriin Hiika AI
Baasuu. Hiikuu. Madaaluu.
Jechi hundi sadarkaa sadii keessa dabarti. Model gaariin afaan hundaaf ofumaan filatama. Dhaabbata hin filattan.
Haala baasuu
Mukaa komponentii keessanii dubbisa hiika jecha hunda ni hubata: button label, mata duree, beeksisa baraaruu.
Hiikuu
Modela gaarii afaan hundaaf jecha keessan hiiku. Haalaan beeka, hiikaan hiika malee jechaan jecha miti.
Qulqullina madaaluu
Hiika hunda galmeessa bu'aa olaanaa filata. Model hin filattan.
Haalli waan hunda jijjiira
Jechi tokko iddoo adda addaatti hiika adda qaba. AI jecha naannoo dubbisa fedhii hubata. Tags haalaa hin barbaachisu.
<div>
<img src={product.image} />
<h3>{product.name}</h3>
<span>${product.price}</span>
<button onClick={saveToWishlist}>
❤️ {ct("Olkaa'i")}
</button>
</div><div>
<span className="text-4xl">🦆</span>
<p>{ct("Duck tokko lixa jira!")}</p>
<p>{ct("Yeroo hafe:")} 00:03</p>
<button onClick={rescue}>
🛟 {ct("Olkaa'i")}
</button>
</div>Muuxannoo Misoomsituu
Koodiin madda kee galmee hiikkaa keeti
Maqaa furtuu uumuun hin jiru. Irra deebi'anii hin jiran t('homepage.hero.cta.button') qoodni isaa maal akka ta'e baruuf. Jechoonnikee Ingiliffa dubbisuuf salphaa dha bakka dhiyaatanitti.
Kan <Trans> componentiin JSX isa walitti hidhame (hidhaa, bold, spans, element kamiyyuu) ni eega osoo barruu isaanii naannoo isaanii hiikuu.
function CheckoutSummary({ user, items }) {
const ct = useCt();
return (
<div>
<h1>{ct("Baga nagaan deebite, {name}!", { name: user.name })}</h1>
<p>{ct("{count} {count:plural:item:meeshaa:meeshalee} qabda", { count: items.length })}</p>
<p>{ct("Waliigala: {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.
Simuddeessa olka'iinsaa
Hiikkaa dursee qabdaa? Bakka jirtutti jalqabi.
Ciao Tools irra deebiin barreessuu hin gaafatu. Hiikkaa kee isa duraanii fidi, olka'iinsaan fudhadhu, akkasumas ofii keetii ariitiin godaansi.
import { CiaoProvider } from "@ciao-tools/react";
// Already have translations? Pass them directly
const translations = {
es: { "Akkam": "Hola", "Galmaa'i": "Registrarse" },
fr: { "Akkam": "Bonjour", "Galmaa'i": "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("Fuula haaraatti baga nagaan dhuftan")}</h1>; // start here
}Hiikkaa kee isa duraanii eeggadhu
Kaartaa hiikkaa kee gara CiaoProvider tti dabarsi. Godaansisa hin barbaachisu.
Kutaalee kutaaleen godaansi
Fuulli durii laayibrarii kee isa duraanii fayyadamu. Koodiin haaraan ct() fi <Trans> fayyadama. Lamaanuu wal cinaa hojjetu.
Sirna moofaa yeroo qophaa'u balleessi
Ciao Tools yeroo hunda fayyadamnaan, setup kee isa duraanii gadi dhiisi. Furmaanni hiikkaa kee amma Ingilizii qulqulluudha.
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.
Raawwii
Ariitiidhaan akkaataa durti, tasa hin taane
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.
Argama jalqabaa
Duraa ta'i
Ciao Tools garee xinnoo fayyadamtoota jalqabaatiif banamaa jirra. Tarree eeggitii keessa galmaa'i yeroo bakki kee qophaa'u ni bilbilna.
Marsariitiin kun reCAPTCHA fi Google'n eegama Imaammata Iccitii fi Ulaagaalee Tajaajilaa hojiirra oolu.