LibreTranslate.Client.Net
1.0.2
dotnet add package LibreTranslate.Client.Net --version 1.0.2
NuGet\Install-Package LibreTranslate.Client.Net -Version 1.0.2
<PackageReference Include="LibreTranslate.Client.Net" Version="1.0.2" />
<PackageVersion Include="LibreTranslate.Client.Net" Version="1.0.2" />
<PackageReference Include="LibreTranslate.Client.Net" />
paket add LibreTranslate.Client.Net --version 1.0.2
#r "nuget: LibreTranslate.Client.Net, 1.0.2"
#:package LibreTranslate.Client.Net@1.0.2
#addin nuget:?package=LibreTranslate.Client.Net&version=1.0.2
#tool nuget:?package=LibreTranslate.Client.Net&version=1.0.2
LibreTranslate.Client.Net
LibreTranslate.Client.Net is a unofficial C# client (netstandard2.0) for using the rest api of LibreTranslate. All functions of LibreTranslate (v1.6.1) are supported.
This library supports all the LibreTranslate languages. For ease of use, some language code is stored in LanguageCode.
The library uses the latest technologies. Source code generators for logging and serialization and deserialization for JSON. It can also be used with HTTPClientFactory and DependencyInjection.
The result pattern is used to return the client.
Using
Instllation
Install-Package LibreTranslate.Client.Net
Direct
using LibreTranslate.Client.Net;
using LibreTranslate.Client.Net.Models;
using LibreTranslateClient client = new(new LibreTranslateClientOptions("https//localhost:5000"));
LibreTranslateApiResult<TranslateResponse> translateResult = client.TranslateAsync("Bei C# handelt es sich um eine der besten Programmiersprachen der Welt.", LanguageCode.German, LanguageCodes.English);
if (translateResult.IsSuccess == false)
{
throw new Exception(translateResult.Error!.Error);
}
Console.WriteLine(result.Value!.TranslatedText);
DependencyIncection, HttpClientFactory
Service registration:
public static void ConfigureServices(IServiceCollection services)
{
services.Configure<LibreTranslateClientOptions>(configuration.GetSection("LibreTranslate"));
services.AddHttpClient();
services.AddScoped<ILibreTranslateClient>(services =>
{
return new LibreTranslateClient(
client: services.GetRequiredService<HttpClient>(),
options: services.GetRequiredService<IOptions<LibreTranslateClientOptions>>().Value,
logger: services.GetRequiredService<ILogger<LibreTranslateClient>>()
);
});
}
Using in a class:
public class MyClass(LibreTranslateClient translationClient) {
}
Docker
LibreTranslate can be used in Docker for testing. The corresponding Docker-Compose is located in the root directory of the project.
docker-compose up -d
CUDA
docker-compose -f docker-compose.cuda.yml up -d
Methods
Task<LibreTranslateApiResult<DetectResponse>> DetectAsync(string text, CancellationToken cancellationToken = default);
Task<LibreTranslateApiResult<LanguageResponse>> GetSupportedLanguagesAsync(CancellationToken cancellationToken = default);
Task<LibreTranslateApiResult<TranslateResponse>> TranslateAsync(string q, string sourceCode, string targetCode, string format = "text", int alternatives = 1, CancellationToken cancellationToken = default);
Task<LibreTranslateApiResult<TranslateMultipleResponse>> TranslateAsync(IEnumerable<string> q, string sourceCode, string targetCode, string format = "text", int alternatives = 1, CancellationToken cancellationToken = default);
Task<LibreTranslateApiResult<TranslateFileResponse>> TranslateFileAsync(byte[] file, string fileName, string sourceCode, string targetCode, CancellationToken cancellationToken = default);
Task<LibreTranslateApiResult<FrontendSettingsResponse>> GetFrontendSettingsAsync(CancellationToken cancellationToken = default);
Task<LibreTranslateApiResult<SuggestResponse>> SuggestAsync(string q, string suggestion, string sourceCode, string targetCode, CancellationToken cancellationToken = default);
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- System.Net.Http.Json (>= 9.0.6)
-
.NETStandard 2.1
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- System.Net.Http.Json (>= 9.0.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Support for .NET Standard 2.0