پارسیسوییفت
کتابخانه 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
- چک کردن اینکه متن مورد نظر شماره تلفن موبایل باشه
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?اعداد مثل Int Double Float
برای این نوع دادهها، اول یه 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موارد مربوط به تاریخ یا همون Date
با استفاده از موارد آماده شده، میتونین خیلی راحت یه تاریخ رو به شمسی تبدیل کنین. به عنوان مثال با استفاده از `timeinterval` دریافتی از وبسرویس، یه تاریخ بسازین. و بعد خیلی راحت اون رو به تاریخ شمسی تبدیل کنین.
نام موارد آماده شده و نمونه خروجیشون توی مثال زیر آورده شده:
let date = Date(timeIntervalSince1970: TimeInterval(exactly: 629152200)!)
_ = date.ps.asPersianDate // شنبه ۱۸ آذر ۱۳۶۸
_ = date.ps.asFullPersianDateTime // شنبه ۱۸ آذر ماه ۱۳۶۸ ساعت ۱۲:۰۰:۰۰ قبل از ظهرآرایهها
آرایههای متنی یا همون [String]
-
به ترتیب کردن آرایهای از Stringها و دریافت خروجی
این دستور روی آرایهای از String اعمال میشه و اون رو بطور صعودی به ترتیب میکنه و بعنوان خروجی برمیگردونه.
[String].ps.sortedPersianStrings
-
به ترتیب کردن درجای آرایهای از Stringها
این دستور هم روی آرایهای از String اعمال میشه و خود اون آرایه رو درجا به ترتیب میکنه. موقع استفاده از این دستور میتونین صعودی یا نزولی بودن ترتیب رو انتخاب کنین.
[String].ps.sortPersianStrings(desc: Bool)همکاری
هرگونه همکاری و همفکری به شدت و با آغوش باز پذیرفته میشه. پس بیاین همدیگه رو در آغوش بگیریم!!!