Skip to content

LazZiya/XLocalizer.Translate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XLocalizer.Translate

Auto translation support pack for XLocalizer

Install

Install from nuget:

PM > Install-Package XLocalizer.Translate

Additionally install one or more translation service from nuget as well:

PM > Install-Package XLocalizer.Translate.GoogleTranslate
PM > Install-Package XLocalizer.Translate.YadexTranslate
PM > Install-Package XLocalizer.Translate.MyMemoryTranslate
PM > Install-Package XLocalizer.Translate.SystranTranslate
PM > Install-Package XLocalizer.Translate.IBMWatsonTranslate

Usage

Some translation services requires API keys, for all details visit: DOCS.Ziyad.info

Goto your project and add the keys to user secrets:

Right click on the project name and select Manage User Secrets

Google Translate, MyMemory, SYSTRAN.io via RapidApi Secrets:

{
  "XLocalizer.Translate": {
    "RapidApiKey": "xxx-rapid-api-key-xxx"
  }
}

Yandex Translate Secrets:

{
  "XLocalizer.Translate": {
    "YandexTranslateApiKey": "xxx-yandex-translate-api-key-xxx"
  }
}

IBM Watson Language Translate Secrets:

{
  "XLocalizer.Translate": {
    "IBMWatsonTranslateApiKey": "xxx-imb-watson-cloud-api-key-xxx",
    "IBMWatsonTranslateServiceUrl": "https// ibm-service-instance-url",
    "IBMWatsonTranslateServiceVersionDate": "ibm-service-version-date"
  }
}
  1. Register one or more services in startup:
services.AddSingleton<ITranslator, IBMWatsonStringTranslator>();
services.AddHttpClient<ITranslator, GoogleTranslateStringTranslator>();
services.AddHttpClient<ITranslator, YandexTranslateStringTranslator>();
services.AddHttpClient<ITranslator, MyMemoryTranslateStringTranslator>();
services.AddHttpClient<ITranslator, SystranTranslateStringTranslator>();
  1. Inject one or all services:
public class IndexModel : PageModel
{
    private readonly ITranslator _translator;
    
    public IndexModel(ITranslator translator)
    {
        _translator = translator;
    }
    
    public async Task<IActionResult> OnGetAsync()
    {
        var transResult = await _translator.TranslateAsync("en", "tr", "Hello world!", text);
    }
}

The translation result is an object of type TranslationResult.

Sample result for "Welcome" translation:

{ text: "Hoşgeldiniz", statusCode: 200, target: "tr", source: "en"}

Extending Translation Services

If you want to add more services just implement the interface ITranslator and register it in startup.