Skip to content

Partiolainen/Fluent.LibreTranslate

Repository files navigation

Fluent.LibreTranslate

C# Fluent sync/async translation via LibreTranslate

NuGet

Installation

dotnet add package Fluent.LibreTranslate

Using

using Fluent.LibreTranslate;

Usage

GlobalLibreTranslateSettings.Server = LibreTranslateServer.Libretranslate_de;
GlobalLibreTranslateSettings.ApiKey = null; // if need an apiKey 
GlobalLibreTranslateSettings.UseRateLimitControl = true; //to avoid "429 Too Many Requests" exception
GlobalLibreTranslateSettings.RateLimitTimeSpan = TimeSpan.FromSeconds(4); //depends on server configuration, default 4 seconds

Console.WriteLine(await "Hello, World!".TranslateAsync(LanguageCode.Finnish));

Output:

Hei, maailma!

Custom LibreTranslate server URL:

GlobalLibreTranslateSettings.Server = new LibreTranslateServer("http://localhost:5000");

Methods

Task<LanguageCode> DetectLanguageAsync(this string text);
Task<string> TranslateAsync(this string text, LanguageCode source, LanguageCode target);
Task<string> TranslateAsync(this string text, LanguageCode target);
Task SuggestAsync(this string text, string suggestedTranslation, LanguageCode source, LanguageCode target);

LanguageCode DetectLanguage(this string text);
string Translate(this string text, LanguageCode source, LanguageCode target);
string Translate(this string text, LanguageCode target);
Suggest(this string text, string suggestedTranslation, LanguageCode source, LanguageCode target);