ডকুমেন্টেশন
LocaleDB-এর ডেটা, পাইপলাইন এবং আর্কিটেকচার সম্পর্কে আপনার যা জানা দরকার।
ওভারভিউ
LocaleDB হল ডেভেলপারদের জন্য একটি ব্যাপক, ওপেন-সোর্স লোকালাইজেশন এনসাইক্লোপিডিয়া যারা আন্তর্জাতিক অ্যাপ্লিকেশন তৈরি করছে।
২৫০+ দেশ
১১৪ ভাষা
১৬১ মুদ্রা
৯,৪১৫ বিমানবন্দর
মূল বৈশিষ্ট্য
- নির্ভরযোগ্য উৎস থেকে ব্যাপক ডেটা (CLDR, World Bank, mledoze, libphonenumber)
- স্ট্যাটিক জেনারেশন - রানটাইম ডাটাবেসের প্রয়োজন নেই
- MIT লাইসেন্সপ্রাপ্ত এবং কমিউনিটি দ্বারা চালিত
- আরবি ভাষার জন্য RTL সমর্থন সহ ১১টি ভাষা
শুরু করা
রিপোজিটরি ক্লোন করুন এবং কয়েক মিনিটের মধ্যে স্থানীয় ডেটা অন্বেষণ শুরু করুন।
# রিপোজিটরি ক্লোন করুন
git clone https://github.com/ozkurkculer/localedb.git
cd localedb
# ডিপেনডেন্সি ইনস্টল করুন
pnpm install
# উৎস থেকে কাঁচা ডেটা ডাউনলোড করুন
pnpm update:data
# প্রক্রিয়া করুন এবং JSON ফাইল তৈরি করুন
pnpm build:data
# ডেভেলপমেন্ট সার্ভার শুরু করুন
pnpm devডেটা পাইপলাইন
LocaleDB একাধিক নির্ভরযোগ্য উৎস থেকে বহু-পর্যায় পাইপলাইনের মাধ্যমে ডেটা প্রক্রিয়া করে।
বহিরাগত উৎস
CLDR, mledoze, World Bank, libphonenumber, OpenFlights (MWGG)
কাঁচা ডেটা ডাউনলোড করুন
pnpm update:data ফাইলগুলি data/ সাব-ডিরেক্টরিতে ডাউনলোড করে
কাঁচা ডেটা ফাইল
JSON, CSV, এবং XML ফাইলগুলি data/-এ সংরক্ষিত
প্রক্রিয়া এবং মার্জ
pnpm build:data অগ্রাধিকার নিয়মের সাথে উৎসগুলি মার্জ করে
জেনারেট করা JSON
পৃথক দেশ, ভাষা এবং মুদ্রা ফাইল
স্ট্যাটিক সাইট জেনারেশন
Next.js ৫,৮৬৮+ স্ট্যাটিক পেজ তৈরি করে
ডেটা সোর্স অগ্রাধিকার
যখন একাধিক উৎস একই ক্ষেত্র প্রদান করে, আমরা একটি ধারাবাহিক অগ্রাধিকার সিস্টেম ব্যবহার করি:
- •দেশের নাম: CLDR > mledoze > SimpleLocalize
- •জনসংখ্যা: World Bank > mledoze > SimpleLocalize
- •ফোন ডেটা: libphonenumber XML (কর্তৃত্বপূর্ণ)
ডেটা স্কিমা
দেশ, ভাষা এবং মুদ্রা JSON ফাইলগুলির বিস্তারিত কাঠামো।
দেশ স্কিমা
data/countries/{CODE}.jsonbasicsনাম, রাজধানী, স্থানাঙ্ক, মহাদেশ, জনসংখ্যা, এলাকা, ভাষা, পতাকা ইমোজি
codesISO 3166, BCP-47, FIFA, IOC, FIPS, এবং অন্যান্য আন্তর্জাতিক কোড
currencyকোড, চিহ্ন, অবস্থান, বিভাজক, দশমিক সংখ্যা, প্যাটার্ন, উদাহরণ
dateTimeতারিখ/সময় ফরম্যাট (সম্পূর্ণ, দীর্ঘ, মাঝারি, সংক্ষিপ্ত), সপ্তাহের প্রথম দিন, সময় অঞ্চল
numberFormatদশমিক/হাজার বিভাজক, অঙ্ক গ্রুপিং, সংখ্যা পদ্ধতি
phoneকলিং কোড, প্যাটার্ন, ফরম্যাট নিয়ম, গ্রাহক নম্বর দৈর্ঘ্য
addressFormatফরম্যাট টেমপ্লেট, পোস্টাল কোড রেজেক্স এবং উদাহরণ
localeলেখার দিক, পরিমাপ পদ্ধতি, তাপমাত্রা স্কেল, কাগজের আকার, ড্রাইভিং সাইড
airportsIATA, ICAO, স্থানাঙ্ক, সময় অঞ্চল সহ বিমানবন্দরের অ্যারে
ভাষা স্কিমা
data/languages/{code}.jsoncodeISO 639-1 কোড
nameইংরেজি নাম
nativeNameস্থানীয় নাম
directionটেক্সট দিক (ltr বা rtl)
countriesযেখানে বলা হয় সেই দেশের কোডগুলির অ্যারে
মুদ্রা স্কিমা
data/currencies/{CODE}.jsoncodeISO 4217 কোড
nameমুদ্রার নাম
symbolমুদ্রা চিহ্ন
symbolPositionআগে বা পরে
separatorsদশমিক এবং হাজার বিভাজক
decimalDigitsমানক দশমিক স্থান
patternফরম্যাটিং প্যাটার্ন
exampleফরম্যাটেড উদাহরণ
countriesএই মুদ্রা ব্যবহার করে এমন দেশের কোডগুলির অ্যারে
প্রকল্পের গঠন
মূল ডিরেক্টরি এবং তাদের উদ্দেশ্য।
localedb/
├── data/ # জেনারেট করা JSON ফাইল এবং কাঁচা উৎস ডেটা
│ ├── countries/ # 250 country JSON files
│ ├── languages/ # 114 language JSON files
│ ├── currencies/ # 161 currency JSON files
│ ├── _index_*.json # Lightweight indices
│ └── _meta.json # Build metadata
├── scripts/ # ডেটা পাইপলাইন স্ক্রিপ্ট (update-data.ts, build-data.ts)
│ ├── update-data.ts # Download raw data
│ ├── build-data.ts # Process & generate JSON
│ └── generate-changelog.ts
├── src/
│ ├── app/[locale]/ # Next.js pages (i18n)
│ ├── components/ # React components
│ ├── lib/ # Data access functions
│ ├── config/ # Site & nav config
│ └── i18n/ # Internationalization setup
└── messages/ # ১১টি ভাষার জন্য অনুবাদ ফাইলস্ক্রিপ্ট রেফারেন্স
ডেটা ম্যানেজমেন্ট এবং ডেভেলপমেন্টের জন্য উপলব্ধ কমান্ড।
| Command | Description |
|---|---|
pnpm update:data | সমস্ত বাহ্যিক উৎস থেকে কাঁচা ডেটা ডাউনলোড করুন |
pnpm update:data cldr worldbank | শুধুমাত্র নির্দিষ্ট উৎস ডাউনলোড করুন |
pnpm build:data | কাঁচা ডেটা প্রক্রিয়া করুন এবং JSON ফাইল তৈরি করুন |
pnpm dev | ডেভেলপমেন্ট সার্ভার শুরু করুন |
pnpm build | প্রোডাকশন বিল্ড (স্ট্যাটিক সাইট জেনারেশন) |
npx tsx scripts/check-i18n.ts | অনুপস্থিত অনুবাদ কীগুলি পরীক্ষা করুন এবং স্বয়ংক্রিয়ভাবে পূরণ করুন |
pnpm version patch | সংস্করণ বাম্প করুন এবং স্বয়ংক্রিয়ভাবে চেঞ্জলগ তৈরি করুন |
ডেটা অবদান
LocaleDB-তে সংশোধন এবং উন্নতিতে কীভাবে অবদান রাখবেন।
অবদান ওয়ার্কফ্লো
- 1GitHub রিপোজিটরি Fork করুন এবং আপনার স্থানীয় মেশিনে clone করুন
- 2build-data.ts-এ উৎসের অগ্রাধিকার সম্পাদনা করুন বা মূল উৎসে সংশোধন জমা দিন
- 3messages/{lang}.json সম্পাদনা করে এবং check-i18n চালিয়ে অনুবাদ যোগ করুন
- 4প্রতি PR-এ একটি পরিবর্তন এবং সরকারি উৎসের লিঙ্ক সহ Pull Request জমা দিন
নির্দেশিকা
- প্রতি Pull Request-এ একটি পরিবর্তন
- সবসময় সরকারি উৎসের লিঙ্ক দিন (CLDR, সরকারি সাইট, ISO মান)
- আপনার পরিবর্তনগুলি সঠিকভাবে মার্জ হয়েছে কিনা যাচাই করতে pnpm build:data চালান
- স্পষ্ট, বর্ণনামূলক কমিট বার্তা
আন্তর্জাতিকীকরণ (i18n)
LocaleDB ১১টি ভাষা সমর্থন করে এবং আরও যোগ করার পরিকল্পনা রয়েছে।
সমর্থিত ভাষা
ইংরেজি, তুর্কি, চাইনিজ, হিন্দি, স্প্যানিশ, ফরাসি, আরবি, বাংলা, পর্তুগিজ, রাশিয়ান, জাপানি
অনুবাদ ফাইল
সমস্ত অনুবাদ messages/{lang}.json ফাইলগুলিতে সংরক্ষিত আছে
RTL সমর্থন
আরবি (ar) এবং অন্যান্য RTL ভাষার জন্য সম্পূর্ণ ডান-থেকে-বাম সমর্থন
নতুন ভাষা যোগ করা
- 1একটি নতুন messages/{lang}.json ফাইল তৈরি করুন
- 2messages/en.json থেকে সমস্ত কী অনুবাদ করুন
- 3src/i18n/routing.ts-এ স্থানীয় কোড যোগ করুন
- 4সম্পূর্ণতা যাচাই করতে npx tsx scripts/check-i18n.ts চালান