Command Palette

Search for a command to run...

دليل المطور

الوثائق

كل ما تحتاج لمعرفته حول بيانات LocaleDB وخط الأنابيب والهندسة المعمارية.

نظرة عامة

LocaleDB عبارة عن موسوعة توطين شاملة ومفتوحة المصدر للمطورين الذين يبنون تطبيقات دولية.

250+ دولة

114 لغة

161 عملة

9,415 مطار

الميزات الرئيسية

  • بيانات شاملة من مصادر موثوقة (CLDR، البنك الدولي، mledoze، libphonenumber، OpenFlights)
  • توليد ثابت - لا توجد قاعدة بيانات وقت التشغيل مطلوبة
  • مرخصة بموجب MIT ومدفوعة بالمجتمع
  • 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

مصفوفة رموز الدول التي تستخدم هذه العملة

هيكل المشروع

الأدلة الرئيسية وأغراضها.

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. 1مفترق (Fork) مستودع GitHub واستنسخه إلى جهازك المحلي
  2. 2عدل أولوية المصدر في build-data.ts أو أرسل تصحيحات إلى المصادر الأصلية
  3. 3أضف ترجمات عن طريق تحرير messages/{lang}.json وتشغيل check-i18n
  4. 4أرسل طلب سحب (PR) بتغيير واحد لكل طلب وروابط للمصادر الرسمية

الإرشادات

  • تغيير واحد لكل طلب سحب
  • اربط دائمًا بالمصادر الرسمية (CLDR، المواقع الحكومية، معايير ISO)
  • شغل pnpm build:data للتحقق من دمج تغييراتك بشكل صحيح
  • رسائل التزام (commit) واضحة ووصفية

التدويل (i18n)

يدعم LocaleDB 11 لغة مع خطط لإضافة المزيد.

اللغات المدعومة

الإنجليزية، التركية، الصينية، الهندية، الإسبانية، الفرنسية، العربية، البنغالية، البرتغالية، الروسية، اليابانية

ملفات الترجمة

تُخزن جميع الترجمات في ملفات messages/{lang}.json

دعم RTL

دعم كامل من اليمين إلى اليسار للغة العربية (ar) ولغات RTL الأخرى

إضافة لغة جديدة

  1. 1أنشئ ملف messages/{lang}.json جديدًا
  2. 2ترجم جميع المفاتيح من messages/en.json
  3. 3أضف رمز اللغة إلى src/i18n/routing.ts
  4. 4شغل npx tsx scripts/check-i18n.ts للتحقق من الاكتمال