PersianSwift
PersianSwift copied to clipboard
😋یه سری ابزار آماده کردیم، برای راحتی کار با زبان پارسی توی زبان برنامهنویسی سوییفت
پارسیسوییفت
کتابخانه 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)
همکاری
هرگونه همکاری و همفکری به شدت و با آغوش باز پذیرفته میشه. پس بیاین همدیگه رو در آغوش بگیریم!!! 😆😂😋