ভাষা শনাক্তকরণ: গতিশীল বহুভাষিক সমর্থন

এই নিবন্ধটি ব্যাখ্যা করে কিভাবে আমরা স্বয়ংক্রিয়ভাবে ব্যবহারকারীর পছন্দের ভাষা শনাক্ত করে সেই ভাষায় কন্টেন্ট পরিবেশন করি।

সমস্যা: বৈশ্বিক ব্যবহারকারী পরিবেশন

বিভিন্ন দেশ থেকে বিভিন্ন ভাষায় কথা বলা ব্যবহারকারীরা আসেন:

  • ভারত: হিন্দি, বাংলা, তামিল, তেলেগু, গুজরাটি, মারাঠি, কন্নড়, মালয়ালম, পাঞ্জাবি, উর্দু

  • ইউরোপ: জার্মান, ফরাসি, স্প্যানিশ, ইতালিয়ান, পর্তুগিজ, রাশিয়ান

  • এশিয়া: জাপানি, কোরিয়ান, চাইনিজ

আমাদের তাদের ভাষার পছন্দ শনাক্ত করে স্বয়ংক্রিয়ভাবে অনূদিত কন্টেন্ট পরিবেশন করতে হবে।

শনাক্তকরণ অগ্রাধিকার

আমরা ক্রমানুসারে একাধিক উৎস পরীক্ষা করি:

১. ইউআরএল প্যারামিটার (?lang=hi)

২. সেশন (প্রথম শনাক্তকরণের পরে সংরক্ষিত)

৩. কুকি (translation_lang বা lang)

৪. ব্রাউজার অ্যাকসেপ্ট-ল্যাঙ্গুয়েজ হেডার (ভবিষ্যতে)

৫. ডিফল্ট (ইংরেজি)

এই ক্রম কেন?

ইউআরএল প্যারামিটার প্রথম: স্পষ্ট ভাষা পরিবর্তনের অনুমতি দেয়

সেশন দ্বিতীয়: ব্রাউজিং সেশনের সময় স্থায়ী থাকে

কুকি তৃতীয়: সেশন জুড়ে স্থায়ী হয় (৩০ দিন)

ডিফল্ট শেষ: নতুন ব্যবহারকারীদের জন্য ফলব্যাক

বাস্তবায়ন

def get_locale():
    # 1. Check URL parameter
    lang_param = request.args.get("lang")
    if lang_param in valid_langs:
        return lang_param

    # 2. Check session
    if "translation_lang" in session:
        return session["translation_lang"]

    # 3. Check cookie
    # ... (implementation details omitted)

ভাষা পরিবর্তন

ব্যবহারকারীরা ইউআরএলের মাধ্যমে ভাষা পরিবর্তন করতে পারেন:

/p/Treo-N100-8-256?lang=hi

এটি ট্রিগার করে:

১. সেশন সেট: session["translation_lang"] = "hi"

২. কুকি সেট: translation_lang=hi; Max-Age=2592000 (৩০ দিন)

৩. রিডাইরেক্ট: ইউআরএল থেকে lang প্যারামিটার সরান

সুবিধা: ভাষা নির্বাচনের পর পরিষ্কার ইউআরএল

সমর্থিত ভাষাসমূহ

আমরা ২০টি ভাষা সমর্থন করি:

ভারতীয় ভাষা (১০টি):

  • হিন্দি (hi)

  • বাংলা (bn)

  • তামিল (ta)

  • তেলেগু (te)

  • গুজরাটি (gu)

  • মারাঠি (mr)

  • কন্নড় (kn)

  • মালয়ালম (ml)

  • পাঞ্জাবি (pa)

  • উর্দু (ur)

ইউরোপীয় ভাষা (৭টি):

  • জার্মান (de)

  • ফরাসি (fr)

  • স্প্যানিশ (es)

  • ইতালিয়ান (it)

  • পর্তুগিজ (pt)

  • রাশিয়ান (ru)

এশীয় ভাষা (৩টি):

  • জাপানি (ja)

  • কোরিয়ান (ko)

  • চাইনিজ (zh)

কন্টেন্ট অনুবাদ

বিভিন্ন ধরনের কন্টেন্ট বিভিন্ন অনুবাদ পদ্ধতি ব্যবহার করে:

স্ট্যাটিক টেমপ্লেট (Flask-Babel)

নেভিগেশন, বাটন, লেবেল .po ফাইলের মাধ্যমে অনূদিত:

{{ _('Add to Cart') }}  → "কার্টে যোগ করুন" (বাংলা)

গতিশীল কন্টেন্ট (TranslationManager)

পণ্যের নাম, বৈশিষ্ট্যগুলো ফ্রেজ টেবিলের মাধ্যমে অনূদিত:

"Mini PC" → "মিনি পিসি" (বাংলা)

দীর্ঘ কন্টেন্ট (DeepSeek AI)

পণ্যের বিবরণ, নিবন্ধসমূহ এআই-এর মাধ্যমে অনূদিত:

"Compact office computer..." → "কমপ্যাক্ট অফিস কম্পিউটার..." (বাংলা)

দেখুন: বিস্তারিত জানতে অনুবাদ ব্যবস্থা

আঞ্চলিক ফরম্যাটিং

