ASP.NET Core প্রোগ্রামিং ভাষায় WebSockets এবং গ্লোবালাইজেশন (Localization and Globalization) দুটি অত্যন্ত গুরুত্বপূর্ণ ফিচার। WebSockets রিয়েল-টাইম ডেটা ট্রান্সফার সম্ভব করে এবং গ্লোবালাইজেশন ও Localization আন্তর্জাতিক ব্যবহারকারীদের জন্য অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। আসুন, এগুলো নিয়ে বিস্তারিত আলোচনা করি।
WebSockets হল একটি নেটওয়ার্ক প্রোটোকল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি দুই-দিকযুক্ত, স্থায়ী কানেকশন তৈরি করে। WebSockets প্রোটোকল HTTP প্রোটোকলের উপর ভিত্তি করে কাজ করে, তবে এটি ডাটা ট্রান্সফারের জন্য একটি স্থায়ী কানেকশন বজায় রাখে, যা রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য খুবই উপকারী।
ASP.NET Core এ WebSockets ব্যবহার করার জন্য নিচের পদক্ষেপগুলো অনুসরণ করতে হবে:
WebSocket Middleware Enable করা: প্রথমে, Startup.cs
ফাইলে UseWebSockets
মেথড ব্যবহার করে WebSocket Middleware যোগ করতে হবে।
public void Configure(IApplicationBuilder app)
{
app.UseWebSockets(); // WebSockets সক্রিয় করা
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/ws", async context =>
{
if (context.WebSockets.IsWebSocketRequest)
{
WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
await Echo(webSocket);
}
else
{
context.Response.StatusCode = 400; // Bad Request
}
});
});
}
WebSocket Communication: এরপর, Echo
মেথড তৈরি করা হবে যা WebSocket থেকে ডেটা রিসিভ করে এবং তা আবার ক্লায়েন্টকে পাঠাবে। এটি ক্লায়েন্ট-সার্ভার কমিউনিকেশনকে রিয়েল-টাইমে পরিচালনা করবে।
private async Task Echo(WebSocket webSocket)
{
var buffer = new byte[1024 * 4];
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
while (!result.CloseStatus.HasValue)
{
await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, result.Count), result.MessageType, result.EndOfMessage, CancellationToken.None);
result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
}
await webSocket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None);
}
Client Side (JavaScript): ক্লায়েন্ট সাইডে JavaScript দিয়ে WebSocket কানেকশন তৈরি করা হবে। উদাহরণস্বরূপ:
var socket = new WebSocket("ws://localhost:5000/ws");
socket.onmessage = function(event) {
console.log("Message from server: ", event.data);
};
socket.onopen = function(event) {
socket.send("Hello, Server!");
};
socket.onclose = function(event) {
console.log("Connection closed");
};
WebSockets আপনাকে রিয়েল-টাইম কমিউনিকেশন এবং ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করার সুবিধা দেয়, যেমন চ্যাট অ্যাপ, লাইভ ডাটা ফিড, এবং ইন্টারঅ্যাকটিভ গেমস।
গ্লোবালাইজেশন এবং Localization দুটি পদ্ধতি যা আন্তর্জাতিক বাজারে অ্যাপ্লিকেশন সরবরাহ করতে সাহায্য করে। এই পদ্ধতিগুলি ব্যবহার করে অ্যাপ্লিকেশনগুলিকে বিভিন্ন ভাষা এবং অঞ্চলের জন্য উপযোগী করা হয়।
গ্লোবালাইজেশন এমন একটি প্রক্রিয়া যার মাধ্যমে একটি অ্যাপ্লিকেশন এমনভাবে ডিজাইন করা হয় যাতে এটি বিভিন্ন ভাষা, মুদ্রা, এবং দেশীয় নিয়ম-কানুন অনুসারে কাজ করতে পারে। এর মাধ্যমে অ্যাপ্লিকেশনটি বিভিন্ন দেশের ব্যবহারকারীদের জন্য মানানসই হয়ে ওঠে।
ASP.NET Core এ গ্লোবালাইজেশন ব্যবহারের জন্য IStringLocalizer
এবং CultureInfo
ব্যবহার করা হয়।
লোকালাইজেশন হল সেই প্রক্রিয়া, যা একক ভাষায় অ্যাপ্লিকেশন কাস্টমাইজ করার মাধ্যমে ব্যবহারকারীকে সেই ভাষায় সঠিক কনটেন্ট প্রদর্শন করতে সহায়তা করে। এর মধ্যে টেক্সট, ফরম্যাট, তারিখ, সময় ইত্যাদি স্থানীয় ভাষার বা সংস্কৃতির উপযোগী করে তৈরি করা হয়।
ASP.NET Core এ Localization এর জন্য প্রয়োজনীয় কনফিগারেশন এর মধ্যে প্রধানত RequestLocalizationMiddleware
ব্যবহার করা হয়।
Localization Setup: Startup.cs
ফাইলে Localization এবং Globalization কনফিগারেশন করতে হবে।
public void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc().AddDataAnnotationsLocalization();
}
public void Configure(IApplicationBuilder app)
{
var supportedCultures = new[] { "en-US", "fr-FR", "de-DE" };
var localizationOptions = new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US"),
SupportedCultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray(),
SupportedUICultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray()
};
app.UseRequestLocalization(localizationOptions);
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Resources
ফোল্ডারে MyResource.resx
, MyResource.fr.resx
ইত্যাদি ফাইল থাকবে।Text Localization: কোডে IStringLocalizer
ব্যবহার করে ভাষার পরিবর্তনশীল কনটেন্ট লোড করা হবে।
public class HomeController : Controller
{
private readonly IStringLocalizer<HomeController> _localizer;
public HomeController(IStringLocalizer<HomeController> localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
ViewData["Message"] = _localizer["WelcomeMessage"];
return View();
}
}
ASP.NET Core WebSockets এবং গ্লোবালাইজেশন-লোকালাইজেশন দুইটি গুরুত্বপূর্ণ ফিচার যা আপনার অ্যাপ্লিকেশনকে আরও কার্যকরী এবং আন্তর্জাতিক ব্যবহারকারীদের জন্য উপযোগী করে তোলে। WebSockets রিয়েল-টাইম কমিউনিকেশন সাপোর্ট করে, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে একযোগভাবে ডেটা আদান-প্রদান নিশ্চিত করে। অন্যদিকে, Globalization এবং Localization অ্যাপ্লিকেশনকে একাধিক ভাষা এবং সংস্কৃতির জন্য উপযোগী করতে সাহায্য করে, যার ফলে ব্যবহারকারীরা তাদের স্থানীয় ভাষায় অ্যাপ্লিকেশন ব্যবহার করতে পারে।
WebSockets একটি আধুনিক কমিউনিকেশন প্রোটোকল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে পূর্ণ-ডুপ্লেক্স (full-duplex) যোগাযোগ স্থাপন করতে ব্যবহৃত হয়। এর মাধ্যমে একবার কানেকশন স্থাপন হওয়ার পর, সার্ভার এবং ক্লায়েন্ট একে অপরকে সরাসরি এবং দ্রুত ডেটা আদান-প্রদান করতে সক্ষম হয়। WebSockets মূলত Web, IoT, গেমিং, স্টক মার্কেট ট্র্যাকিং, এবং রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য একটি শক্তিশালী প্রযুক্তি হিসেবে পরিচিত।
WebSockets হল একটি প্রোটোকল যা HTTP প্রোটোকলের উপরে কাজ করে এবং একটি স্থায়ী সংযোগ তৈরি করে যা একবার স্থাপন হলে ক্লায়েন্ট এবং সার্ভারের মধ্যে তথ্য এক্সচেঞ্জ করতে পারে। WebSockets এর সাহায্যে HTTP রিকোয়েস্ট এবং রেসপন্স মডেল থেকে বের হয়ে সরাসরি কানেকশন স্থাপন করা সম্ভব হয়। এই কানেকশনটি সার্ভার এবং ক্লায়েন্টের মধ্যে উন্মুক্ত থাকে এবং কোনো একে অপরের কাছে তথ্য পাঠানো বা গ্রহণ করা যায়, যেটি HTTP প্রোটোকলের মাধ্যমে সম্ভব নয়।
WebSocket কনেকশন শুরু হয় সাধারণ HTTP হ্যান্ডশেক দ্বারা, তবে এরপর এটি একটি WebSocket কনেকশনে পরিণত হয় যা সার্ভার এবং ক্লায়েন্টের মধ্যে অর্ধেক পথ (halfway) পর্যন্ত চলতে থাকে। WebSockets এর সবচেয়ে বড় সুবিধা হল, এটি একাধিক মেসেজ পাঠানোর জন্য অতিরিক্ত HTTP হেডার বা সেশন ব্যবস্থাপনা ছাড়াই কাজ করে।
WebSockets এর কার্যপ্রণালী মোটামুটি নিম্নরূপ:
WebSockets সাধারণত যেসব অ্যাপ্লিকেশনে রিয়েল-টাইম কমিউনিকেশন প্রয়োজন সেখানে ব্যবহৃত হয়। এর কিছু প্রধান ব্যবহার ক্ষেত্র:
ASP.NET Core-এ WebSockets ব্যবহার করার জন্য প্রথমে আপনাকে কিছু কনফিগারেশন করতে হবে। এখানে একটি সিম্পল উদাহরণ দেখানো হলো:
Startup.cs ফাইলে WebSockets কনফিগার করা
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
// WebSockets সক্রিয় করা
app.UseWebSockets();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/ws", async context =>
{
if (context.WebSockets.IsWebSocketRequest)
{
var webSocket = await context.WebSockets.AcceptWebSocketAsync();
// WebSocket ইন্টারঅ্যাকশন পরিচালনা করতে কোড
}
else
{
context.Response.StatusCode = 400;
}
});
});
}
WebSocket ইন্টারঅ্যাকশন:
WebSocket কানেকশনের পর, সার্ভার এবং ক্লায়েন্টের মধ্যে ডেটা ট্রান্সফার করা সম্ভব।
var buffer = new byte[1024 * 4];
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, result.Count), WebSocketMessageType.Text, true, CancellationToken.None);
বৈশিষ্ট্য | WebSockets | HTTP Polling | Long Polling |
---|---|---|---|
যোগাযোগ টাইপ | পূর্ণ-ডুপ্লেক্স (Full-duplex) | একমুখী (Unidirectional) | একমুখী (Unidirectional) |
কানেকশন টাইপ | স্থায়ী কানেকশন (Persistent connection) | বারবার নতুন কানেকশন (New connections each time) | স্থায়ী কানেকশন (Persistent connection) |
প্রযুক্তি | WebSocket প্রোটোকল (WebSocket protocol) | HTTP প্রোটোকল (HTTP protocol) | HTTP প্রোটোকল (HTTP protocol) |
দ্রুততা | দ্রুত (Fast) | ধীর (Slow) | ধীর (Slow) |
ব্যবহার | রিয়েল-টাইম অ্যাপ্লিকেশন (Real-time applications) | সাধারণ ওয়েব পেজ লোড (General web page load) | কিছু রিয়েল-টাইম অ্যাপ্লিকেশন (Some real-time apps) |
WebSockets একটি শক্তিশালী এবং দ্রুত যোগাযোগ প্রোটোকল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে পূর্ণ-ডুপ্লেক্স এবং স্থায়ী কানেকশন প্রদান করে। এটি বিশেষ করে রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত, যেমন চ্যাট অ্যাপ্লিকেশন, লাইভ স্ট্যাটাস আপডেট, গেমস, এবং IoT ডিভাইসের মধ্যে যোগাযোগ। WebSockets ব্যবহার করে, ডেটা দ্রুত এবং কম লেটেন্সি সহ আদান-প্রদান করা যায়, যা HTTP প্রোটোকলের তুলনায় অনেক বেশি কার্যকরী।
Localization এবং Globalization হলো দুটি গুরুত্বপূর্ণ ধারণা যা বিভিন্ন ভাষা এবং সংস্কৃতির জন্য অ্যাপ্লিকেশন কাস্টমাইজ করার জন্য ব্যবহৃত হয়। ASP.NET Core-এ Localization এবং Globalization ব্যবহার করে, আপনি আপনার অ্যাপ্লিকেশনকে বিশ্বের বিভিন্ন অঞ্চলের ভাষা, সময়, সংখ্যা এবং মুদ্রার ফর্ম্যাট অনুযায়ী কাস্টমাইজ করতে পারবেন।
ASP.NET Core-এ Localization এবং Globalization কনফিগার করার মাধ্যমে, আপনি ব্যবহারকারীর ভাষা এবং অঞ্চলের উপর ভিত্তি করে একটি ব্যক্তিগতকৃত অভিজ্ঞতা প্রদান করতে পারবেন।
ASP.NET Core অ্যাপ্লিকেশনে Localization এবং Globalization কনফিগার করার জন্য কিছু নির্দিষ্ট ধাপ অনুসরণ করতে হয়। এগুলো অন্তর্ভুক্ত করে:
সার্ভিস কনফিগারেশন: প্রথমে আপনাকে অ্যাপ্লিকেশনে Localization এর জন্য সার্ভিস কনফিগার করতে হবে। Startup.cs
ফাইলে ConfigureServices
মেথডে Localization সার্ভিস যোগ করুন।
public void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddDataAnnotationsLocalization()
.AddViewLocalization();
}
কনফিগারেশন এঞ্জিন সেটআপ: ASP.NET Core অ্যাপ্লিকেশনটিকে ব্যবহারকারীর বর্তমান ভাষা বা অঞ্চল নির্ধারণের জন্য একটি Request Localization Middleware সেটআপ করতে হবে। এটি সাধারণত Configure
মেথডে করা হয়।
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var supportedCultures = new[] { "en-US", "fr-FR", "es-ES" };
var localizationOptions = new RequestLocalizationOptions()
.SetDefaultCulture("en-US")
.AddSupportedCultures(supportedCultures)
.AddSupportedUICultures(supportedCultures);
app.UseRequestLocalization(localizationOptions);
app.UseMvc();
}
এখানে, supportedCultures
অ্যারে এর মধ্যে আপনি যেসব ভাষা সাপোর্ট করতে চান সেগুলো উল্লেখ করবেন। SetDefaultCulture
মেথডে ডিফল্ট সংস্কৃতি বা ভাষা নির্ধারণ করা হয়, এবং AddSupportedCultures
দ্বারা যে সংস্কৃতিগুলি সমর্থিত তা যোগ করা হয়।
রিসোর্স ফাইল তৈরি করা: Localization এর জন্য, আপনাকে নির্দিষ্ট ভাষায় রিসোর্স ফাইল তৈরি করতে হবে। এটি সাধারণত .resx
(Resources) ফাইল ফরম্যাটে করা হয়। প্রতিটি ভাষার জন্য আলাদা .resx
ফাইল থাকবে। উদাহরণস্বরূপ:
Resources/Views/Home/Index.en-US.resx
(English)Resources/Views/Home/Index.fr-FR.resx
(French)Resources/Views/Home/Index.es-ES.resx
(Spanish)এই রিসোর্স ফাইলগুলিতে আপনি অ্যাপ্লিকেশনের UI কন্টেন্ট, বার্তা, টেক্সট ইত্যাদি ভাষা ভিত্তিক কনফিগার করতে পারেন।
উদাহরণ: Index.en-US.resx
<data name="Greeting" xml:space="preserve">
<value>Hello, Welcome!</value>
</data>
Index.fr-FR.resx
<data name="Greeting" xml:space="preserve">
<value>Bonjour, bienvenue!</value>
</data>
ভাষার উপর ভিত্তি করে কনটেন্ট দেখানো: Localization এবং Globalization কনফিগার করার পরে, আপনি ভাষা অনুযায়ী কনটেন্ট প্রদর্শন করতে পারবেন। এর জন্য IStringLocalizer
অথবা IHtmlLocalizer
ইন্টারফেস ব্যবহার করতে হবে।
Controller এ Localization ব্যবহার:
public class HomeController : Controller
{
private readonly IStringLocalizer<HomeController> _localizer;
public HomeController(IStringLocalizer<HomeController> localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
var greeting = _localizer["Greeting"];
return View("Index", greeting);
}
}
View-এ Localization ব্যবহার:
<h1>@Localizer["Greeting"]</h1>
Globalization কনফিগারেশন কেবল ভাষার নয়, বরং অন্যান্য অঞ্চলের সংস্কৃতির উপরও নির্ভর করে। যেমন, তারিখ, সময়, সংখ্যা এবং মুদ্রা ফরম্যাট একটি নির্দিষ্ট সংস্কৃতি অনুযায়ী প্রদর্শিত হতে পারে।
Globalization Configuration: আপনি চাইলে অ্যাপ্লিকেশনটিকে একটি নির্দিষ্ট সংস্কৃতির জন্য কনফিগার করতে পারেন, যেমন তারিখের ফরম্যাট:
var cultureInfo = new CultureInfo("en-US");
CultureInfo.CurrentCulture = cultureInfo;
CultureInfo.CurrentUICulture = cultureInfo;
ডেটা ফরম্যাটিং: Globalization এর মাধ্যমে নির্দিষ্ট সংস্কৃতির ভিত্তিতে সংখ্যা বা সময় ফরম্যাট করতে পারেন।
উদাহরণ:
var amount = 1234.56;
var formattedAmount = amount.ToString("C", new CultureInfo("en-US")); // $1,234.56
এখানে, মুদ্রার ফরম্যাট “$” মার্কিন মুদ্রার চিহ্ন অনুসারে হবে।
₹
ভারতের জন্য, $
মার্কিন যুক্তরাষ্ট্রের জন্য)।Localization এবং Globalization কনফিগার করার মাধ্যমে আপনি আপনার ASP.NET Core অ্যাপ্লিকেশনকে বিশ্বব্যাপী ব্যবহারকারীদের জন্য আরও উপযোগী এবং বন্ধুত্বপূর্ণ করে তুলতে পারবেন। এটি আন্তর্জাতিক স্তরে একটি অ্যাপ্লিকেশনকে সফলভাবে প্রবর্তন করার জন্য একটি অপরিহার্য উপায়।
ASP.NET Core অ্যাপ্লিকেশনগুলিতে Multiple Language Support বা একাধিক ভাষার সমর্থন যুক্ত করা একটি গুরুত্বপূর্ণ ফিচার, বিশেষ করে আন্তর্জাতিক ব্যবহারকারীদের জন্য। ASP.NET Core ইন্টারন্যাশনালাইজেশন (Internationalization) এবং লোকালাইজেশন (Localization) এর সুবিধা দিয়ে বিভিন্ন ভাষায় অ্যাপ্লিকেশন কনটেন্ট প্রদর্শন করতে সাহায্য করে।
Localization হল এক বা একাধিক ভাষায় অ্যাপ্লিকেশন কনটেন্টের প্রদর্শন, যেখানে Internationalization হল অ্যাপ্লিকেশনকে এমনভাবে তৈরি করা যাতে তা বিভিন্ন ভাষা এবং অঞ্চলের জন্য কাস্টমাইজ করা যায়।
ASP.NET Core এ Localization সাপোর্ট যোগ করতে, কিছু কনফিগারেশন এবং কোড পরিবর্তন করা দরকার।
প্রথমে, Localization এর জন্য Microsoft.Extensions.Localization
এবং Microsoft.AspNetCore.Localization
প্যাকেজগুলো ইনস্টল করতে হবে। আপনি যদি NuGet Package Manager ব্যবহার করেন, তাহলে নিচের কমান্ড দিয়ে প্যাকেজ ইনস্টল করুন:
dotnet add package Microsoft.Extensions.Localization
dotnet add package Microsoft.AspNetCore.Localization
Startup.cs
ফাইলে Localization কনফিগারেশনLocalization সক্রিয় করার জন্য Startup.cs
ফাইলে কিছু কনফিগারেশন করা হয়।
ConfigureServices
মেথডে Localization কনফিগারেশনpublic void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddDataAnnotationsLocalization()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);
}
এখানে, AddLocalization
মেথডটি ResourcesPath
দিয়ে Resources ফোল্ডারটি নির্ধারণ করে, যেখানে বিভিন্ন ভাষার ফাইল সংরক্ষিত হবে। AddViewLocalization
ও AddDataAnnotationsLocalization
মেথডগুলো ভিউ এবং ডেটা অ্যানোটেশন লকালাইজেশন সাপোর্ট যোগ করে।
Configure
মেথডে Localization কনফিগারেশনpublic void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var supportedCultures = new[] { "en-US", "fr-FR", "es-ES" };
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US"),
SupportedCultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray(),
SupportedUICultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray()
});
app.UseMvc();
}
এখানে, supportedCultures এর মাধ্যমে আপনি যে ভাষাগুলো সমর্থন করবেন তা নির্দিষ্ট করেছেন। DefaultRequestCulture
হল ডিফল্ট ভাষা যা অ্যাপ্লিকেশন শুরু হলে ব্যবহার হবে।
প্রতিটি ভাষার জন্য একটি রিসোর্স ফাইল তৈরি করতে হবে। Resources ফোল্ডারের মধ্যে ভাষার নাম দিয়ে একটি .resx
ফাইল তৈরি করুন। উদাহরণস্বরূপ:
Resources/Views/Home/Index.en-US.resx
(English)Resources/Views/Home/Index.fr-FR.resx
(French)Resources/Views/Home/Index.es-ES.resx
(Spanish)এই ফাইলগুলোর মধ্যে আপনি ভাষানুযায়ী কনটেন্ট সংরক্ষণ করবেন।
Index.en-US.resx
:Key | Value |
---|---|
WelcomeText | Welcome to our website! |
Index.fr-FR.resx
:Key | Value |
---|---|
WelcomeText | Bienvenue sur notre site! |
আপনি আপনার কনট্রোলার এবং ভিউতে Localization ব্যবহার করতে পারেন। কনট্রোলারে, আপনি IStringLocalizer
ইনজেক্ট করে নির্দিষ্ট ভাষায় কনটেন্ট রিটার্ন করতে পারবেন।
using Microsoft.Extensions.Localization;
public class HomeController : Controller
{
private readonly IStringLocalizer<HomeController> _localizer;
public HomeController(IStringLocalizer<HomeController> localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
ViewData["WelcomeMessage"] = _localizer["WelcomeText"];
return View();
}
}
এখানে, _localizer["WelcomeText"]
দ্বারা রিসোর্স ফাইল থেকে ভাষা অনুযায়ী কনটেন্ট লোড করা হচ্ছে।
ভিউতে ভাষার কনটেন্ট ব্যবহার করার জন্য @Localizer
এবং @ViewData
ব্যবহার করা যেতে পারে:
<h2>@ViewData["WelcomeMessage"]</h2>
এখানে, WelcomeText
কনটেন্টটি স্বয়ংক্রিয়ভাবে নির্দিষ্ট ভাষা অনুযায়ী প্রদর্শিত হবে।
আপনি ব্যবহারকারীদের জন্য ভাষা পরিবর্তনের ফিচারও প্রদান করতে পারেন। সাধারণত, ভাষা পরিবর্তন করা হয় Query String বা Route Data এর মাধ্যমে।
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US"),
SupportedCultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray(),
SupportedUICultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray(),
RequestCultureProviders = new[] {
new QueryStringRequestCultureProvider()
}
});
এখানে, আপনি Query String এর মাধ্যমে ভাষা পরিবর্তন করতে পারবেন, যেমন: ?culture=fr-FR
.
ASP.NET Core-এ Multiple Language Support যোগ করার মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনকে আন্তর্জাতিক ব্যবহারকারীদের জন্য উপযোগী করে তুলতে পারবেন। Localization এবং Internationalization এর মাধ্যমে আপনার অ্যাপ্লিকেশন একাধিক ভাষায় কনটেন্ট প্রদর্শন করতে সক্ষম হয়। এটি একটি সিম্পল প্রক্রিয়া, যেখানে রিসোর্স ফাইল তৈরি করা হয় এবং সেই অনুযায়ী কনটেন্ট প্রদর্শন করা হয়। এছাড়া, ক্লায়েন্টকে ভাষা পরিবর্তনের সুবিধা দেওয়ার মাধ্যমে ইউজার এক্সপেরিয়েন্স আরও উন্নত করা যায়।
common.read_more