transduck
v0.6.8
Published
AI-native translation tool using source text as keys
Readme
TransDuck
AI-powered translation for apps and websites. Fast. Cheap. No keys to manage.
TransDuck translates your app's strings using AI, then caches them locally in LMDB so you never pay for the same translation twice. No translation files. No key naming. No sync headaches.
import { initialize, setLanguage, ait, aitPlural } from 'transduck';
await initialize();
setLanguage('DE');
await ait('Welcome to Mallorca'); // → "Willkommen auf Mallorca"
await ait('Hello {name}', undefined, { name: 'Tim' }); // → "Hallo Tim"
await aitPlural('{count} night', '{count} nights', 7); // → "7 Nächte"Why TransDuck?
- No keys to manage — your source text is the key
- No translation files — translations live in a single in-memory database file
- Translate once, pay once — cached lookups take ~0.015ms, zero API costs after first call
- AI that understands context — project and per-string context for accurate translations
- Pluralization that works everywhere — handles Russian (4 forms), Arabic (6 forms) automatically
- Built for vibe coding — AI coding tools read the docs and wrap strings with
ait()across your project - Dirt cheap — 1,000 strings x 5 languages costs about $0.10 with gpt-4.1-mini
Quick Start
npm install -g transduck # CLI — works everywhere
npm install transduck # Per-project — for importing in your code
transduck initReact / Next.js
TransDuck includes a first-party React integration with synchronous t() for client components:
// app/api/translations/route.ts (one-time setup)
import { createTransDuckHandler } from 'transduck';
export const POST = createTransDuckHandler();// layout.tsx
import { TransDuckProvider } from 'transduck/react';
<TransDuckProvider language="DE">
<App />
</TransDuckProvider>// Any client component
'use client';
import { t, tPlural, useTransDuck } from 'transduck/react';
function Dashboard() {
useTransDuck();
return (
<h1>{t("Dashboard")}</h1>
<p>{tPlural("{count} property", "{count} properties", 5)}</p>
);
}CLI
transduck scan --warm --langs DE,ES,IT # scan codebase and translate everything
transduck translate "Hello" --to DE # translate a single string
transduck stats # check your translation databaseAlso available for Python
pip install transduckWorks with Django, Flask, FastAPI, and Jinja. Same LMDB database format — share translations between Python and JS.
