A comprehensive calendar application that supports multiple calendar systems relevant to Kurdish communities and the broader Middle East region. This application is available at calendar.krd.
-
Multi-Calendar System Support:
- Gregorian (Western) Calendar
- Jalali/Persian (Solar Hijri) Calendar
- Hijri (Islamic/Lunar) Calendar
- Kurdish Calendar with both Rojhalat (Eastern) and Bashur (Southern) variants
-
Multi-Language Interface:
- Kurdish (Sorani)
- English
- Arabic
- Farsi (Persian)
-
Holidays & Cultural Events:
- Cultural and religious holidays
- National commemorations
- Historical events
-
Modern UI:
- Responsive design for all devices
- Theme customization
- Accessible interface
- Next.js v15 with App Router
- TypeScript
- next-intl for internationalization
- Tailwind CSS for styling
- moment-jalali for Persian calendar
- moment-hijri for Hijri calendar
- Node.js (v18.17 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/yourusername/kurdish-calendar.git cd kurdish-calendar
-
Install dependencies:
npm install # or yarn install
-
Run the development server:
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser.
- Use the arrow buttons to navigate between months
- Click on any date to view events for that day
- Use the language selector to switch between supported languages
When using the Kurdish language interface, you can choose between two Kurdish calendar systems:
- Rojhalat (Eastern): Based on Persian/Solar Hijri calendar
- Bashur (Southern): Based on Gregorian calendar with Kurdish month names
- Events for the selected date appear in the "Events of the Day" section
- Browse monthly events in the "Events This Month" section
kurdish-calendar/
├── app/ # App Router pages and layouts
│ ├── [locale]/ # Dynamic routes for multilingual support
│ └── api/ # API routes
├── components/ # React components
│ ├── ui/ # Base UI components
│ └── ... # Feature-specific components
├── lib/ # Utility functions and helpers
│ ├── date-utils.ts # Date manipulation utilities
│ ├── getKurdishDate.ts # Kurdish date calculation
│ └── jalaali.ts # Jalali calendar utilities
├── public/ # Static assets and data
│ ├── data/ # JSON data files
│ │ └── holidays.json # Holiday and event data
│ ├── locale/ # Translation files
│ │ ├── en/ # English translations
│ │ │ └── common.json
│ │ ├── ku/ # Kurdish translations
│ │ │ └── common.json
│ │ ├── ar/ # Arabic translations
│ │ │ └── common.json
│ │ └── fa/ # Farsi translations
│ │ └── common.json
│ └── images/ # Static images
└── styles/ # Global styles
Holiday and event data is stored in public/data/holidays.json
. Each event includes:
- Date in ISO format
- Event name in multiple languages
- Optional notes and quotes
- Associated country or region
Example:
{
"date": "2024-03-21",
"event": {
"en": "Newroz - Kurdish New Year",
"ku": "نەورۆز - سەری ساڵی کوردی",
"ar": "نوروز - رأس السنة الكردية",
"fa": "نوروز - سال نو کردی"
},
"country": "Kurdistan"
}
The application uses next-intl for internationalization. Translation files are stored in the public/locale/[lang]/common.json
directories:
// Example usage in components
const t = useTranslations('common');
<h3>{t('calendar.multiCalendar.kurdishRojhalat')}</h3>
Example from public/locale/ku/common.json
:
{
"calendar": {
"title": "ڕۆژمێری کوردی",
"today": "ئەمڕۆ",
"multiCalendar": {
"title": "ڕۆژمێرەکان",
"gregorian": "ڕۆژمێری زایینی",
"jalali": "ڕۆژمێری هەتاوی",
"hijri": "ڕۆژمێری کۆچی مانگی",
"kurdishRojhalat": "ڕۆژمێری کوردی ڕۆژهەڵات",
"kurdishBashur": "ڕۆژمێری کوردی باشوور"
}
}
}
Contributions are welcome! Please check out our Contributing Guide for guidelines on how to proceed.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to all contributors who have helped build this project
- Special thanks to the Kurdish community for their support and feedback
- Calendar conversion algorithms adapted from various open-source projects
For questions, feedback, or support, please open an issue or contact the maintainers directly.
Made with ❤️ for the Kurdish community