Catch up on everthing we announced at this year's Firebase Summit. Learn more

আন্তর্জাতিককরণ (আই 18 এন) পুনর্লিখনগুলি কনফিগার করুন

ব্যবহারকারীর দেশ বা পছন্দের ভাষার উপর নির্ভর করে বিভিন্ন বিষয়বস্তু পরিবেশন করতে আন্তর্জাতিকীকরণ পুনর্লিখন ("i18n পুনর্লিখন") ব্যবহার করুন। এখানে কিছু উদাহরণ কনফিগারেশন যা আপনি সেট আপ করতে পারেন:

  • যারা ফরাসি (নির্বিশেষে দেশের) পছন্দ করা সকল ব্যবহারকারীর জন্য একই ফরাসি বিষয়বস্তু পরিবেশন।
    উদাহরণ: ফরাসি পাঠ্য সহ একটি হোমপেজ

  • যারা ফরাসি পছন্দ ব্যবহারকারীদের স্ট্যান্ডার্ড ফরাসি বিষয়বস্তু পরিবেশন কিন্তু কানাডিয়ান ব্যবহারকারী যারা ফরাসি পছন্দ জন্য, পরিবর্তে কানাডীয় ফরাসি বিষয়বস্তু পরিবেশন করা।
    উদাহরণ: স্ট্যান্ডার্ড ফ্রেঞ্চ ফ্রেজিং সহ একটি হোমপেজ বনাম কানাডিয়ান ফ্রেঞ্চ ফ্রেজিং সহ একটি হোমপেজ

  • সব কানাডিয়ান ব্যবহারকারী (নির্বিশেষে তাদের ভাষা পছন্দ) এর একই বিষয়বস্তু পরিবেশন।
    উদাহরণ: আপনার সাইটের "ডিফল্ট" ভাষা সহ একটি হোমপেজ কিন্তু কানাডা-নির্দিষ্ট বৈশিষ্ট্য (যেমন ছুটির থিম)

  • কানাডিয়ান ফরাসি বিষয়বস্তু কানাডিয়ান ব্যবহারকারীদের পরিবেশন করুন যারা ফরাসি পছন্দ করে।
    উদাহরণ: কানাডিয়ান ফ্রেঞ্চ ফ্রেজিং সহ একটি হোমপেজ এবং কানাডা-নির্দিষ্ট বৈশিষ্ট্য (যেমন ছুটির থিম)

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

I18n পুনর্লিখন সেট আপ করুন

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

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

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

    প্রতিটি সাবফোল্ডারে, সেই সংমিশ্রণের জন্য নির্দিষ্ট বিষয়বস্তু যোগ করুন, যেমন ছুটির দিনভিত্তিক হোমপেজ বা ভাষা-নির্দিষ্ট 404 পৃষ্ঠা।

    এখানে একটি উদাহরণ "i18n বিষয়বস্তু" ডিরেক্টরির নামক 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

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

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

  2. যোগ i18n আপনার টু অ্যাট্রিবিউট firebase.json ফাইল এবং যে ডিরেক্টরি আপনার "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 সামগ্রী" স্থাপন করুন এবং আপনার হোস্টিং সাইটে কনফিগ করুন।

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

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

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

হোস্টিং ব্যবহারকারীর আইপি ঠিকানা থেকে দেশের কোড গ্রহণ করে। দেশ কোড দুই অক্ষর দ্বারা ISO 3166-1 আলফা-2 কোডগুলি

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

  • যখন অনুসন্ধানসমূহ যেটি "i18n বিষয়বস্তু" জন্য পরিবেশন করা হোস্টিং, এটা মানের মান উপর ভিত্তি করে ভাষায় আদেশ Accept-Language হেডার।

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

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

"I18n কন্টেন্ট" এর জন্য অগ্রাধিকার অর্ডার

যদি আপনি i18n পুনর্লিখন সেট আপ করেন, হোস্টিং নিম্নলিখিত অগ্রাধিকার আদেশের উপর ভিত্তি করে বিষয়বস্তু পরিবেশন করে:

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

  2. কনফিগার পুনঃনির্দেশ

  3. স্থির-সামঞ্জস্যপূর্ণ সামগ্রী

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

    2. কান্ট্রি কোড শুধুমাত্র (উদাহরণস্বরূপ, থেকে বিষয়বস্তু ALL_ca/ )

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

    4. "ডিফল্ট" সঠিক-মিল স্ট্যাটিক সামগ্রী
      এই কন্টেন্ট "i18n বিষয়বস্তু" ডিরেক্টরির বাইরে যে root- এ মত হল public ডিরেক্টরি।

  4. কনফিগার করা নতুন করে লেখা হয়

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

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

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

    3. ডিফল্ট 404 পৃষ্ঠা (ফায়ারবেস দ্বারা সরবরাহিত)

অগ্রাধিকার অর্ডারের উদাহরণ

আসুন উপরে থেকে আমাদের উদাহরণটি চালিয়ে যাই। আমরা একই উদাহরণ ডিরেক্টরি এবং একটি উদাহরণ অনুরোধ ব্যবহার করব।

  • একটি "i18n বিষয়বস্তু" ডিরেক্টরির কাজ উদাহরণ স্থানীয় প্রকল্প ডিরেক্টরির (যাকে বলা হয় 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
    
  • উদাহরণ অনুরোধ তথ্য

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

    • কান্ট্রি কোড: ca (কানাডা)

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

  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 বিষয়বস্তু" ডিরেক্টরিটির এই অনুসন্ধান এবং পরিবেশন সম্পর্কে নিম্নলিখিতগুলি লক্ষ্য করুন:

  • localized-files/ ডিরেক্টরির আসলে থাকে না en_ca/ , en_ALL/ অথবা en/ সাবফোল্ডার, তাই হোস্টিং পর্যন্ত এটি অনুরোধ এর ভাষাটি দেশের সমন্বয় জন্য একটি মানানসই subfolder খুঁজে বের করে মাত্র অগ্রাধিকার ডাউন তালিকা এড়িয়ে যাবে।

  • যদিও localized-files/ ডিরেক্টরি ধারণকারী একটি es_ALL/ subfolder, যেমন উপরোক্ত উদাহরণের অনুরোধটিতে একটি অন্তর্ভুক্ত নয় es বা es-foo ভাষা কোড, তাই হোস্টিং "i18n বিষয়বস্তু" যে মিলের জন্য অনুসন্ধান করা হবে না es

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

দেশ এবং ভাষার শিরোনামগুলি ওভাররাইড করতে কুকি ব্যবহার করে আপনি কোন সামগ্রী পরিবেশন করতে পারেন তা পরিবর্তন করতে পারেন।

কুকি ওভাররাইড ব্যবহার করার কিছু উপায় এখানে দেওয়া হল:

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

  • আপনার ব্যবহারকারীরা তাদের দেখানো সামগ্রী পরিবর্তন করতে সক্ষম করুন। উদাহরণস্বরূপ, যদি আপনি একটি ভাষা জুতো বাস্তবায়ন, তারপর ব্যবহারকারীর সেট করতে পারেন 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";

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

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