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("Sveiki atvykę į mūsų parduotuvę")}</h1>
<Trans>
Naršykite mūsų <b>kuruojamą</b> kolekciją
</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
Kaip tai veikia
Trys komandos iki globalaus pasiekiamumo
Rašykite natūraliai
Jūsų komponentų tekstas yra tiesos šaltinis. Nereikia kurti raktų, sinchronizuoti JSON. Tiesiog apvyniokite tekstus ct() arba <Trans> ir toliau kurkite.
function Hero() {
const ct = useCt();
return <h1>{ct("Sveiki sugrįžę")}</h1>;
}Ištraukti ir versti
Vykdykite vieną komandą. Kiekviena išverčiama eilutė jūsų kode yra randama, išsiunčiama į vertimo sistemą ir grąžinama visiškai suprantant kontekstą. Tas pats žodis gauna skirtingus vertimus, atsižvelgiant į tai, kur jis pasirodo.
Pristatykite iškart
Vertimai patenka į globalų CDN. Keturi talpinimo lygiai palaiko įkrovimo laiką iki 50 ms. Atnaujinkite vertimus neliesdami savo diegimo proceso.
// Generated manifest — fully typed
export const ciaoManifest = {
languages: ["en", "es", "fr", "de"] as const,
cdnUrls: { es: "https://cdn...", fr: "https://cdn..." },
} as const;AI vertimo variklis
Ištraukti. Versti. Įvertinti.
Kiekvienas tekstas eina per trijų etapų procesą. Geriausias modelis kiekvienai kalbų porai parenkamas automatiškai. Jums niekada nereikia konfigūruoti teikėjo.
Ištraukti kontekstą
Nuskaito jūsų komponentų medį ir supranta, ką reiškia kiekviena eilutė: mygtuko etiketė, antraštė, pagalbos signalas.
Versti
Geriausias modelis kiekvienai kalbų porai verčia jūsų tekstus. Atsižvelgdamas į kontekstą, reikšmę po reikšmės, o ne žodis po žodžio.
Įvertinti kokybę
Įvertina kiekvieną vertimą ir parenka aukščiausios kokybės rezultatą. Jūs niekada nepasirenkate modelio.
Kontekstas keičia viską
Tas pats žodis skirtingose vietose reiškia skirtingus dalykus. AI nuskaito aplinkinius tekstus, kad suprastų ketinimą. Jokių rankinių konteksto žymų nereikia.
<div>
<img src={product.image} />
<h3>{product.name}</h3>
<span>${product.price}</span>
<button onClick={saveToWishlist}>
❤️ {ct("Išsaugoti")}
</button>
</div><div>
<span className="text-4xl">🦆</span>
<p>{ct("Antis skęsta!")}</p>
<p>{ct("Liko laiko:")} 00:03</p>
<button onClick={rescue}>
🛟 {ct("Išsaugoti")}
</button>
</div>Kūrėjo patirtis
Jūsų šaltinio kodas yra jūsų vertimų katalogas
Nebereikia kurti raktų pavadinimų. Nebereikia ieškoti t('homepage.hero.cta.button') norint išsiaiškinti, į kokį tekstą jis nurodo. Jūsų eilutės yra įskaitoma anglų kalba tiesiai ten, kur jos atvaizduojamos.
Komponentas <Trans> komponentas išsaugo įdėtą JSX (nuorodos, paryškinimas, span, bet kuris elementas) verčiant tekstą aplink juos.
function CheckoutSummary({ user, items }) {
const ct = useCt();
return (
<div>
<h1>{ct("Sveiki sugrįžę, {name}!", { name: user.name })}</h1>
<p>{ct("Jūs turite {count} {count:plural:item:items}", { count: items.length })}</p>
<p>{ct("Iš viso: {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.
Laipsniškas įsisavinimas
Jau turite vertimus? Pradėkite ten, kur esate.
Ciao Tools nereikalauja perrašymo. Atsineškite esamus vertimus, diekite palaipsniui ir migruokite savo tempu.
import { CiaoProvider } from "@ciao-tools/react";
// Already have translations? Pass them directly
const translations = {
es: { "Sveiki": "Hola", "Registruotis": "Registrarse" },
fr: { "Sveiki": "Bonjour", "Registruotis": "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("Sveiki atvykę į naują puslapį")}</h1>; // start here
}Išsaugokite esamus vertimus
Perkelkite esamus vertimų žemėlapius tiesiai į CiaoProvider. Migracija nereikalinga.
Migruokite komponentą po komponento
Seni puslapiai naudoja esamą biblioteką. Naujas kodas naudoja ct() ir <Trans>. Abu veikia kartu.
Pašalinkite seną sistemą, kai būsite pasiruošę
Kai viskas naudos Ciao Tools, atsisakykite senos sąrankos. Jūsų vertimų raktai dabar yra paprasta anglų kalba.
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.
Našumas
Greitis – ne atsitiktinumas
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.
Ankstyva prieiga
Būkite pirmas eilėje
Atidarome „Ciao Tools“ mažai grupei ankstyvųjų naudotojų. Prisijunkite prie laukiančiųjų sąrašo ir mes susisieksime, kai jūsų vieta bus paruošta.
Ši svetainė yra apsaugota reCAPTCHA ir „Google“ Privatumo politika ir Paslaugų teikimo sąlygos taikomos.