Ciao Tools
Closed Alpha — Join the waitlist
i18n that lives in
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.

ProductPage.tsx
import { useCt, Trans } from "@ciao-tools/react";

function ProductPage() {
  const ct = useCt();

  return (
    <div>
      <h1>{ct("به فروشگاه ما خوش آمدید")}</h1>
      <Trans>
        مجموعه <b>منتخب</b> ما را مرور کنید
      </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

TS

نحوه عملکرد

سه دستور برای دستیابی جهانی

01

طبیعی بنویسید

متن کامپوننت شما منبع حقیقت است. بدون کلید برای اختراع، بدون JSON برای همگام‌سازی. فقط رشته‌ها را در ct() یا <Trans> بپیچید و به ساخت ادامه دهید.

function Hero() {
  const ct = useCt();
  return <h1>{ct("خوش آمدید")}</h1>;
}
02

استخراج & ترجمه

یک دستور را اجرا کنید. هر رشته قابل ترجمه در پایگاه کد شما پیدا می‌شود، به موتور ترجمه ارسال می‌شود و با آگاهی کامل از متن برگردانده می‌شود. یک کلمه یکسان بسته به جایی که ظاهر می‌شود، ترجمه‌های مختلفی دریافت می‌کند.

Terminal
03

فورا منتشر کنید

ترجمه‌ها روی یک CDN جهانی قرار می‌گیرند. چهار لایه کش‌بندی زمان بارگذاری را زیر 50 میلی‌ثانیه نگه می‌دارند. ترجمه‌ها را بدون دست زدن به خط لوله استقرار خود به‌روز کنید.

// Generated manifest — fully typed
export const ciaoManifest = {
  languages: ["en", "es", "fr", "de"] as const,
  cdnUrls: { es: "https://cdn...", fr: "https://cdn..." },
} as const;

موتور ترجمه هوش مصنوعی

استخراج. ترجمه. ارزیابی.

هر رشته از طریق یک خط لوله سه‌مرحله‌ای جریان می‌یابد. بهترین مدل برای هر جفت زبان به‌طور خودکار انتخاب می‌شود. شما هرگز یک ارائه‌دهنده را پیکربندی نمی‌کنید.

01

استخراج زمینه

درخت کامپوننت شما را می‌خواند و می‌فهمد که هر رشته به چه معناست: برچسب دکمه، عنوان، هشدار نجات.

Gemini 3 Flash
Claude Haiku 4.5
02

ترجمه

بهترین مدل برای هر جفت زبان رشته‌های شما را ترجمه می‌کند. آگاه از متن، معنا به معنا، نه کلمه به کلمه.

Claude Sonnet 5
Gemini 3 Flash
GPT-5.2
DeepSeek V3
Kimi K2.5
DeepL
03

ارزیابی کیفیت

هر ترجمه را امتیاز می‌دهد و بالاترین نتیجه کیفیت را انتخاب می‌کند. شما هرگز یک مدل را انتخاب نمی‌کنید.

Gemini 3.1 Pro
Kimi K2.5

زمینه همه‌چیز را تغییر می‌دهد

یک کلمه یکسان در مکان‌های مختلف معانی مختلفی دارد. هوش مصنوعی رشته‌های اطراف را می‌خواند تا هدف را درک کند. بدون نیاز به تگ‌های متنی دستی.

ProductCard.tsx
<div>
  <img src={product.image} />
  <h3>{product.name}</h3>
  <span>${product.price}</span>
  <button onClick={saveToWishlist}>
    ❤️ {ct("ذخیره")}
  </button>
</div>
ct("Save")"Guardar"(es) — to store, to keep
DuckRescue.tsx
<div>
  <span className="text-4xl">🦆</span>
  <p>{ct("یک اردک دارد غرق می‌شود!")}</p>
  <p>{ct("زمان باقی مانده:")} 00:03</p>
  <button onClick={rescue}>
    🛟 {ct("ذخیره")}
  </button>
</div>
ct("Save")"Rescatar"(es) — to rescue, to save a life

تجربه توسعه‌دهنده

کد منبع شما، کاتالوگ ترجمه شماست

دیگر خبری از اسامی کلیدی نیست. خبری از جستجو برای t('homepage.hero.cta.button') برای فهمیدن این که متن به چه چیزی اشاره دارد نیست. رشته‌های شما انگلیسی خوانا هستند، درست جایی که رندر می‌شوند.

کامپوننت <Trans> کامپوننت JSX تودرتو (لینک‌ها، پررنگ، بازه‌ها، هر عنصر) را هنگام ترجمه متن حفظ می‌کند.

function CheckoutSummary({ user, items }) {
  const ct = useCt();

  return (
    <div>
      <h1>{ct("خوش آمدی، {name}!", { name: user.name })}</h1>
      <p>{ct("شما {count} {count:plural:مورد:مورد} دارید", { count: items.length })}</p>
      <p>{ct("جمع: {amount:currency:USD}", { amount: 129.99 })}</p>
    </div>
  );
}
Output

Welcome back, Sarah!

You have 3 items

Total: $129.99

The difference

Your workflow, simplified

Traditional i18n

Write code
Create keys
Map strings
Send to translators
Wait
Receive files
Wire up
Deploy

Ciao Tools

Write code
Build
Ship

Never think about translations again.

پذیرش تدریجی

از قبل ترجمه دارید؟ از جایی که هستید شروع کنید.

ابزارهای Ciao نیاز به بازنویسی ندارند. ترجمه‌های موجود خود را بیاورید، به تدریج پذیرش کنید و با سرعت خودتان مهاجرت کنید.

Inline translations
import { CiaoProvider } from "@ciao-tools/react";

// Already have translations? Pass them directly
const translations = {
  es: { "سلام": "Hola", "ثبت نام": "Registrarse" },
  fr: { "سلام": "Bonjour", "ثبت نام": "S'inscrire" },
};

<CiaoProvider translations={translations}>
  <App />
</CiaoProvider>
Side-by-side migration
// 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("به صفحه جدید خوش آمدید")}</h1>; // start here
}
1

ترجمه‌های موجود خود را نگه دارید

نقشه‌های ترجمه فعلی خود را مستقیماً به CiaoProvider منتقل کنید. مهاجرت لازم نیست.

2

کامپوننت به کامپوننت مهاجرت کنید

صفحات قدیمی از کتابخانه موجود شما استفاده می‌کنند. کد جدید از ct() و <Trans> استفاده می‌کند. هر دو در کنار هم اجرا می‌شوند.

3

هنگامی که آماده بودید، سیستم قدیمی را حذف کنید

هنگامی که همه چیز از ابزارهای Ciao استفاده کرد، تنظیمات قدیمی خود را رها کنید. کلیدهای ترجمه شما اکنون انگلیسی ساده هستند.

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.

عملکرد

سریع از ابتدا، نه تصادفی

< 50ms
بارگیری از حافظه پنهان
93
زبان‌ها
0
فایل‌های کلید JSON
~5 min
زمان نصب
L1
Zustand + localStorage
L2
IndexedDB
L3
LRU درون حافظه
L4
CDN edge

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.99

Artisan-made with natural glazes. Perfect for your morning ritual.

In stock · February 3, 2026
3 items

دسترسی زودهنگام

در صف اول باشید

ما Ciao Tools را برای گروه کوچکی از کاربران اولیه باز می‌کنیم. به لیست انتظار بپیوندید تا به محض آماده شدن جایگاهتان، با شما تماس بگیریم.

این سایت توسط reCAPTCHA و Google محافظت می‌شود سیاست حفظ حریم خصوصی و شرایط خدمات اعمال می‌شود.