An open API service indexing awesome lists of open source software.

https://github.com/mhozaifaa/apptranslate

Translate(localization) razor SPA
https://github.com/mhozaifaa/apptranslate

blazor blazor-client blazor-server blazor-webassembly csharp dotnet dotnetcore localization net5 razor-spa web-framework-application without-js

Last synced: 12 months ago
JSON representation

Translate(localization) razor SPA

Awesome Lists containing this project

README

          

# AppTranslate
Translate(localization) razor SPA


sample with custom css suppurt ar/en

### `` check source code to figure more extensions:`` https://github.com/MhozaifaA/AppTranslate/tree/master/AppTranslate/Translate

# Get started

## Blazor Client-Side
**Inject in Program.cs**
```C#
using AppTranslate.Translate.Configure;
//....
builder.Services.AddAppTranslateClientSide(config=> config.Thesaurus( ("Hello" , "مرحبا") ) );
//.... or
await services.AddAppTranslateClientSide("thesaurus.json");
//....
```

**in Component**
```C#
@inject AppTranslate.Translate.IAppTranslate Translate
@implements IDisposable

@Translate["Hello"]


@Translate["..."]

@code{
protected override void OnInitialized()
{
Translate.OnChange += StateHasChanged;
}

private void ChangeLanguge()
{
Translate.Switch();
}

public void Dispose()
{
Translate.OnChange -= StateHasChanged;
}
}

```

## Blazor Server-Side

**Inject in Startup.cs**
```C#
using AppTranslate.Translate.Configure;
//....
services.AddAppTranslateServerSide(config => config.Thesaurus(("Hello", "مرحبا")));
//.... or
services.AddAppTranslateServerSide("thesaurus.json");
//....
```

**in Component**
```C#
@inject AppTranslate.Translate.IAppTranslate Translate
@implements IDisposable

@Translate["Hello"]


@Translate["..."]

@code{
protected override void OnInitialized()
{
Translate.OnChange += StateHasChanged;
}

protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
await Translate.Inject();
}

private void ChangeLanguge()
{
Translate.Switch();
}

public void Dispose()
{
Translate.OnChange -= StateHasChanged;
}


}

```

# Functionality

```C#
ChangeThesaurus(thesaurusPath,code?)

``enabled async``
Switch(code?)
SwitchToDefault(code?)
SwitchToUnDefault(code?)
Switch(thesaurusPath,code?)

``using only in server side``
Inject(key?)

``enabled async``
OnceSupportLTR()
OnceSupportRTL()

``properties``
IsDefault
Path
Code
IsSupportRTL

``state``
Action OnChange
```
# What features in future!
- Enable multi languages in one file
- Stable async in WASM
- Support own influencing HTML head included inside AppTranslate
- Custome localization components
- Default Language code in URL app
- Storage localy files with reload

# Samples
``client side`` https://github.com/MhozaifaA/AppTranslate/tree/master/BlazorApp


``server side`` https://github.com/MhozaifaA/AppTranslate/tree/master/BlazorAppServer