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 phrasingServe 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
বৈশিষ্ট্য যুক্ত করুন।
এখানে বিস্তারিত পদক্ষেপ আছে:
আপনার স্থানীয় অ্যাপ্লিকেশন ডিরেক্টরিটির
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
public/ // matches requests that aren't specified by your "i18n content" subfolders // example: display your homepage in the "default" language for your site with no country-specific features index.html // your site's default homepage 404.html // your site's custom 404 page localized-files/ // matches requests from Canada with any language preference // example: display your homepage in the "default" language for your site with a Canada-specific feature ALL_ca/ index.html // matches requests from any country with a language preference of `es` or `es-foo` // example: display your homepage in Spanish with no country-specific features es_ALL/ index.html 404.html // your site's custom 404 page in Spanish // matches requests from any country with a language preference of `fr` or `fr-foo` // example: display your homepage in Standard French with no country-specific features fr/ index.html 404.html // your site's custom 404 page in French // matches requests from Canada with a language preference of `fr` or `fr-foo` // example: display your homepage in Canadian French and/or with a Canada-specific feature 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 সামগ্রী" স্থাপন করুন এবং আপনার 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
ব্যবহার করতে পারেন।আপনি যদি নির্দিষ্ট আঞ্চলিক বা দেশের সামগ্রী পরিবেশন করতে চান তবে আপনি সাবফোল্ডারগুলি তৈরি করতে পারেন যা আপনি সমর্থন করতে চান এমন নির্দিষ্ট ভাষা-দেশ সামগ্রী রয়েছে।
In this example, a request from Spain with the language preference of
es
,es-es
, or evenes-419
would receive content from thees_es/
subfolder because Hosting treats all those language codes ases
.A request from the United States, Mexico, or any other country with the language preference of
es-419
would receive content from thees_ALL/
subfolder because Hosting treatses-419
ases
.public/ // matches requests that aren't specified by your "i18n content" subfolders index.html // the site's default homepage localized-files/ // matches requests from Spain with a language preference of `es` or `es-foo` es_es/ index.html // matches requests from any other country with a language preference of `es` or `es-foo` es_ALL/ index.html
In this example, a request from Mexico with the language preference of
es-419
would receive content from thees_mx/
subfolder because Hosting treats the language codees-419
ases
.তবে,
es-419
এর ভাষা পছন্দ সহ মার্কিন যুক্তরাষ্ট্রের একটি অনুরোধes_ALL/
সাবফোল্ডার থেকে সামগ্রী গ্রহণ করবে কারণ Hostinges-419
es
হিসাবে বিবেচনা করে এবং কোনওes_us/
সাবফোল্ডার নেই।public/ // matches requests that aren't specified by your "i18n content" subfolders index.html // the site's default homepage localized-files/ // matches requests from Argentina with a language preference of `es` or `es-foo` (mimics behavior of `es-ar` header tag) es_ar/ index.html // matches requests from Spain with a language preference of `es` or `es-foo` (mimics behavior of `es-es` header tag) es_es/ index.html // matches requests from Mexico with a language preference of `es` or `es-foo` (mimics behavior of `es-mx` header tag) es_mx/ index.html // matches requests from any other country with a language preference of `es` or `es-foo` (mimics behavior of `es-419` header tag) es_ALL/ index.html
"I18n সামগ্রী" এর জন্য অগ্রাধিকার আদেশ
আপনি যদি আই 18n পুনরায় লেখাগুলি সেট আপ করেন তবে Hosting নিম্নলিখিত অগ্রাধিকার আদেশের ভিত্তিতে সামগ্রী সরবরাহ করে:
সংরক্ষিত নেমস্পেস যা এ
/__/*
পাথ বিভাগ দিয়ে শুরু হয়পুনর্নির্দেশগুলি কনফিগার করা হয়েছে
সঠিক ম্যাচ স্ট্যাটিক সামগ্রী
ভাষা কোড + দেশ কোড (উদাহরণস্বরূপ,
fr_ca/
থেকে সামগ্রী)
আদেশটি অনুরোধেরAccept-Language
শিরোনামে প্রতিটি ভাষার জন্য মানের মান অনুসরণ করে।কেবল দেশের কোড (উদাহরণস্বরূপ,
ALL_ca/
থেকে সামগ্রী)ভাষা কোড কেবল (উদাহরণস্বরূপ,
fr/
বাes_ALL/
থেকে সামগ্রী)
আদেশটি অনুরোধেরAccept-Language
শিরোনামে প্রতিটি ভাষার জন্য মানের মান অনুসরণ করে।"Default" exact-match static content
এটি এমন বিষয়বস্তু যাpublic
ডিরেক্টরিটির মূলের মতো "আই 18 এন সামগ্রী" ডিরেক্টরিটির বাইরে।
কনফিগার করা পুনর্লিখন
404 handling
i18n 404 pages
এটি সঠিক-ম্যাচ স্ট্যাটিক সামগ্রীর জন্য উপরে তালিকাভুক্ত একই অগ্রাধিকার আদেশ অনুসরণ করে।কাস্টম 404 পৃষ্ঠা
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 নিম্নলিখিত ক্রমে একটি অনুরোধ করা পৃষ্ঠার জন্য ডিরেক্টরিগুলি অনুসন্ধান করবে।
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
fr_ca/
সাবফোল্ডার থেকেindex.html
Since Hosting searches the
fr_ca/
subfolder first, it will find the exact-match forindex.html
in that subfolder.অনুরোধ করা পৃষ্ঠা:
awesome-page.html
404.html
from thefr/
subfolderHosting first searches the entire directory (including all the "i18n content" subfolders and root directory) in priority order for an exact-match, but there's not an exact-match for
awesome-page.html
.So, Hosting will start its 404 handling, which follows the same i18n priority order as exact-match searches. The
fr/
subfolder is the first subfolder searched that contains a 404 page.
"I18n বিষয়বস্তু" ডিরেক্টরিটির এই অনুসন্ধান এবং পরিবেশন সম্পর্কে নিম্নলিখিতটি নোট করুন:
The
localized-files/
directory doesn't actually containen_ca/
,en_ALL/
, oren/
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
ভাষা কোড অন্তর্ভুক্ত নয়, সুতরাং Hostinges
সাথে মেলে "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";
ভাষা কুকি ওভাররাইডগুলি অবশ্যই সাবট্যাগ বা মানের মান ছাড়াই পছন্দের ক্রম অনুসারে ভাষা কোডগুলির একটি কমা-বিচ্ছিন্ন তালিকা হতে হবে।
কুকি ওভাররাইডগুলি লগগুলিতে প্রতিফলিত হয় না।