Kurdish Sorani Tools

A comprehensive Flutter/Dart package for the Kurdish Sorani language with 25+ features including number conversion, date/time formatting, calendar systems, localization, and more.

pub package License


کوردی سۆرانی

پاکێجێکی تەواوی Flutter/Dart کە ئامرازی جیاواز بۆ زمانی کوردی سۆرانی لەخۆ دەگرێت، وەک گۆڕینی ژمارە، فۆرماتکردنی ژمارە، ناسینەوەی دەق، چاککردنی بەستەر، و فۆنتی کوردی.

تایبەتمەندییەکان

  • گۆڕینی ژمارە بۆ وشە — گۆڕینی ژمارە بۆ نووسینی کوردی سۆرانی
  • گۆڕینی ژمارە — گۆڕینی نێوان ژمارەی ئینگلیزی (ڕۆژئاوایی) و کوردی (عەرەبی ڕۆژهەڵاتی)
  • فۆرماتی فاریزە — زیادکردن/سڕینەوەی جیاکەرەوەی هەزاران لە ژمارەکان
  • وشە بۆ ژمارە — گۆڕینەوەی وشەی کوردی بۆ ژمارە
  • ناسینەوەی دەقی کوردی — پشکنینی ئەوەی دەقێک کوردییە یان نا
  • چاککردنی بەستەر — چاککردنی ئۆتۆماتیکی بۆشایی لە بەستەرەکان
  • پاشگری ڕێزبەندی — سڕینەوەی پاشگری ڕێزبەندی لە ژمارەکانی کوردی
  • فۆنتی کوردی — فۆنتی ڕابەر بە شێوەی ئامادە لەگەڵ TextStyle و Theme
  • فۆرماتکەری ئینپووت — TextInputFormatter بۆ فۆرماتکردنی ژمارە لە TextField
  • بەروار و کاتی کوردی — فۆرماتکردنی بەروار بە ناوی ڕۆژ و مانگی کوردی (نوێ)
  • گۆڕینی لەیاوتی کیبۆرد — گۆڕینی دەقی ئینگلیزی بۆ کوردی بەپێی لەیاوتی کیبۆرد (نوێ)
  • نۆرمالکردنی دەق — ستانداردکردنی پیتەکانی عەرەبی بۆ کوردی و سڕینەوەی هەرەکات (نوێ)
  • فۆرماتی دراو — فۆرماتکردنی پارە بە دیناری عراقی، دۆلار، یۆرۆ و هتد (نوێ)
  • ئاڕاستەی دەق — دیاریکردنی ئۆتۆماتیکی RTL/LTR بەپێی ناوەڕۆک (نوێ)
  • کۆکردنەوەی وشە — کۆکردنەوەی وشەکان بە پاشگری کوردی (ەکان/ان) (نوێ)
  • ئامرازەکانی سترینگ — slug، ژمردنی وشە، بڕین، پێچەوانەکردن و هتد (نوێ)
  • کاتی نسبی — وەک "٢ خولەک لەمەوپێش" یان "دوێنێ" (نوێ)
  • ژمارەی مۆبایل — فۆرماتکردن و ناسینەوەی ئۆپەرەیتەری عراقی (نوێ)
  • ڕیزی ژمارە بۆ وشە — وەک "1-5" بۆ "یەک تا پێنج" (نوێ)
  • ئامرازەکانی ڕستە — جیاکردنەوە و ژمردنی ڕستەکان (نوێ)
  • لۆکاڵایزەیشنی کوردی — وەرگێڕانی وشەکانی سیستەم (بڕین، لەبەرگرتنەوە، لکاندن...) (نوێ)
  • پشکنینی ڕاستی ژمارە — پشکنینی ئەوەی سترینگێک ژمارەی کوردی/ئینگلیزییە (نوێ)
  • فلتەری ئینپووتی کوردی — بلۆککردنی پیتی ئینگلیزی لە TextField (نوێ)
  • پاشگری ڕێزبەندی — زیادکردنی ەم/یەم (یەکەم، دووەم، سێیەم...) (نوێ)
  • ناوی ڕەنگەکان — ناوی ڕەنگەکان بە کوردی (سوور، شین، زەرد...) (نوێ)
  • فرە زمانی — پشتگیری فرە زمانی لەگەڵ ئاڕاستەی ئۆتۆماتیکی، بەکارهێنەر دەتوانێت زمانی خۆی زیاد بکات (نوێ)
  • پشکنینی فۆرم — پشکنینی ئامادە بۆ TextFormField (پێویستە، ئیمەیل، مۆبایل، ژمارە...) (نوێ)
  • سڵاوکردن بەپێی کات — بەیانی باش / ڕۆژ باش / ئێوارە باش / شەو باش (نوێ)
  • پاشگری ژمارە — ئۆتۆماتیکی کۆ/تاک بەپێی ژمارە (٥ کتێبەکان، هیچ کتێبێک) (نوێ)
  • ڕۆژژمێری هیجری و کوردی — گۆڕینی نێوان گریگۆری، هیجری، و کوردی (ڕۆژهەڵاتی) (نوێ)

