ব্যবহারকারীর দেশ বা পছন্দের ভাষার উপর নির্ভর করে বিভিন্ন বিষয়বস্তু পরিবেশন করতে আন্তর্জাতিকীকরণ পুনর্লিখন ("i18n পুনর্লিখন") ব্যবহার করুন। এখানে কিছু উদাহরণ কনফিগারেশন রয়েছে যা আপনি সেট আপ করতে পারেন:
ফ্রেঞ্চ পছন্দ করে এমন সমস্ত ব্যবহারকারীদের কাছে একই ফরাসি সামগ্রী পরিবেশন করুন (দেশ নির্বিশেষে)।
উদাহরণ: ফরাসি পাঠ্য সহ একটি হোমপেজযারা ফ্রেঞ্চ পছন্দ করেন তাদের কাছে স্ট্যান্ডার্ড ফ্রেঞ্চ সামগ্রী পরিবেশন করুন, কিন্তু কানাডিয়ান ব্যবহারকারী যারা ফ্রেঞ্চ পছন্দ করেন তাদের পরিবর্তে কানাডিয়ান ফ্রেঞ্চ সামগ্রী পরিবেশন করুন।
উদাহরণ: স্ট্যান্ডার্ড ফ্রেঞ্চ বাক্যাংশ সহ একটি হোমপেজ বনাম কানাডিয়ান ফরাসি বাক্যাংশ সহ একটি হোমপেজসমস্ত কানাডিয়ান ব্যবহারকারীদের (তাদের ভাষা পছন্দ নির্বিশেষে) একই সামগ্রী পরিবেশন করুন।
উদাহরণ: আপনার সাইটের "ডিফল্ট" ভাষা সহ একটি হোমপেজ কিন্তু কানাডা-নির্দিষ্ট বৈশিষ্ট্য সহ (যেমন ছুটির থিম)ফ্রেঞ্চ পছন্দ করে এমন কানাডিয়ান ব্যবহারকারীদের কানাডিয়ান ফ্রেঞ্চ সামগ্রী পরিবেশন করুন।
উদাহরণ: কানাডিয়ান ফরাসি বাক্যাংশ সহ একটি হোমপেজ এবং একটি কানাডা-নির্দিষ্ট বৈশিষ্ট্য (যেমন ছুটির থিম)
Firebase হোস্টিং একটি ব্যবহারকারীর দেশকে তাদের IP ঠিকানা থেকে এবং ব্যবহারকারীর ভাষা ��ছন্দ নির্ধারণ করে Accept-Language
অনুরোধ শিরোনাম থেকে (সাধারণত তাদের ওয়েব ব্রাউজার দ্বারা স্বয়ংক্রিয়ভাবে সেট করা হয় )।
i18n পুনর্লিখন সেট আপ করুন
আপনার হোস্টিং সাইটের জন্য i18n পুনর্লিখন সেট আপ করতে, আপনাকে আপনার সমস্ত স্থানীয় সামগ্রীর জন্য একটি "i18n সামগ্রী" ডিরেক্টরি তৈরি করতে হবে, তারপর আপনার নতুন "i18n সামগ্রী" ডিরেক্টরিতে নির্দেশ করতে আপনার firebase.json
ফাইলে i18n
অ্যাট্রিবিউট যোগ করুন৷
এখানে বিস্তারিত পদক্ষেপ আছে:
আপনার স্থানীয় অ্যাপ ডিরেক্টরির
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
এর সমতুল্য
এই কোডগুলি সম্পর্কে আরও বিশদ বিবরণের জন্য নীচের উপবিভাগ দেশ এবং ভাষার কোডগুলি পড়ুন৷ আপনি যেকোনো দেশ (যেমন
es_ALL/
) বা যেকোনো ভাষা (যেমনALL_ca/
) নির্দেশ করতেALL
(কেস-সংবেদনশীল) এর মান ব্যবহার করতে পারেন।একটি সাবফোল্ডারের ফাইলগুলির জন্য
public
ডিরেক্টরি বা অন্যান্য সাবফোল্ডারগুলিতে অনুরূপ ফাইল থাকা দরকার নেই। আপনি এমন সামগ্রী তৈরি করতে পারেন যা সম্পূর্ণরূপে একটি ভাষা এবং/অথবা দেশের জন্য নির্দিষ্ট।আপনার
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
মানটিতে অগ্রণী এবং পিছনের স্ল্যাশগুলি ঐচ্ছিক৷আপনার "i18n সামগ্রী" স্থাপন করুন এবং আপনার হোস্টিং সাইটে কনফিগার করুন।
আপনি কুকি ওভাররাইড ব্যবহার করে আপনার সেটআপ পরীক্ষা করতে পারেন।
দেশ এবং ভাষার কোড
"i18n বিষয়বস্তু" সাবফোল্ডার নামকরণ করার সময়, আপনাকে অবশ্যই দেশ এবং ভাষা উভয় কোডের জন্য ছোট হাতের অক্ষর ব্যবহার করতে হবে। আপনি যেকোনো দেশ (যেমন es_ALL/
) বা যেকোনো ভাষা (যেমন ALL_ca/
) নির্দেশ করতে ALL
(কেস-সংবেদনশীল) এর মান ব্যবহার করতে পারেন।
হোস্টিং ব্যবহারকারীর আইপি ঠিকানা থেকে দেশের কোড পায়। দেশের কোড হল দুই-অক্ষরের ISO 3166-1 alpha-2 কোড ।
ভাষার কোডগুলি ব্যবহারকারীর Accept-Language
অনুরোধ শিরোনাম থেকে প্রাপ্ত হয় (সাধারণত তাদের ওয়েব ব্রাউজার দ্বারা স্বয়ংক্রিয়ভাবে সেট করা হয় )। এগুলো হল ISO 639-1 কোড । ভাষা কোড ব্যবহার করার সময় নিম্নলিখিত মনে রাখবেন:
যখন হোস্টিং সার্চ করে কোন "i18n বিষয়বস্তু" পরিবেশন করা হবে, তখন এটি
Accept-Language
হেডারে মানসম্পন্ন মানগুলির উপর ভিত্তি করে ভাষাগুলিকে অর্ডার করে৷হোস্টিং
Accept-Language
হেডারে যেকোনো আঞ্চলিক এবং দেশীয় সাবট্যাগ ফেলে দেয়, তাই "i18n কন্টেন্ট" সাবফোল্ডার নামের ভাষার কোডে এই সাবট্যাগগুলি থাকতে পারে না। উদাহরণস্বরূপ, আপনি একটি সাবফোল্ডার নামের একটি ভাষা কোড হিসাবেes-419
বাes-US
ব্যবহার করতে পারবেন না, তবে আপনিes
ব্যবহার করতে পারেন।আপনি যদি নির্দিষ্ট আঞ্চলিক বা দেশের বিষয়বস্তু পরিবেশন করতে চান, আপনি সাবফোল্ডার তৈরি করতে পারেন যাতে আপনি সমর্থন করতে চান এমন নির্দিষ্ট ভাষা-দেশের সামগ্রী রয়েছে৷
"i18n কন্টেন্ট" এর জন্য অগ্রাধিকার অর্ডার
আপনি যদি i18n পুনর্লিখন সেট আপ করেন, হোস্টিং নিম্নলিখিত অগ্রাধিকার ক্রমের উপর ভিত্তি করে সামগ্রী পরিবেশন করে:
সংরক্ষিত নামস্থান যা একটি
/__/*
পাথ সেগমেন্ট দিয়ে শুরু হয়কনফিগার করা পুনঃনির্দেশ
অবিকল স্থির সামগ্রী
ভাষা কোড + দেশের কোড (উদাহরণস্বরূপ,
fr_ca/
থেকে সামগ্রী)
অর্ডারটি অনুরোধেরAccept-Language
শিরোনামে প্রতিটি ভাষার জন্য গুণমানের মান অনুসরণ করে।শুধুমাত্র দেশের কোড (উদাহরণস্বরূপ,
ALL_ca/
থেকে সামগ্রী)শুধুমাত্র ভাষার কোড (উদাহরণস্বরূপ,
fr/
অথবাes_ALL/
থেকে সামগ্রী)
অর্ডারটি অনুরোধেরAccept-Language
শিরোনামে প্রতিটি ভাষার জন্য গুণমানের মান অনুসরণ করে।"ডিফল্ট" সঠিক-মেলে স্ট্যাটিক কন্টেন্ট
এটি এমন সামগ্রী যা "i18n বিষয়বস্তু" ডিরেক্টরির বাইরে, যেমনpublic
ডিরেক্টরির মূলে।
কনফিগার করা পুনর্লিখন
404 হ্যান্ডলিং
i18n 404 পৃষ্ঠা
এটি সঠিক-ম্যাচ স্ট্যাটিক সামগ্রীর জন্য উপরে তালিকাভুক্ত একই অগ্রাধিকার ক্রম অনুসরণ করে।কাস্টম 404 পৃষ্ঠা
ডিফল্ট 404 পৃষ্ঠা (Firebase দ্বারা সরবরাহ করা)
অগ্রাধিকার আদেশের উদাহরণ
আসুন উপরে থেকে আমাদের উদাহরণ চালিয়ে যাওয়া যাক। আমরা একই উদাহরণ ডিরেক্টরি এবং একটি উদাহরণ অনুরোধ ব্যবহার করব।
একটি "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
(কানাডা)
সঠিক-ম্যাচের অগ্রাধিকার ক্রম এবং ভাষার পছন্দগুলির জন্য গুণমানের মান অনুসারে, হোস্টিং নিম্নলিখিত ক্রমে অনুরোধ করা পৃষ্ঠার জন্য ডিরেক্টরিগুলি অনুসন্ধান করবে।
public/localized-files/fr_ca/
public/localized-files/en_ca/
public/localized-files/ALL_ca/
public/localized-files/fr_ALL/
public/localized-files/fr/
public/localized-files/en_ALL/
public/localized-files/en/
public/
404 হ্যান্ডলিং
কোন পৃষ্ঠা ব্যবহারকারীকে পরিবেশন করা হবে?
অনুরোধ করা পৃষ্ঠা:
index.html
অনুরোধ করা পৃষ্ঠা:
awesome-page.html
"i18n বিষয়বস্তু" ডিরেক্টরির এই অনুসন্ধান এবং পরিবেশন সম্পর্কে নিম্নলিখিতগুলি নোট করুন:
localized-files/
ডিরেক্টরিতে আসলেen_ca/
,en_ALL/
, বাen/
সাবফোল্ডার থাকে না, তাই হোস্টিং শুধুমাত্র অগ্রাধিকার তালিকাটি এড়িয়ে যাবে যতক্ষণ না এটি অনুরোধের ভাষা-দেশের সমন্বয়ের জন্য একটি মিলে যাওয়া সাবফোল্ডার খুঁজে পায়।যদিও
localized-files/
ডিরেক্টরিতে একটিes_ALL/
সাবফোল্ডার রয়েছে, উপরের উদাহরণের অনুরোধে একটিes
বাes-foo
ভাষার কোড অন্তর্ভুক্ত নয়, তাই হোস্টিংes
সাথে মেলে এমন "i18n সামগ্রী" অনুসন্ধান করবে না।fr/
এবংfr_ALL/
নামক সাবফোল্ডারগুলি ব্যবহারকারীর দেশ এবং ভাষা পছন্দের দৃষ্টিকোণ থেকে সমতুল্য। যাইহোক, উভয় সাবফোল্ডার থাকলে, হোস্টিংfr/
content এর আগেfr_ALL/
সামগ্রী পরিবেশন করবে।
কুকিজ দিয়ে ভাষা এবং দেশের কোড ওভাররাইড করুন
আপনি দেশ এবং ভাষার শিরোনাম ওভাররাইড করতে কুকিজ ব্যবহার করে কোন সামগ্রী পরিবেশন করা হয় তা পরিবর্তন করতে পারেন৷
এখানে কিছু উপায় রয়েছে যা আপনি ��ুকি ��ভাররাইড ��্যবহার কর���ে ��ারেন:
কোন বিষয়বস্তু পরিবেশিত হয় তা পরীক্ষা করতে বিভিন্ন ভাষা/দেশের সমন্বয় সহ একটি বৈশিষ্ট্য পরীক্ষা করুন।
আপনার ব্যবহারকারীরা যে বিষয়বস্তু দেখেন তা পরিবর্তন করতে সক্ষম করুন। উদাহরণস্বরূপ, আপনি একটি ভাষা চয়নকারী প্রয়োগ করতে পারেন, তারপর সেই অনুযায়ী ব্যবহারকারীর
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";
ভাষা কুকি ওভাররাইডগুলি অবশ্যই সাবট্যাগ বা গুণমানের মান ছাড়াই পছন্দ অনুসারে ভাষার কোডগুলির একটি কমা দ্বারা পৃথক করা তালিকা হতে হবে৷
কুকি ওভাররাইডগুলি লগগুলিতে প্রতিফলিত হয় না।