asp.net-core-da-bir-nece-dil-destekleyen-saytin-hazirlanmasi-2ci-hisse

Asp.NET CORE-da bir neçə dil dəstəkləyən saytın hazırlanması 2ci hissə

Keçən məqaləmizdə ASP.NET CORE-da kontrollerin qlobalizasiya/lokalizasiya məsələsini nəzərdən keçirtdik.(link burada) Bu məqalədə isə View –ların necə lokalizasiya/qlobalizasiya olunacağını öyrənəcəyik.

PS: Bu məqalə bir əvvəlki məqalənin davamı olduğuna görə kontrollerin lokalizasiyası məqaləmizi oxumağınız tövsiyyə olunur. Shared Resursların necə qoşulması həmin məqalədə detallı göstərilib


PSS: Layihəni buradan yükləyə bilərsiniz.

               View-ların lokalizasiyası kontrollerdə olduğu kimi 2 formada yerinə yetirilir:

1)Shared Localization

2)Custom View Localization

Əgər bir neçə səhifə üçün ortaq yazılar/sözlər varsa ozaman Shared Localization istifadə etmək olar. Ümumiyyətlə CORE application-larda View-nu lokalizasiya etmək istəyiriksə ozaman mütləq şəkildə Add ViewLocalization() genişlənmə metodu ilə View lokalizasiyası servisini aktivləşdirmək lazımdır.

 services.AddMvc()
                .AddViewLocalization(x=>x.ResourcesPath="Resources")
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

View-larda Shared localization

 Kontrollerdə olduğu kimi View-lar da Shared localization üçün Resources qovluğundakı Shared resursları istifadə edirlər. Bununçün lazım olan hər bir görünüşə(View) sadəcə İStringLocalizer interfeysini yeritmək kifayət edir. @inject komandası vasitəsilə bu əmri yerinə yetiririk. İStringLocalizer interfeysi Microsoft.Extensions.Localization adsahəsində olduğuna görə @using direktivi vasitəsilə ilk öncə həmin adsahəsini qoşmaq lazımdır.

Alınan nəticə bucur olacaq:

Custom View Localization

               View-ların hər birinin özünəməxsus tərcümə olunası yazıları olarsa buzaman İViewLocalizer interfeysindən istifadə olunur.Bu interfeys Microsoft.AspNetCore.Mvc.Localization adsahəsində yerləşir. İnterfeysin realizasiyası avtomatik olaraq dependency injection vasitəsilə verildiyinə görə əlavə injection məntiqi yazmağa ehtiyac yoxdur. Sadəcə hər bir View üçün müvafiq adlandırma qaydasına riayət etmək lazımdır. Bəs Custom localization adlandırma qaydaları nələrdir?

-ASP.NET CORE-da razılaşma qaydasına görə View-ların tərcümə faylları 2 yolla formalaşdırıla bilər:

1)Resources/ Views/controller_name/actionName.culture.resx

Misal: Əgər HomeController-in İndex action-ı üçün Custom azərbaycan dilində Resource faylı yaratmaq istəyiriksə ozaman

Resources/ Views/Home/İndex.az-Latn-AZ.resx faylı yaratmalıyıq.

2)Resources/ Views/ controller_name.actionName.culture.resx

Misal: Əgər HomeController-in Detail action-ı üçün Custom azərbaycan dilində Resource faylı yaratmaq istəyiriksə ozaman

Resources/ Views/Home.Detail.az-Latn-AZ.resx faylı yaratmalıyıq.


Nəticə isə belə olacaq:

 

 

Tural

Tural Süleymani

Süleymani Tural Microsoft-un MCSD statuslu mütəxəssisidir, 2008-ci ildən bu yana proqramlaşdırma üzrə tədris aparır

Müəllifin bu dildə ən son postları

Bu yazıları da bəyənə bilərsiniz