Command Palette

Search for a command to run...

ডেভেলপার গাইড

ডকুমেন্টেশন

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 একাধিক নির্ভরযোগ্য উৎস থেকে বহু-পর্যায় পাইপলাইনের মাধ্যমে ডেটা প্রক্রিয়া করে।

1

বহিরাগত উৎস

CLDR, mledoze, World Bank, libphonenumber, OpenFlights (MWGG)

2

কাঁচা ডেটা ডাউনলোড করুন

pnpm update:data ফাইলগুলি data/ সাব-ডিরেক্টরিতে ডাউনলোড করে

3

কাঁচা ডেটা ফাইল

JSON, CSV, এবং XML ফাইলগুলি data/-এ সংরক্ষিত

4

প্রক্রিয়া এবং মার্জ

pnpm build:data অগ্রাধিকার নিয়মের সাথে উৎসগুলি মার্জ করে

5

জেনারেট করা JSON

পৃথক দেশ, ভাষা এবং মুদ্রা ফাইল

6

স্ট্যাটিক সাইট জেনারেশন

Next.js ৫,৮৬৮+ স্ট্যাটিক পেজ তৈরি করে

ডেটা সোর্স অগ্রাধিকার

যখন একাধিক উৎস একই ক্ষেত্র প্রদান করে, আমরা একটি ধারাবাহিক অগ্রাধিকার সিস্টেম ব্যবহার করি:

  • দেশের নাম: CLDR > mledoze > SimpleLocalize
  • জনসংখ্যা: World Bank > mledoze > SimpleLocalize
  • ফোন ডেটা: libphonenumber XML (কর্তৃত্বপূর্ণ)

ডেটা স্কিমা

দেশ, ভাষা এবং মুদ্রা JSON ফাইলগুলির বিস্তারিত কাঠামো।

দেশ স্কিমা

data/countries/{CODE}.json
basics

নাম, রাজধানী, স্থানাঙ্ক, মহাদেশ, জনসংখ্যা, এলাকা, ভাষা, পতাকা ইমোজি

codes

ISO 3166, BCP-47, FIFA, IOC, FIPS, এবং অন্যান্য আন্তর্জাতিক কোড

currency

কোড, চিহ্ন, অবস্থান, বিভাজক, দশমিক সংখ্যা, প্যাটার্ন, উদাহরণ

dateTime

তারিখ/সময় ফরম্যাট (সম্পূর্ণ, দীর্ঘ, মাঝারি, সংক্ষিপ্ত), সপ্তাহের প্রথম দিন, সময় অঞ্চল

numberFormat

দশমিক/হাজার বিভাজক, অঙ্ক গ্রুপিং, সংখ্যা পদ্ধতি

phone

কলিং কোড, প্যাটার্ন, ফরম্যাট নিয়ম, গ্রাহক নম্বর দৈর্ঘ্য

addressFormat

ফরম্যাট টেমপ্লেট, পোস্টাল কোড রেজেক্স এবং উদাহরণ

locale

লেখার দিক, পরিমাপ পদ্ধতি, তাপমাত্রা স্কেল, কাগজের আকার, ড্রাইভিং সাইড

airports

IATA, ICAO, স্থানাঙ্ক, সময় অঞ্চল সহ বিমানবন্দরের অ্যারে

ভাষা স্কিমা

data/languages/{code}.json
code

ISO 639-1 কোড

name

ইংরেজি নাম

nativeName

স্থানীয় নাম

direction

টেক্সট দিক (ltr বা rtl)

countries

যেখানে বলা হয় সেই দেশের কোডগুলির অ্যারে

মুদ্রা স্কিমা

data/currencies/{CODE}.json
code

ISO 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/                # ১১টি ভাষার জন্য অনুবাদ ফাইল

স্ক্রিপ্ট রেফারেন্স

ডেটা ম্যানেজমেন্ট এবং ডেভেলপমেন্টের জন্য উপলব্ধ কমান্ড।

CommandDescription
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-তে সংশোধন এবং উন্নতিতে কীভাবে অবদান রাখবেন।

অবদান ওয়ার্কফ্লো

  1. 1GitHub রিপোজিটরি Fork করুন এবং আপনার স্থানীয় মেশিনে clone করুন
  2. 2build-data.ts-এ উৎসের অগ্রাধিকার সম্পাদনা করুন বা মূল উৎসে সংশোধন জমা দিন
  3. 3messages/{lang}.json সম্পাদনা করে এবং check-i18n চালিয়ে অনুবাদ যোগ করুন
  4. 4প্রতি PR-এ একটি পরিবর্তন এবং সরকারি উৎসের লিঙ্ক সহ Pull Request জমা দিন

নির্দেশিকা

  • প্রতি Pull Request-এ একটি পরিবর্তন
  • সবসময় সরকারি উৎসের লিঙ্ক দিন (CLDR, সরকারি সাইট, ISO মান)
  • আপনার পরিবর্তনগুলি সঠিকভাবে মার্জ হয়েছে কিনা যাচাই করতে pnpm build:data চালান
  • স্পষ্ট, বর্ণনামূলক কমিট বার্তা

আন্তর্জাতিকীকরণ (i18n)

LocaleDB ১১টি ভাষা সমর্থন করে এবং আরও যোগ করার পরিকল্পনা রয়েছে।

সমর্থিত ভাষা

ইংরেজি, তুর্কি, চাইনিজ, হিন্দি, স্প্যানিশ, ফরাসি, আরবি, বাংলা, পর্তুগিজ, রাশিয়ান, জাপানি

অনুবাদ ফাইল

সমস্ত অনুবাদ messages/{lang}.json ফাইলগুলিতে সংরক্ষিত আছে

RTL সমর্থন

আরবি (ar) এবং অন্যান্য RTL ভাষার জন্য সম্পূর্ণ ডান-থেকে-বাম সমর্থন

নতুন ভাষা যোগ করা

  1. 1একটি নতুন messages/{lang}.json ফাইল তৈরি করুন
  2. 2messages/en.json থেকে সমস্ত কী অনুবাদ করুন
  3. 3src/i18n/routing.ts-এ স্থানীয় কোড যোগ করুন
  4. 4সম্পূর্ণতা যাচাই করতে npx tsx scripts/check-i18n.ts চালান