Features

Category Features
Numbers Number to words, digit conversion (EN↔KU), comma formatting, words to number, number range
Text Kurdish detection, normalizer, pluralization, string utilities, sentence tools, ordinal suffix
Date/Time Kurdish date formatter, relative time, Hijri calendar, Kurdish (Rojhalati) calendar, custom date picker
Input Keyboard layout converter, input filters (Kurdish-only, no-English), form validators, digit formatter
Localization Multi-language (Kurdish/English/Arabic), JSON-based translations, auto RTL/LTR, system UI translation
UI Kurdish fonts (Rabar), text direction widget, color names, currency formatter, phone number formatter
Misc Time-based greeting, count suffix (auto-plural), URL fixer

Installation

dependencies:
  kurdish_sorani_tools: ^0.1.0

Quick Start

import 'package:kurdish_sorani_tools/kurdish_sorani_tools.dart';

// Number to Kurdish words
String words = 250.toKurdishString(); // "دوو سەد و پەنجا"

// Digit conversion
String ku = convertEnToKu("123"); // "١٢٣"

// Kurdish date
String today = KurdishDateTime.today(); // "هەینی, 29 ئایار 2026"

// Relative time
String ago = DateTime.now().subtract(Duration(minutes: 5)).toKurdishRelative;
// "٥ خولەک لەمەوپێش"

// Phone number
String phone = "07501234567".formatPhone; // "0750 123 4567"
String? op = "07501234567".phoneOperator; // "کۆڕەک"

// Currency
String price = 25000.toIQD(); // "25,000 د.ع"

// Pluralization
String plural = "کتێب".toPlural; // "کتێبەکان"

// Greeting
String hi = KurdishGreeting.now(); // "ڕۆژ باش"

// Calendar
HijriDate hijri = DateTime.now().toHijri;
KurdishDate kd = DateTime.now().toKurdishCalendar;

// Keyboard converter
String result = "sLaw".toKurdishKeyboard; // "سڵاو"

// Text normalizer
String normalized = "كوردي".normalizeKurdish; // "کوردی"

// Ordinal
String ord = 1.toKurdishOrdinal; // "یەکەم"

// Validators
TextFormField(validator: KurdishValidators.phone())
TextFormField(validator: KurdishValidators.required())

Multi-Language Support

final langManager = KurdishLangManager();
final translations = await KurdishLangLoader.loadMultiple(defaultLangConfigs);
for (final t in translations) langManager.addLanguage(t);

langManager.setLanguage('en'); // or 'ckb', 'ar'
langManager.tr('save'); // "Save" / "پاشەکەوتکردن" / "حفظ"

// System UI (Cut/Copy/Paste) also translates automatically
kurdishLocalizationLanguageGetter = () => langManager.currentLanguage;

Kurdish Date Picker

final date = await showKurdishDatePickerModal(
  context: context,
  lang: 'ckb', // fully Kurdish UI, or 'en', 'ar'
);

Localization Setup

MaterialApp(
  localizationsDelegates: kurdishLocalizationsDelegates,
  supportedLocales: [Locale('ku', 'IQ'), Locale('en', 'US'), Locale('ar')],
)

Documentation

Full documentation with examples in Kurdish, English, and Arabic: https://dana-sherzad.com/projects/flutter-kurdish-sorani-tools

Example

A full example app is included in the example directory with 20+ demo pages.

Author

Dana Sherzad — GitHub · Website

License

MIT