ai_smart_translate
AI-powered Flutter localization with automatic provider fallback, offline caching, and zero JSON maintenance.
Features
.trextension —'Hello'.tron any String- AI-powered — no JSON files, no manual translations
- Auto fallback — Gemini → Groq → OpenRouter → Mistral
- Offline cache — SQLite, translate once, use forever
- Dynamic content — translate API data on demand
- Free — all providers have generous free tiers
Quick Start
1. Add dependency
dependencies:
ai_smart_translate: ^1.0.0
2. Initialize in main.dart
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await AiSmartTranslate.init(
geminiKey: 'YOUR_GEMINI_KEY', // https://aistudio.google.com
groqKey: 'YOUR_GROQ_KEY', // optional fallback
openRouterKey: 'YOUR_OR_KEY', // optional fallback
mistralKey: 'YOUR_MISTRAL_KEY', // optional fallback
);
runApp(
const TranslationScope(child: MyApp()),
);
}
3. Use .tr on any string
Text('Hello'.tr)
Text('Welcome, {name}'.tr) // placeholders preserved
Text('Settings'.tr)
4. Change language
await AiSmartTranslate.changeLanguage('hi'); // Hindi
await AiSmartTranslate.changeLanguage('ar'); // Arabic
Translate API / Dynamic Content
// On a "Translate" button tap:
final translated = await AiSmartTranslate.translateContent(post.body);
setState(() => _displayText = translated);
Provider Fallback
| Provider | Free Tier | Priority |
|---|---|---|
| Gemini 1.5 Flash | 15 RPM · 1M tokens/day | 1st |
| Groq (Llama 3.1) | 30 RPM · 500K tokens/day | 2nd |
| OpenRouter | Free models | 3rd |
| Mistral | Free tier | 4th |
On HTTP 429 (rate limit), the current provider enters a 2-minute cooldown and the next provider is tried automatically.
Supported Languages
en hi ur ar fr es de zh ja ko pt ru bn ta te mr gu kn ml pa
API Reference
// Init
AiSmartTranslate.init(geminiKey: '...', groqKey: '...');
// Language
AiSmartTranslate.currentLanguage // "hi"
AiSmartTranslate.languageStream // Stream<String>
AiSmartTranslate.changeLanguage('hi');
// Translate
AiSmartTranslate.translate('Hello'); // Future<String>
AiSmartTranslate.translateBatch(['Hi', 'Bye']); // Future<Map>
AiSmartTranslate.translateContent(apiText); // Future<String>
// Cache
AiSmartTranslate.cachedCount('hi'); // Future<int>
AiSmartTranslate.cachedLanguages(); // Future<List<String>>
AiSmartTranslate.clearCache('hi');
// Debug
AiSmartTranslate.activeProvider // "Gemini Flash"
AiSmartTranslate.providerStatus // List of provider statuses
Libraries
- ai_smart_translate
- AI-powered Flutter translation with automatic provider fallback.