کتابخانه PersianSwift یک کتابخانه نوشته شده برای زبان برنامهنویسی Swift هستش که استفاده از این زبان برنامهنویسی رو برای زبان فارسی راحتتر و شیرینتر میکنه.
برای راحتی بیشتر موقع استفاده، بیشتر امکانات این کتابخونه از طریق Extensionهای تعریف شده برای انواع داده در Swift در دسترس هست.
مثلا با استفاده از ابزار زیر، مقدار عددی 12345 به مقدار متنی متناظر باهاش و همراه با اعداد فارسی در دسترس هست:
let int = 12345
let persianString = int.ps.stringWithPersianDigits // ۱۲۳۴۵
با استفاده از CocoaPod خیلی راحت میتونین این کتابخونه رو به پروژه خودتون اضافهاش کنین.
pod 'PersianSwift', '~> 1.5' // Swift 3.0
pod 'PersianSwift', '~> 1.7' // Swift 4.0
بعد از نصب میتونین هرجایی که خواستین اون رو `import` کنین و از امکاناتش استفاده کنین.
import PersianSwift
در ادامه توضیحات مفصل قسمتهای پیادهسازی شده رو نشون میدیم.
- چک کردن اینکه متن مورد نظر شماره تلفن موبایل باشه
String.ps.isPersianPhoneNumber -> Bool
- تبدیل شده متن موجود، بهمراه تبدیل اعداد از به فارسی و یا لاتین
String.ps.withPersianDigits -> String
String.ps.withEasternDigits -> String
String.ps.toPersianDigits() -> Void
String.ps.toEnglishDigits() -> Void
- تبدیل کاراکترهای خاص در متن فارسی (حروف ک عربی و ی عربی)
String.ps.withFixedPersianCharacters -> String
String.ps.fixPersianCharacters() -> Void
-
تبدیل شده متن موجود، بهمراه ظاهر قیمت
اگه متن ما ساختار عددی مثل "12345" نداشته باشه، خروجی nil میشه.
String.ps.withIranRialStyle -> String?
String.ps.withIranTomanStyle -> String?
String.ps.withCurrencyStyle -> String?
-
تبدیل متن با ساختار تاریخ، به تاریخ شمسی متناظر با اون
اگه متن ما ساختار تاریخ مثل "2017-06-03 17:23:41" رو نداشته باشه، خروجی `nil` میشه. البته فرمت ورودی رو میتونین موقع استفاده از این متد تنظیم کنین.
String.ps.asPersianDate(fromGregorianFormat: String) -> String?
برای این نوع دادهها، اول یه protocol
به اسم Numeric
تعریف شده و بعد نوعهای Int, Double, Float
این پروتکل رو استفاده کردن.
public protocol Numeric {}
extension Int : Numeric {}
extension Double : Numeric {}
extension Float : Numeric {}
بعد به اون پروتکل تعریف شده، موارد زیر اضافه شدن.
- دریافت عدد بصورت متن
Numeric.ps.string -> String
- دریافت عدد بصورت متن بهمراه اعداد فارسی
Numeric.ps.stringWithPersianDigits -> String
- دریافت عدد بصورت متن و با ظاهر قیمت
Numeric.ps.stringWithCurrencyStyle -> String
با استفاده از موارد آماده شده، میتونین خیلی راحت یه تاریخ رو به شمسی تبدیل کنین. به عنوان مثال با استفاده از `timeinterval` دریافتی از وبسرویس، یه تاریخ بسازین. و بعد خیلی راحت اون رو به تاریخ شمسی تبدیل کنین.
نام موارد آماده شده و نمونه خروجیشون توی مثال زیر آورده شده:
let date = Date(timeIntervalSince1970: TimeInterval(exactly: 629152200)!)
_ = date.ps.asPersianDate // شنبه ۱۸ آذر ۱۳۶۸
_ = date.ps.asFullPersianDateTime // شنبه ۱۸ آذر ماه ۱۳۶۸ ساعت ۱۲:۰۰:۰۰ قبل از ظهر
-
به ترتیب کردن آرایهای از Stringها و دریافت خروجی
این دستور روی آرایهای از String اعمال میشه و اون رو بطور صعودی به ترتیب میکنه و بعنوان خروجی برمیگردونه.
[String].ps.sortedPersianStrings
-
به ترتیب کردن درجای آرایهای از Stringها
این دستور هم روی آرایهای از String اعمال میشه و خود اون آرایه رو درجا به ترتیب میکنه. موقع استفاده از این دستور میتونین صعودی یا نزولی بودن ترتیب رو انتخاب کنین.
[String].ps.sortPersianStrings(desc: Bool)
هرگونه همکاری و همفکری به شدت و با آغوش باز پذیرفته میشه. پس بیاین همدیگه رو در آغوش بگیریم!!! 😆😂😋