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
- Host: GitHub
- URL: https://github.com/mhozaifaa/apptranslate
- Owner: MhozaifaA
- Created: 2020-12-29T14:04:27.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-21T18:30:32.000Z (over 4 years ago)
- Last Synced: 2025-02-02T07:28:41.074Z (about 1 year ago)
- Topics: blazor, blazor-client, blazor-server, blazor-webassembly, csharp, dotnet, dotnetcore, localization, net5, razor-spa, web-framework-application, without-js
- Language: C#
- Homepage:
- Size: 1.52 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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