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("Velkommen til butikken")}</h1>
<Trans>
Gennemse vores <b>kuraterede</b> samling
</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
Sådan virker det
Tre kommandoer til global rækkevidde
Skriv naturligt
Din komponenttekst er sandhedskilden. Ingen nøgler at opfinde, ingen JSON at synkronisere. Bare omslut strenge i ct() eller <Trans> og fortsæt med at bygge.
function Hero() {
const ct = useCt();
return <h1>{ct("Velkommen tilbage")}</h1>;
}Udtræk & oversæt
Kør én kommando. Hver oversættelig streng i din kodebase findes, sendes til oversættelsesmotoren og returneres med fuld kontekstbevidsthed. Det samme ord får forskellige oversættelser afhængigt af, hvor det vises.
Send med det samme
Oversættelser lander på et globalt CDN. Fire lag af cachelagring holder indlæsningstiderne under 50 ms. Opdatér oversættelser uden at røre ved din implementeringspipeline.
// Generated manifest — fully typed
export const ciaoManifest = {
languages: ["en", "es", "fr", "de"] as const,
cdnUrls: { es: "https://cdn...", fr: "https://cdn..." },
} as const;AI-oversættelsesmotor
Udtræk. Oversæt. Evaluér.
Hver streng flyder gennem en tretrins pipeline. Den bedste model for hvert sprogpar vælges automatisk. Du konfigurerer aldrig en udbyder.
Udtræk kontekst
Læser dit komponenttræ og forstår, hvad hver streng betyder: en knapetiket, en overskrift, en redningsalarm.
Oversæt
Den bedste model for hvert sprogpar oversætter dine strenge. Kontekstbevidst, betydning for betydning, ikke ord for ord.
Evaluer kvalitet
Scorer hver oversættelse og vælger resultatet af højeste kvalitet. Du vælger aldrig en model.
Kontekst ændrer alt
Det samme ord betyder forskellige ting forskellige steder. AI'en læser omkringliggende strenge for at forstå hensigten. Ingen manuelle konteksttags er nødvendige.
<div>
<img src={product.image} />
<h3>{product.name}</h3>
<span>${product.price}</span>
<button onClick={saveToWishlist}>
❤️ {ct("Gem")}
</button>
</div><div>
<span className="text-4xl">🦆</span>
<p>{ct("En and drukner!")}</p>
<p>{ct("Tid tilbage:")} 00:03</p>
<button onClick={rescue}>
🛟 {ct("Gem")}
</button>
</div>Udvikleroplevelse
Din kode er dit oversættelseskatalog
Slut med at opfinde nøglenavne. Slut med at søge efter t('homepage.hero.cta.button') for at finde ud af, hvilken tekst den er knyttet til. Dine strenge er læseligt engelsk, lige hvor de gengives.
Komponenten <Trans> Komponenten bevarer nested JSX (links, fed, spans, ethvert element) og oversætter teksten omkring dem.
function CheckoutSummary({ user, items }) {
const ct = useCt();
return (
<div>
<h1>{ct("Velkommen tilbage, {name}!", { name: user.name })}</h1>
<p>{ct("Du har {count} {count:plural:item:items}", { count: items.length })}</p>
<p>{ct("Total: {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.
Gradvis indførelse
Har du allerede oversættelser? Start hvor du er.
Ciao Tools kræver ikke en omskrivning. Medbring dine eksisterende oversættelser, indfør gradvist, og migrér i dit eget tempo.
import { CiaoProvider } from "@ciao-tools/react";
// Already have translations? Pass them directly
const translations = {
es: { "Hej": "Hola", "Tilmeld dig": "Registrarse" },
fr: { "Hej": "Bonjour", "Tilmeld dig": "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("Velkommen til den nye side")}</h1>; // start here
}Behold eksisterende oversættelser
Send dine nuværende oversættelseskort direkte til CiaoProvider. Ingen migrering er nødvendig.
Migrer komponent for komponent
Gamle sider bruger dit eksisterende bibliotek. Ny kode bruger ct() og <Trans>. Begge kører side om side.
Fjern det gamle system, når du er klar
Når alt bruger Ciao Tools, så drop dit gamle setup. Dine oversættelsesnøgler er nu almindeligt engelsk.
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.
Ydeevne
Hurtig som standard, ikke tilfældigt
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.
Tidlig adgang
Vær først i køen
Vi åbner Ciao Tools for en lille gruppe af tidlige brugere. Bliv skrevet op, og vi kontakter dig, når din plads er klar.
Denne side er beskyttet af reCAPTCHA og Googles Privatlivspolitik og Servicevilkår gælder.