আন্তর্জাতিকীকরণ (i18n) পুনর্লিখন কনফিগার করুন

Use internationalization rewrites ("i18n rewrites") to serve different content depending on a user's country or preferred language. Here are some example configurations that you could set up:

  • Serve the same French content to all users who prefer French (regardless of country).
    উদাহরণ: ফরাসি পাঠ্য সহ একটি হোমপেজ

  • Serve Standard French content to users who prefer French, but for Canadian users who prefer French, serve Canadian French content instead.
    Example: a homepage with Standard French phrasing versus a homepage with Canadian French phrasing

  • Serve the same content to all Canadian users (regardless of their language preference).
    উদাহরণ: আপনার সাইটের "ডিফল্ট" ভাষার সাথে একটি হোমপেজ তবে কানাডা-নির্দিষ্ট বৈশিষ্ট্য সহ (ছুটির থিমের মতো)

  • Serve Canadian French content to Canadian users who prefer French.
    উদাহরণ: কানাডিয়ান ফরাসি বাক্যাংশ সহ একটি হোমপেজ এবং একটি কানাডা-নির্দিষ্ট বৈশিষ্ট্য (যেমন ছুটির থিম)

Firebase Hosting তাদের আইপি ঠিকানা থেকে কোনও ব্যবহারকারীর দেশ এবং Accept-Language অনুরোধ শিরোনাম থেকে ব্যবহারকারীর ভাষার পছন্দগুলি নির্ধারণ করে (সাধারণত তাদের ওয়েব ব্রাউজার দ্বারা স্বয়ংক্রিয়ভাবে সেট করা )।

I18N পুনরায় লেখা সেট আপ করুন

আপনার Hosting সাইটের জন্য আই 18 এন পুনরায় লিখতে সেট আপ করতে, আপনার সমস্ত স্থানীয়করণযুক্ত সামগ্রীর জন্য আপনাকে একটি "আই 18 এন সামগ্রী" ডিরেক্টরি তৈরি করতে হবে, তারপরে আপনার নতুন "আই 18 এন সামগ্রী" ডিরেক্টরিটি নির্দেশ করার জন্য আপনার firebase.json ফাইলটিতে i18n বৈশিষ্ট্য যুক্ত করুন।

