Blazor সংস্কৃতি রাউটিং: SEO-সুবিধাজনক সংস্কৃতি URL Blazor-এ
এই Blazor টিউটোরিয়ালে, আপনি SEO-সুবিধাজনক সংস্কৃতি লিঙ্ক তৈরি করবেন যাতে প্রতিটি পৃষ্ঠা পরিষ্কার, ইনডেক্সযোগ্য URL ব্যবহার করে যেমন ghostlyinc.com/en-us/page-name। আপনি শিখবেন কিভাবে সংস্কৃতি নিরাপদে পরিবর্তন করবেন, নেভিগেশন সঙ্গতিপূর্ণ রাখবেন এবং বহুভাষিক কন্টেন্টের জন্য খুঁজে পাওয়ার ক্ষমতা বাড়াবেন। ধাপে ধাপে তৈরি করি।
যদি আপনি প্রথমে সম্পূর্ণ মৌলিক বিষয় জানতে চান, পড়ুন Blazor কী? তারপর SEO-এর জন্য সংস্কৃতি রাউটিং প্রয়োগ করতে ফিরে আসুন।

বিষয়বস্তু সূচি
এই SEO-সুবিধাজনক সংস্কৃতি লিঙ্ক টিউটোরিয়ালে আপনি যা তৈরি করবেন
এই গাইডে সম্পূর্ণ প্রয়োগের ধাপগুলো দেখানো হয়েছে:
- অ্যাপ্লিকেশনের সংস্কৃতি পরিবর্তন করুন: Blazor অ্যাপে সংস্কৃতি সঙ্গতিপূর্ণভাবে আপডেট করুন।
- গঠনমূলক URL স্কিম ব্যবহার করুন: প্রতিটি সংস্কৃতির জন্য /en-us/your-page এর অধীনে পৃষ্ঠা পরিবেশন করুন।
- ব্রাউজার-ভিত্তিক সংস্কৃতি পরিবর্তন সমর্থন করুন: ব্যবহারকারীদের পছন্দ অনুযায়ী সংস্কৃতি পরিবর্তন করতে দিন।
- অবৈধ সংস্কৃতি লিঙ্ক পরিচালনা করুন: যদি সংস্কৃতি সমর্থিত না হয়, রিডাইরেক্ট বা বিকল্প দেখান।
- URL গুলো SEO-সুবিধাজনক ও সংস্কৃতি-নির্দিষ্ট রাখুন: প্রতিটি লোকালাইজড পৃষ্ঠা সহজে ক্রলযোগ্য করুন।
- ইনডেক্সিং ও ব্যবহারকারীর অভিজ্ঞতা উন্নত করুন: দৃশ্যমানতা বাড়ান এবং অভিজ্ঞতা পূর্বানুমানযোগ্য রাখুন।
Blazor-এ মেটাডেটা ও গঠনমূলক SEO মৌলিক বিষয় জানতে দেখুন Blazor SEO মেটাডেটা কম্পোনেন্ট.
ধাপে ধাপে: Blazor-এ SEO-সুবিধাজনক সংস্কৃতি URL প্রয়োগ
এখন Blazor অ্যাপে সংস্কৃতি-ভিত্তিক রাউটিং যোগ করার কোড দেখে নেওয়া যাক। প্রতিটি ধাপ অনুসরণ করুন, আপনি বর্তমান ও ভবিষ্যতের পৃষ্ঠায় সঙ্গতিপূর্ণ সংস্কৃতি URL পাবেন।
পরবর্তী ধাপে, একটি Culture Controller যোগ করুন। এটি নির্বাচিত সংস্কৃতি প্রয়োগ করে এবং ব্যবহারকারীকে সঠিক সংস্কৃতি-নির্দিষ্ট URL-এ রিডাইরেক্ট করে।
এখন আপনার কাছে একটি ICultureService এবং একটি CultureController আছে। এখন আপডেট করুন Program.cs এই পরিবর্তনগুলো সহ:
- ICultureService নিবন্ধন করুন।
- ডিফল্ট সংস্কৃতি তালিকার প্রথম সমর্থিত সংস্কৃতিতে সেট করুন।
- কন্টেন্ট লোকালাইজেশনের জন্য সমর্থিত সংস্কৃতিগুলো কনফিগার করুন।
- UI লোকালাইজেশনের জন্য সমর্থিত UI সংস্কৃতিগুলো কনফিগার করুন।
- অনুরোধ পাইপলাইনে কনফিগারকৃত লোকালাইজেশন অপশনগুলো প্রয়োগ করুন।
- আসা HTTP অনুরোধগুলোকে সংশ্লিষ্ট কন্ট্রোলার অ্যাকশনের সাথে ম্যাপ করুন।
এখন আপডেট করুন _host.cshtml এই পরিবর্তনগুলো সহ:
- ICultureService ইনজেক্ট করুন।
- HTML lang অ্যাট্রিবিউট সেট করুন।
- body ট্যাগে একটি Culture কুকি সেট করুন।
এখন আপডেট করুন App.razor এই পরিবর্তনগুলো সহ:
- ICultureService ইনজেক্ট করুন।
- NavigationManager ইনজেক্ট করুন।
- নিচে প্রদর্শিত কোড অংশ কোডে যোগ করুন।
@inject NavigationManager Navigation
@inject ICultureService cultureService
@code {
/// <summary>
/// This section handles redirection to a new culture when the user changes the culture in the browser link.
/// If you don't wish to support this, you can delete this code.
/// By default, it redirects to the current culture if no culture is specified in the link.
/// </summary>
/// <param name="firstRender">Indicates whether this is the initial rendering of the page</param>
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
// Check if the link contains a specified culture
var culture = cultureService.GetCultureFromLink(Navigation.Uri, Navigation.BaseUri);
// If the culture string is null or empty, it's the page's first load. In this case, set the culture from the browser settings.
if (string.IsNullOrEmpty(culture)) culture = CultureInfo.CurrentCulture.Name.ToLowerInvariant();
// Check if the culture is supported by the application
if (!cultureService.IsCultureSupported(culture))
{
// Try to set the language contained in the culture
culture = cultureService.HandleUnsupportedCulture(culture);
}
var cultureInfo = new CultureInfo(culture);
// If the current culture differs from the specified culture, set the new culture
if (!string.Equals(CultureInfo.CurrentCulture.Name, culture, StringComparison.OrdinalIgnoreCase))
{
cultureService.SetCulture(cultureInfo);
}
}
}
}
বিভিন্ন সংস্কৃতি পরীক্ষা করার জন্য একটি নতুন কম্পোনেন্ট তৈরি করুন: ChangeCulture.razor
@using System.Globalization
@inject ICultureService cultureService
<button @onclick="() => SetCulture(Englisch)"> Englisch</button>
<button @onclick="() => SetCulture(Arabische)"> Arabische</button>
<button @onclick="() => SetCulture(France)"> France</button>
<button @onclick="() => SetCulture(Austria)"> Austria</button>
<button @onclick="() => SetCulture(Germany)"> Germany</button>
@code {
private string Englisch = "en-us";
private string Arabische = "ar-ae";
private string France = "fr-fr";
private string Austria = "de-at";
private string Germany = "de-de";
private void SetCulture(string culture)
{
cultureService.SetCulture(new CultureInfo(culture));
}
}
এখন আপডেট করুন MainLayout.razor এই পরিবর্তনগুলো সহ:
- ICultureService ইনজেক্ট করুন।
- NavigationManager ইনজেক্ট করুন।
- আগে তৈরি কম্পোনেন্ট যোগ করুন।
- নিচে প্রদর্শিত কোড অংশ যোগ করুন।
@inject NavigationManager navi
@inject ICultureService cultureService
<article class="content px-4">
<ChangeCulture/>
@Body
</article>
@code {
// Here we redirect to culture link, for example, from example.com to example.com/de-de/
protected override void OnAfterRender(bool firstRender)
{
// Only perform this logic on the first render
if (firstRender)
{
// Extract the relative path from the current URI by removing the base URI
var currentUri = navi.Uri.Replace(navi.BaseUri, ");
// Find the index of the first slash in the relative path
int firstSlashIndex = currentUri.IndexOf('/');
// Prepare the culture-specific URI
string uri;
if (firstSlashIndex >= 0)
{
// Extract the part of the relative path after the first slash
string result = currentUri.Substring(firstSlashIndex + 1);
// Construct the culture-specific URI
uri = "/" + cultureService.Culture + "/" + result;
}
else
{
// If no slash was found in the relative path, navigate to the root path for the current culture
uri = "/" + cultureService.Culture + "/";
}
// Navigate to the determined URI
navi.NavigateTo(uri, false, false);
}
// Call the base OnAfterRender method to ensure proper functioning of the component
base.OnAfterRender(firstRender);
}
}
সব পৃষ্ঠায় সংস্কৃতি রাউটিং প্রয়োগ করুন
এখন Blazor-এর সব পৃষ্ঠায় SEO-সুবিধাজনক সংস্কৃতি লিঙ্ক প্রয়োগের মাধ্যমে আপনি একটি সঙ্গতিপূর্ণ পদ্ধতি প্রতিষ্ঠা করেছেন যা বর্তমান ও ভবিষ্যতের পৃষ্ঠায় প্রযোজ্য। নতুন রুট যোগ করার সময় একই ধাপ অনুসরণ করুন যাতে প্রতিটি লোকালাইজড পৃষ্ঠা ক্রলযোগ্য ও পূর্বানুমানযোগ্য থাকে।
- ICultureService ইনজেক্ট করুন।
- একটি Culture প্যারামিটার তৈরি করুন।
- OnInitialized মেথডে সংস্কৃতি প্যারামিটার সেট করুন।
- পেজ ট্যাগে Culture প্যারামিটার যোগ করুন।
নিচের কোড পৃষ্ঠায় পরিবর্তনগুলো দেখায় fetchdata.razor
বাস্তব উদাহরণে আত্মবিশ্বাসী Blazor অ্যাপ তৈরি করুন
আমার পরামর্শ Blazor এর মৌলিক বিষয়, আর্কিটেকচার নির্বাচন এবং রক্ষণাবেক্ষণযোগ্য কম্পোনেন্ট ডিজাইনের উপর ব্যবহারিক ভিডিও নির্দেশনার মাধ্যমে আমি এখানে অনেক কিছু শিখেছি।
- Razor কম্পোনেন্ট, স্টেট এবং ডিপেন্ডেন্সি ইনজেকশনের জন্য ধাপে ধাপে ল্যাব।
- হোস্টিং, পারফরম্যান্স এবং ডিপ্লয়মেন্ট ওয়ার্কফ্লো নিয়ে ব্যবহারিক নির্দেশনা।
- পরিষ্কার UI কৌশল যা আপনার Blazor কোডবেস রক্ষণাবেক্ষণযোগ্য রাখে।
Blazor-এ SEO-সুবিধাজনক সংস্কৃতি URL কেন গুরুত্বপূর্ণ
- খুঁজে পাওয়ার ক্ষমতা বাড়ান: সংস্কৃতি-ভিত্তিক URL সার্চ ইঞ্জিনকে ভাষা-নির্দিষ্ট কন্টেন্ট বুঝতে ও সঠিকভাবে ইনডেক্স করতে সাহায্য করে।
- ব্যবহারকারীর বিশ্বাস বাড়ান: ব্যবহারকারীরা /en-us/ বা /de-de/ তৎক্ষণাৎ চিনতে পারে, যা বাধা কমায় ও সম্পৃক্ততা বাড়ায়।
- নেভিগেশন সঙ্গতিপূর্ণ রাখুন: সাইট জুড়ে একটি URL প্যাটার্ন মিশ্র ভাষার নেভিগেশন প্রতিরোধ করে।
- বহুভাষিক কন্টেন্ট বৃদ্ধি করুন: নতুন ভাষা যোগ করতে পারেন রুট পুনঃনির্মাণ বা পৃষ্ঠা নকল ছাড়াই।
- আপনার সাইট ভবিষ্যতের জন্য প্রস্তুত করুন: নতুন পৃষ্ঠাগুলো স্বয়ংক্রিয়ভাবে একই SEO-সুবিধাজনক সংস্কৃতি রাউটিং নিয়ম অনুসরণ করে।
- গ্লোবাল পৌঁছান: সংস্কৃতি-নির্দিষ্ট URL বিভিন্ন অঞ্চল ও ভাষার পছন্দ লক্ষ্য করা সহজ করে।
যদি আপনি Blazor Server পাবলিকভাবে ডিপ্লয় করতে চান, এই হোস্টিং নোটগুলো সাহায্য করবে: UpCloud Blazor Server হোস্টিং.
সাধারণ প্রশ্নাবলী
সাধারণ সংস্কৃতি URL ও Blazor লোকালাইজেশন প্রশ্নের উত্তর
আমরা শেষ করেছি। ভবিষ্যতের পৃষ্ঠাগুলোর জন্য রুট + সংস্কৃতি প্যারামিটার ধাপগুলো পুনরাবৃত্তি করুন। কোডে লিঙ্ক তৈরি করার সময় সবসময় সংস্কৃতি অংশ অন্তর্ভুক্ত করুন যাতে নেভিগেশন ভাঙে না।