https://github.com/lazziya/xlocalizer.translate
Translation abstractions extension pack for XLocalizer
https://github.com/lazziya/xlocalizer.translate
asp-net-core localization translation translation-service user-secrets xlocalizer
Last synced: 5 months ago
JSON representation
Translation abstractions extension pack for XLocalizer
- Host: GitHub
- URL: https://github.com/lazziya/xlocalizer.translate
- Owner: LazZiya
- Created: 2020-07-21T10:16:07.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-01-02T10:26:06.000Z (over 1 year ago)
- Last Synced: 2024-12-10T11:49:01.952Z (5 months ago)
- Topics: asp-net-core, localization, translation, translation-service, user-secrets, xlocalizer
- Language: C#
- Homepage: http://docs.ziyad.info
- Size: 57.6 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# XLocalizer.Translate
Auto translation support pack for [XLocalizer](https://github.com/LazZiya/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](http://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:
````json
{
"XLocalizer.Translate": {
"RapidApiKey": "xxx-rapid-api-key-xxx"
}
}
````
#### Yandex Translate Secrets:
````json
{
"XLocalizer.Translate": {
"YandexTranslateApiKey": "xxx-yandex-translate-api-key-xxx"
}
}
````### IBM Watson Language Translate Secrets:
````json
{
"XLocalizer.Translate": {
"IBMWatsonTranslateApiKey": "xxx-imb-watson-cloud-api-key-xxx",
"IBMWatsonTranslateServiceUrl": "https// ibm-service-instance-url",
"IBMWatsonTranslateServiceVersionDate": "ibm-service-version-date"
}
}
````4. Register one or more services in startup:
````cs
services.AddSingleton();
services.AddHttpClient();
services.AddHttpClient();
services.AddHttpClient();
services.AddHttpClient();
````6. Inject one or all services:
````cs
public class IndexModel : PageModel
{
private readonly ITranslator _translator;
public IndexModel(ITranslator translator)
{
_translator = translator;
}
public async Task OnGetAsync()
{
var transResult = await _translator.TranslateAsync("en", "tr", "Hello world!", text);
}
}
````The translation result is an object of type [`TranslationResult`](https://github.com/LazZiya/XLocalizer.Translate/blob/master/XLocalizer.Translate/TranslationResult.cs).
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.