এখানে বিস্তারিত পদক্ষেপ আছে:

  1. আপনার স্থানীয় অ্যাপ্লিকেশন ডিরেক্টরিটির public ফোল্ডারের মধ্যে, আপনার "আই 18 এন সামগ্রী" এর জন্য একটি পৃথক ডিরেক্টরি তৈরি করুন, তারপরে আপনার সাইট দ্বারা সমর্থিত প্রতিটি ভাষা এবং দেশের সংমিশ্রণের জন্য সাবফোল্ডার তৈরি করুন।

    In each subfolder, add the content specific for that combination, like holiday-themed homepages or language-specific 404 pages.

    Here's an example "i18n content" directory called localized-files :

    public/
        index.html  // your site's default homepage
        404.html  // your site's custom 404 page
    
        localized-files/
            ALL_ca/
                index.html
            es_ALL/
                index.html
                404.html
            fr/
                index.html
                404.html
            fr_ca/
                index.html

    localized-files/ ডিরেক্টরিতে আপনার সাইটের দ্বারা সমর্থিত প্রতিটি ভাষা এবং দেশের সমন্বয়ের জন্য আলাদা সাবফোল্ডার রয়েছে। প্রতিটি সাবফোল্ডারের নামকরণ প্যাটার্ন অবশ্যই এই ফর্ম্যাটগুলির মধ্যে একটি অনুসরণ করবে:

    • languageCode_countryCode : সেই ব্যবহারকারীদের জন্য নির্দিষ্ট সামগ্রী রয়েছে যাদের সেই ভাষা পছন্দ রয়েছে এবং সেই দেশের কোড রয়েছে

    • languageCode : সেই ভাষার পছন্দ রয়েছে এমন ব্যবহারকারীদের জন্য নির্দিষ্ট সামগ্রী রয়েছে তবে সামগ্রীটি দেশ-নির্দিষ্ট নয়; মূলত languageCode_ALL এর সমতুল্য

    এই কোডগুলি সম্পর্কে আরও বিশদ বিবরণের জন্য নীচের উপবিভাগ দেশ এবং ভাষার কোডগুলি পড়ুন৷ আপনি যেকোনো দেশ (যেমন es_ALL/ ) বা যেকোনো ভাষা (যেমন ALL_ca/ ) নির্দেশ করতে ALL (কেস-সংবেদনশীল) এর মান ব্যবহার করতে পারেন।

    একটি সাবফোল্ডারের ফাইলগুলির জন্য public ডিরেক্টরি বা অন্যান্য সাবফোল্ডারগুলিতে অনুরূপ ফাইল থাকা দরকার নেই। আপনি এমন সামগ্রী তৈরি করতে পারেন যা সম্পূর্ণরূপে একটি ভাষা এবং/অথবা দেশের জন্য নির্দিষ্ট।

  2. আপনার firebase.json ফাইলে i18n অ্যাট্রিবিউট যোগ করুন এবং আপনার "i18n বিষয়বস্তু" ধারণকারী ডিরেক্টরি নির্দিষ্ট করুন। আমাদের উদাহরণ অবিরত:

    // firebase.json
    
    "hosting": {
    
      "public": "public",
    
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],
    
      "i18n": {
        "root": "/localized-files"  // directory that contains your "i18n content"
      }
    
      ...
    }

    root জন্য নির্দিষ্ট করা ডিরেক্টরিটি অবশ্যই সেই ডিরেক্টরির নাম হতে হবে যাতে আপনার সমস্ত "i18n বিষয়বস্তু" সাবফোল্ডার থাকে। আপনি যদি আপনার সমস্ত "i18n বিষয়বস্তু" সাবফোল্ডারগুলি আপনার public ডিরেক্টরির রুটে রাখেন, root মানটির জন্য / ব্যবহার করুন। root মানটিতে অগ্রণী এবং পিছনের স্ল্যাশগুলি ঐচ্ছিক৷

  3. আপনার "i18n সামগ্রী" স্থাপন করুন এবং আপনার Hosting সাইটে কনফিগার করুন।

আপনি কুকি ওভাররাইডগুলি ব্যবহার করে আপনার সেটআপটি পরীক্ষা করতে পারেন।

দেশ এবং ভাষা কোড

"i18n বিষয়বস্তু" সাবফোল্ডার নামকরণ করার সময়, আপনাকে অবশ্যই দেশ এবং ভাষা উভয় কোডের জন্য ছোট হাতের অক্ষর ব্যবহার করতে হবে। আপনি যেকোনো দেশ (যেমন es_ALL/ ) বা যেকোনো ভাষা (যেমন ALL_ca/ ) নির্দেশ করতে ALL (কেস-সংবেদনশীল) এর মান ব্যবহার করতে পারেন।

Hosting ব্যবহারকারীর আইপি ঠিকানা থেকে দেশের কোড পায়। দেশের কোড হল দুই-অক্ষরের ISO 3166-1 alpha-2 কোড

