AI-powered translation for .NET using GPT-4, Claude, Llama and 400+ models. Translate text between 100+ languages with automatic language detection, batch translation, and context-aware results. Superior to Google Translate with nuanced, natural translations. Perfect for localization, internationalization (i18n), and multilingual applications.
$ dotnet add package ForeverTools.TranslateAI-powered translation for .NET using GPT-4, Claude, Llama and 400+ AI models. Translate text between 100+ languages with automatic language detection, batch translation, and context-aware results.
This package uses the AI/ML API which provides access to 400+ AI models including GPT-4, Claude, Llama, and more.
dotnet add package ForeverTools.Translate
using ForeverTools.Translate;
// Create client with your API key
var client = new TranslationClient("your-api-key");
// Translate to Spanish (auto-detect source language)
var spanish = await client.TranslateAsync("Hello, how are you?", "es");
// Output: "Hola, ¿cómo estás?"
// Translate to English
var english = await client.TranslateToEnglishAsync("Bonjour le monde");
// Output: "Hello world"
// Set AIML_API_KEY or TRANSLATION_API_KEY environment variable
var client = TranslationClient.FromEnvironment();
var result = await client.DetectLanguageAsync("Bonjour, comment allez-vous?");
Console.WriteLine($"Language: {result.LanguageName}"); // French
Console.WriteLine($"Code: {result.LanguageCode}"); // fr
Console.WriteLine($"Confidence: {result.Confidence}"); // 0.98
// Translate multiple texts at once
var texts = new[] { "Hello", "Goodbye", "Thank you" };
var results = await client.TranslateBatchAsync(texts, "es");
foreach (var result in results.Results)
{
Console.WriteLine($"{result.OriginalText} → {result.TranslatedText}");
}
// Hello → Hola
// Goodbye → Adiós
// Thank you → Gracias
// Translate one text to multiple languages simultaneously
var languages = new[] { "es", "fr", "de", "ja" };
var results = await client.TranslateToMultipleLanguagesAsync("Hello world", languages);
foreach (var result in results)
{
Console.WriteLine($"{result.TargetLanguage}: {result.TranslatedText}");
}
// es: Hola mundo
// fr: Bonjour le monde
// de: Hallo Welt
// ja: こんにちは世界
// Formal (business documents)
var formal = await client.TranslateWithStyleAsync(
"Hey, what's up?",
"es",
TranslationStyle.Formal);
// "Buenos días, ¿cómo se encuentra?"
// Casual (conversational)
var casual = await client.TranslateWithStyleAsync(
"Greetings, how do you do?",
"es",
TranslationStyle.Casual);
// "¡Hola! ¿Qué tal?"
// Technical (preserve terminology)
var technical = await client.TranslateWithStyleAsync(
"The API returns a JSON response with pagination.",
"de",
TranslationStyle.Technical);
Available styles:
Natural - Fluent, natural-sounding translation (default)Formal - Professional, business-appropriateCasual - Friendly, conversationalTechnical - Preserves technical terminologyLiteral - Stays close to source structureCreative - More freedom for adaptation// Provide context for more accurate translation
var translation = await client.TranslateWithContextAsync(
"Apple announced new products today.",
"es",
"This is a technology news article about the company Apple Inc.");
// "Apple anunció nuevos productos hoy." (not the fruit!)
// Ensure consistent terminology
var glossary = new Dictionary<string, string>
{
["cloud"] = "la nube",
["server"] = "el servidor",
["API"] = "API" // Keep as-is
};
var translation = await client.TranslateWithGlossaryAsync(
"The cloud server exposes an API.",
"es",
glossary);
// "El servidor en la nube expone una API."
// Use GPT-4 for highest quality
var options = new TranslationOptions
{
ApiKey = "your-api-key",
DefaultModel = TranslationModels.Gpt4o
};
var client = new TranslationClient(options);
// Or specify per-request
var request = new TranslationRequest
{
Text = "Hello world",
TargetLanguage = "ja",
Model = TranslationModels.Claude35Sonnet
};
var result = await client.TranslateWithDetailsAsync(request);
Available models include:
TranslationModels.Gpt4o - Best quality (default)TranslationModels.Gpt4oMini - Fast and affordableTranslationModels.Claude35Sonnet - Excellent for nuanced translationTranslationModels.Gemini15Pro - Google's latestTranslationModels.Llama3170B - Open source optionTranslationModels.Qwen72B - Excellent for Asian languages// Use predefined language constants
using ForeverTools.Translate;
var spanish = Languages.Spanish; // es
var japanese = Languages.Japanese; // ja
var chinese = Languages.ChineseSimplified; // zh-CN
// Or use language codes directly
var result = await client.TranslateAsync("Hello", "es");
// In Program.cs
builder.Services.AddForeverToolsTranslation("your-api-key");
// Or with configuration
builder.Services.AddForeverToolsTranslation(options =>
{
options.ApiKey = "your-api-key";
options.DefaultModel = TranslationModels.Gpt4oMini;
options.DefaultTargetLanguage = "es";
options.Style = TranslationStyle.Formal;
});
// appsettings.json
{
"Translation": {
"ApiKey": "your-api-key",
"DefaultModel": "gpt-4o",
"DefaultTargetLanguage": "en",
"Style": "Natural"
}
}
builder.Services.AddForeverToolsTranslation(builder.Configuration);
public class MyService
{
private readonly TranslationClient _translator;
public MyService(TranslationClient translator)
{
_translator = translator;
}
public async Task<string> TranslateContentAsync(string content, string language)
{
return await _translator.TranslateAsync(content, language);
}
}
var result = await client.TranslateWithDetailsAsync(
"Bonjour le monde",
null, // Auto-detect source
"en");
Console.WriteLine($"Original: {result.OriginalText}");
Console.WriteLine($"Translated: {result.TranslatedText}");
Console.WriteLine($"Source Language: {result.SourceLanguage}");
Console.WriteLine($"Target Language: {result.TargetLanguage}");
Console.WriteLine($"Model Used: {result.Model}");
Console.WriteLine($"Language Detected: {result.WasLanguageDetected}");
The package supports 50+ predefined languages including:
| Language | Code | Language | Code |
|---|---|---|---|
| English | en | Spanish | es |
| French | fr | German | de |
| Italian | it | Portuguese | pt |
| Russian | ru | Japanese | ja |
| Korean | ko | Chinese (Simplified) | zh-CN |
| Chinese (Traditional) | zh-TW | Arabic | ar |
| Hindi | hi | Vietnamese | vi |
| Thai | th | Turkish | tr |
| Dutch | nl | Polish | pl |
| Swedish | sv | Greek | el |
And many more! Any language can be used by passing its ISO 639-1 code.
try
{
var translation = await client.TranslateAsync("Hello", "es");
}
catch (ArgumentException ex)
{
Console.WriteLine($"Invalid input: {ex.Message}");
}
catch (HttpRequestException ex)
{
Console.WriteLine($"API error: {ex.Message}");
}
TranslationClient and reuse itTranslateBatchAsyncTranslateWithContextAsyncMIT License - see LICENSE file for details.