Skip to content

mericgungor/Api-Language

Repository files navigation

Api Dili

Birçok yazılımcı, api içeriğinin dilini nasıl değiştireceğini bilir.
Fakat, api alanlarını değiştirmek zor olabilir.
Tabiki dto ve automapper benzeri yöntemler ile çözüm bulabilirsiniz.

Bu kaynak, api alanlarını çevirmede yardımcı olabilir.
Örneğin:

İngilizceden

{
    "name":"Name"
}

Türkçeye

{
    "ad":"Name"
}

Özellikler

  • Api alanlarını değiştirebilirsiniz
  • .Net 6
  • Başka paketlere bağımlılık yok
  • Middleware
  • header
  • Açık kaynak, ücretsiz

Kurulum

Api kodunuzu yazın
LocalizationMiddleware.cs kopyalayın, bir değişiklik yapmanıza gerek yok.

program.cs içinde
Eğer bütün api metodlarınızda geçerli olmasını istiyorsanız, bu kullanın

    app.UseMiddleware<LocalizationMiddleware>();

Eğer bazı özel api metodlarınızda geçerli olmasını istiyorsanız, bu kullanın

app.UseWhen(context => context.Request.Path.StartsWithSegments("/WeatherForecast"), appBuilder =>
{
    appBuilder.UseMiddleware<LocalizationMiddleware>();
});

api header değer atayın

--header 'Accept-Language: de-DE'

Maalesef, swagger'ı kolayca kullanamazsınız, Postman kullanın.

Uyarılar

  • servisiniz daha az performansta çalışır
  • Eski sürüm .Net desteklemez
  • header gereklidir

Ekran Görüntüleri

Almanca

German

Türkçe

Türkçe

Default

Default


Api Language

Most of developers knows, how to change content language.
But, changing api fields may be difficult.
Of course, you can use dto and automapper etc.

This github repository helps to translate api fields.
For example:
from (english)

{
    "name":"Name"
}

to (türkçe)

{
    "ad":"Name"
}

Features

  • You can change api fields language
  • .Net 6
  • No Dependency
  • Middleware
  • header
  • Public, open source, feel free to use

Installation & Using

Write your api code.
Copy LocalizationMiddleware.cs, don't change any thing.

in program.cs
if you want to apply to all api, use this

    app.UseMiddleware<LocalizationMiddleware>();

if you want to apply to special (named) api, use this

app.UseWhen(context => context.Request.Path.StartsWithSegments("/WeatherForecast"), appBuilder =>
{
    appBuilder.UseMiddleware<LocalizationMiddleware>();
});

Set api header

--header 'Accept-Language: de-DE'

Unfortunately, you can't use with swagger easily, use Postman instead

Warnings

  • less performance
  • Don't support earlier .Net (<.Net 5)
  • header needed

Screen Shots

German

German

Türkçe

Türkçe

Default

Default

Releases

No releases published

Packages

No packages published

Languages