ভাষার কোডগুলি ব্যবহারকারীর Accept-Language অনুরোধ শিরোনাম থেকে প্রাপ্ত হয় (সাধারণত তাদের ওয়েব ব্রাউজার দ্বারা স্বয়ংক্রিয়ভাবে সেট করা হয় )। তারা আইএসও 639-1 কোড । ভাষা কোড ব্যবহার করার সময় নিম্নলিখিত মনে রাখবেন:

  • যখন Hosting সার্চ করে কোন "i18n বিষয়বস্তু" পরিবেশন করা হবে, তখন এটি Accept-Language হেডারে মানসম্পন্ন মানগুলির উপর ভিত্তি করে ভাষাগুলিকে অর্ডার করে৷

  • Hosting Accept-Language শিরোনামে যে কোনও আঞ্চলিক এবং দেশের সাবট্যাগগুলি ফেলে দেয়, সুতরাং "আই 18 এন সামগ্রী" সাবফোল্ডার নামের ভাষা কোডটিতে এই সাবট্যাগগুলি থাকতে পারে না। উদাহরণস্বরূপ, আপনি সাবফোল্ডার নামে ভাষা কোড হিসাবে es-419 বা es-US ব্যবহার করতে পারবেন না তবে আপনি es ব্যবহার করতে পারেন।

    আপনি যদি নির্দিষ্ট আঞ্চলিক বা দেশের সামগ্রী পরিবেশন করতে চান তবে আপনি সাবফোল্ডারগুলি তৈরি করতে পারেন যা আপনি সমর্থন করতে চান এমন নির্দিষ্ট ভাষা-দেশ সামগ্রী রয়েছে।

"I18n সামগ্রী" এর জন্য অগ্রাধিকার আদেশ