ভাষা নির্বাচন ফরম্যাটিংকেও প্রভাবিত করে:

সংখ্যা ফরম্যাট

ইংরেজি: 1,234.56

ইউরোপীয়: 1.234,56 (বিপরীত সেপারেটর)

ভারতীয়: 1,23,456 (লাখ/কোটি গ্রুপিং)

তারিখ ফরম্যাট

ইংরেজি: Feb 18, 2026

ইউরোপীয়: 18.02.2026

ভারতীয়: 18/02/2026

মুদ্রা

ইংরেজি: ₹1,234

ইউরোপীয়: €1.234

আন্তর্জাতিক: $1,234

ভাষা নির্বাচক UI

ব্যবহারকারীরা ড্রপডাউনের মাধ্যমে ভাষা পরিবর্তন করতে পারেন:

অবস্থান: শীর্ষ নেভিগেশন বার

প্রদর্শন: পতাকা আইকন + ভাষার নাম

আচরণ: ?lang=<code> সহ পৃষ্ঠা রিলোড

এসইও বিবেচনা

ইউআরএল কাঠামো

আমরা একক ইউআরএল ব্যবহার করি সমস্ত ভাষার জন্য (কোন /hi/, /de/ উপসর্গ নেই):

সুবিধা: সহজ স্থাপত্য, ডুপ্লিকেট কন্টেন্ট সমস্যা নেই

ট্রেড-অফ: ভাষা প্রতি কম এসইও মান

Hreflang ট্যাগ

আমরা বিকল্প ভাষার লিঙ্ক যোগ করি:

<link rel="alternate" hreflang="en" href="https://www.thinvent.in/p/Treo-N100">
<link rel="alternate" hreflang="hi" href="https://www.thinvent.in/p/Treo-N100?lang=hi">
<link rel="alternate" hreflang="de" href="https://www.thinvent.in/p/Treo-N100?lang=de">

সুবিধা: গুগল জানে কোন ভাষার সংস্করণ দেখাতে হবে

ফলব্যাক কৌশল

যদি নির্বাচিত ভাষার জন্য অনুবাদ অনুপস্থিত থাকে:

১. ইংরেজি চেষ্টা করুন: বেশিরভাগ কন্টেন্টের ইংরেজি সংস্করণ আছে

২. মূল দেখান: কিছু না দেখানোর চেয়ে ভাল

৩. অনুবাদের জন্য সারিবদ্ধ করুন: ব্যাচ প্রক্রিয়াকরণের জন্য অনুবাদ সারিতে যোগ করুন

কর্মদক্ষতা

ক্যাশিং

অনুবাদ মেমরিতে ক্যাশ করা হয়:

ফ্রেজ টেবিল: শুরুতে একবার লোড হয়

এআই অনুবাদ: ডাটাবেজে ক্যাশ করা হয়

সুবিধা: অনুরোধ প্রতি কোন অনুবাদ ওভারহেড নেই

লেইজি লোডিং

অনুবাদ শুধুমাত্র প্রয়োজন হলে লোড হয়:

পণ্যের বিবরণ: পণ্য পৃষ্ঠা দেখার সময় লোড হয়

কোয়েরি পৃষ্ঠা কন্টেন্ট: কোয়েরি পৃষ্ঠা দেখার সময় লোড হয়

সুবিধা: দ্রুত প্রাথমিক পৃষ্ঠা লোড

তথ্যসূত্র

প্রযুক্তিগত ধারণা

লাইব্রেরি

  • Flask-Babel - টেমপ্লেট অনুবাদ

  • Babel - আন্তর্জাতিকীকরণ লাইব্রেরি

সম্পর্কিত নিবন্ধ

সারসংক্ষেপ

ভাষা শনাক্তকরণ একটি অগ্রাধিকার ব্যবস্থা ব্যবহার করে:

শনাক্তকরণ ক্রম:

  • ✅ ইউআরএল প্যারামিটার (?lang=hi)

  • ✅ সেশন (ব্রাউজিংয়ের সময়)

  • ✅ কুকি (৩০ দিন)

  • ✅ ডিফল্ট (ইংরেজি)

সমর্থিত:

  • ✅ ২০টি ভাষা (১০টি ভারতীয়, ৭টি ইউরোপীয়, ৩টি এশীয়)

  • ✅ আঞ্চলিক ফরম্যাটিং (সংখ্যা, তারিখ, মুদ্রা)

  • ✅ এসইও hreflang ট্যাগ

অনুবাদ পদ্ধতি:

  • ✅ Flask-Babel (স্ট্যাটিক টেমপ্লেট)

  • ✅ TranslationManager (পণ্যের নাম, বৈশিষ্ট্য)

  • ✅ DeepSeek AI (বিবরণ, নিবন্ধ)

কর্মদক্ষতা:

  • ✅ মেমরি ক্যাশিং

  • ✅ লেইজি লোডিং

  • ✅ এআই অনুবাদের জন্য ডাটাবেজ ক্যাশিং

এটি স্বয়ংক্রিয় ভাষা শনাক্তকরণ এবং নিরবিচ্ছিন্ন বহুভাষিক অভিজ্ঞতা সক্ষম করে।


← ডকুমেন্টেশন সূচকায় ফিরে যান