Command Palette

Search for a command to run...

डेवलपर गाइड

दस्तावेज़ीकरण

LocaleDB के डेटा, पाइपलाइन और आर्किटेक्चर के बारे में आपको जो कुछ भी जानने की आवश्यकता है।

अवलोकन

LocaleDB अंतरराष्ट्रीय एप्लिकेशन बनाने वाले डेवलपर्स के लिए एक व्यापक, ओपन-सोर्स स्थानीयकरण विश्वकोश है।

250+ देश

114 भाषाएँ

161 मुद्राएँ

9,415 हवाई अड्डे

प्रमुख विशेषताएँ

  • आधिकारिक स्रोतों से व्यापक डेटा (CLDR, विश्व बैंक, mledoze, libphonenumber)
  • स्थिर पीढ़ी - रनटाइम डेटाबेस की आवश्यकता नहीं है
  • MIT लाइसेंस प्राप्त और समुदाय द्वारा संचालित
  • अरबी के लिए RTL समर्थन के साथ 11 भाषाएँ

शुरुआत करें

रिपॉजिटरी को क्लोन करें और मिनटों में लोकेल डेटा एक्सप्लोर करना शुरू करें।

# रिपॉजिटरी को क्लोन करें
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, विश्व बैंक, libphonenumber, OpenFlights (MWGG)

2

कच्चा डेटा डाउनलोड करें

pnpm update:data फ़ाइलों को data/ सबडायरेक्टरी में डाउनलोड करता है

3

कच्ची डेटा फ़ाइलें

JSON, CSV, और XML फ़ाइलें data/ में संग्रहीत हैं

4

प्रक्रिया और मर्ज

pnpm build:data प्राथमिकता नियमों के साथ स्रोतों को मर्ज करता है

5

जेनरेट किया गया JSON

व्यक्तिगत देश, भाषा और मुद्रा फ़ाइलें

6

स्टेटिक साइट जनरेशन

Next.js 5,868+ स्टेटिक पेज बनाता है

डेटा स्रोत प्राथमिकता

जब कई स्रोत समान फ़ील्ड प्रदान करते हैं, तो हम एक सुसंगत प्राथमिकता प्रणाली का उपयोग करते हैं:

  • देश के नाम: CLDR > mledoze > SimpleLocalize
  • जनसंख्या: विश्व बैंक > 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

इस मुद्रा का उपयोग करने वाले देश कोड की सूची

Data Export

Build custom locale-data exports with the /export wizard. No scrapers, no scripts, no signups.

4-Step Wizard

1. Pick a dataset

Choose Countries, Currencies, Languages, or Airports.

2. Select entities

Searchable, paginated checkbox grid (60 per page) with select-all-filtered helpers. Up to 500 entities per request.

3. Choose fields

Collapsible field tree generated from the dataset schema. Per-group indeterminate state, sensible defaults.

4. Format & download

Pick JSON (pretty), JSON (minified), CSV (RFC 4180, flattened), or ZIP (one JSON file per entity).

Supported Formats

  • JSON (pretty) — indented, human-readable
  • JSON (minified) — compact, single-line
  • CSV — RFC 4180, dot-notation keys for nested fields
  • ZIP — one JSON file per entity, ideal for batch processing

API Endpoint

Server-side serialization happens at POST /api/export (Node runtime, maxDuration: 30). Pass dataset, entities, fields, and format in the JSON body. Set preview: true for an inline first-record JSON response without Content-Disposition.

POST /api/export
Content-Type: application/json

{
  "dataset": "countries",
  "entities": ["TR", "US", "DE"],
  "fields": ["basics.name", "currency.code", "phone.callingCode"],
  "format": "json",
  "preview": false
}

Limits: max 500 entities per request, dataset must be one of countries / currencies / languages / airports.

प्रोजेक्ट संरचना

प्रमुख निर्देशिकाएं और उनके उद्देश्य।

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/                # 11 भाषाओं के लिए अनुवाद फ़ाइलें

स्क्रिप्ट संदर्भ

डेटा प्रबंधन और विकास के लिए उपलब्ध कमांड।

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 करें और अपनी स्थानीय मशीन पर क्लोन करें
  2. 2build-data.ts में स्रोत प्राथमिकता संपादित करें या अपस्ट्रीम स्रोतों को सुधार सबमिट करें
  3. 3messages/{lang}.json को संपादित करके और check-i18n चलाकर अनुवाद जोड़ें
  4. 4प्रति PR एक परिवर्तन और आधिकारिक स्रोतों के लिंक के साथ एक Pull Request सबमिट करें

दिशानिर्देश

  • प्रति Pull Request एक परिवर्तन
  • हमेशा आधिकारिक स्रोतों (CLDR, सरकारी साइटें, ISO मानक) से लिंक करें
  • यह सत्यापित करने के लिए pnpm build:data चलाएँ कि आपके परिवर्तन सही ढंग से मर्ज हुए हैं
  • स्पष्ट, वर्णनात्मक कमिट संदेश

अंतर्राष्ट्रीयकरण

LocaleDB 11 भाषाओं का समर्थन करता है और अधिक की योजना है।

समर्थित भाषाएँ

अंग्रेजी, तुर्की, चीनी, हिंदी, स्पेनिश, फ्रेंच, अरबी, बंगाली, पुर्तगाली, रूसी, जापानी

अनुवाद फ़ाइलें

सभी अनुवाद 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 चलाएँ