আপনি যদি আই 18n পুনরায় লেখাগুলি সেট আপ করেন তবে Hosting নিম্নলিখিত অগ্রাধিকার আদেশের ভিত্তিতে সামগ্রী সরবরাহ করে:

  1. সংরক্ষিত নেমস্পেস যা এ /__/* পাথ বিভাগ দিয়ে শুরু হয়

  2. পুনর্নির্দেশগুলি কনফিগার করা হয়েছে

  3. সঠিক ম্যাচ স্ট্যাটিক সামগ্রী

    1. ভাষা কোড + দেশ কোড (উদাহরণস্বরূপ, fr_ca/ থেকে সামগ্রী)
      আদেশটি অনুরোধের Accept-Language শিরোনামে প্রতিটি ভাষার জন্য মানের মান অনুসরণ করে।

    2. কেবল দেশের কোড (উদাহরণস্বরূপ, ALL_ca/ থেকে সামগ্রী)

    3. ভাষা কোড কেবল (উদাহরণস্বরূপ, fr/ বা es_ALL/ থেকে সামগ্রী)
      আদেশটি অনুরোধের Accept-Language শিরোনামে প্রতিটি ভাষার জন্য মানের মান অনুসরণ করে।

    4. "Default" exact-match static content
      এটি এমন বিষয়বস্তু যা public ডিরেক্টরিটির মূলের মতো "আই 18 এন সামগ্রী" ডিরেক্টরিটির বাইরে।

  4. কনফিগার করা পুনর্লিখন

  5. 404 handling

    1. i18n 404 pages
      এটি সঠিক-ম্যাচ স্ট্যাটিক সামগ্রীর জন্য উপরে তালিকাভুক্ত একই অগ্রাধিকার আদেশ অনুসরণ করে।

    2. কাস্টম 404 পৃষ্ঠা

    3. Default 404 page (provided by Firebase)

Example for priority order

Let's continue our example from above. আমরা একই উদাহরণ ডিরেক্টরি এবং একটি উদাহরণ অনুরোধ ব্যবহার করব।

  • "আই 18 এন কন্টেন্ট" ডিরেক্টরি সহ স্থানীয় প্রকল্প ডিরেক্টরি উদাহরণ ( localized-files বলা হয়)

    public/
        index.html  // your site's default homepage
        404.html  // your site's custom 404 page
    
        localized-files/
            ALL_ca/
                index.html
            es_ALL/
                index.html
                404.html
            fr/
                index.html
                404.html
            fr_ca/
                index.html
  • Example request information

    • ভাষা কোড: fr , en (ফরাসী, তারপরে ইংরেজি)
      ভাষা কোডগুলি Accept-Language শিরোনামে মানের মানের ভিত্তিতে অর্ডার করা হয়।

    • দেশের কোড: ca (কানাডা)

সঠিক-মিলের অগ্রাধিকার আদেশ এবং ভাষার পছন্দগুলির জন্য মানের মান অনুসারে, Hosting নিম্নলিখিত ক্রমে একটি অনুরোধ করা পৃষ্ঠার জন্য ডিরেক্টরিগুলি অনুসন্ধান করবে।

  1. public/localized-files/fr_ca/

  2. public/localized-files/en_ca/

  3. public/localized-files/ALL_ca/

  4. public/localized-files/fr_ALL/

  5. public/localized-files/fr/

  6. public/localized-files/en_ALL/

  7. public/localized-files/en/

  8. public/

  9. 404 হ্যান্ডলিং

কোন পৃষ্ঠা ব্যবহারকারীকে পরিবেশন করা হবে?

  • অনুরোধ করা পৃষ্ঠা: index.html

  • অনুরোধ করা পৃষ্ঠা: awesome-page.html

"I18n বিষয়বস্তু" ডিরেক্টরিটির এই অনুসন্ধান এবং পরিবেশন সম্পর্কে নিম্নলিখিতটি নোট করুন:

  • The localized-files/ directory doesn't actually contain en_ca/ , en_ALL/ , or en/ subfolders, so Hosting will just skip down the priority list until it finds a matching subfolder for the request's language-country combination.

  • যদিও localized-files/ ডিরেক্টরিতে একটি es_ALL/ সাবফোল্ডার রয়েছে, তবে উপরের উদাহরণ অনুরোধে কোনও es বা es-foo ভাষা কোড অন্তর্ভুক্ত নয়, সুতরাং Hosting es সাথে মেলে "I18N সামগ্রী" অনুসন্ধান করবে না।

  • fr/ এবং fr_ALL/ নামক সাবফোল্ডারগুলি ব্যবহারকারীর দেশ এবং ভাষা পছন্দের দৃষ্টিকোণ থেকে সমতুল্য। তবে, উভয় সাবফোল্ডার যদি উপস্থিত থাকে তবে Hosting এফআর fr/ সামগ্রীর আগে fr_ALL/ সামগ্রী পরিবেশন করবে।

You can change what content is served by using cookies to override the country and language headers.

আপনি কুকি ওভাররাইডগুলি ব্যবহার করতে পারেন এমন কয়েকটি উপায় এখানে:

  • কোন সামগ্রী পরিবেশন করা হয় তা যাচাই করতে বিভিন্ন ভাষা/দেশের সংমিশ্রণের সাথে একটি বৈশিষ্ট্য পরীক্ষা করুন।

  • আপনার ব্যবহারকারীদের তারা যে সামগ্রী দেখেন তা পরিবর্তন করতে সক্ষম করুন। উদাহরণস্বরূপ, আপনি একটি ভাষা বাছাইকারী বাস্তবায়ন করতে পারেন, তারপরে সেই অনুযায়ী ব্যবহারকারীর firebase-language-override কুকিটি সেট করুন।

কুকি ওভাররাইডগুলি কনফিগার করতে, এই উভয়ই বা উভয়ই সাথে কুকিজ সেট করুন: firebase-country-override এবং firebase-language-override । উদাহরণস্বরূপ, নিম্নলিখিত জাভাস্ক্রিপ্ট কোড স্নিপেট ca হতে দেশ কোড এবং Accept-Language শিরোনামকে fr,en :

document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";

ভাষা কুকি ওভাররাইডগুলি অবশ্যই সাবট্যাগ বা মানের মান ছাড়াই পছন্দের ক্রম অনুসারে ভাষা কোডগুলির একটি কমা-বিচ্ছিন্ন তালিকা হতে হবে।

কুকি ওভাররাইডগুলি লগগুলিতে প্রতিফলিত হয় না।