adnane /laravel-speaks-arabic
一个轻量级的开源Laravel包。它通过一系列类和方法简化了在Laravel框架中处理阿拉伯概念,使Laravel能够说阿拉伯语!例如处理阿拉伯文本串、伊斯兰历日期等。
1.0.3
2021-05-10 18:35 UTC
README
Laravel说阿拉伯语 - Laravel Speaks Arabic
一个轻量级的包,简化了在Laravel中处理阿拉伯概念,使用一系列类、方法和函数,使Laravel能够说阿拉伯语!例如处理阿拉伯文本串、伊斯兰历日期等。
示例
@toWords(12078437); // اثنا عشر مليون و ثمان و سبعون ألف و أربع مئة و سبع و ثلاثون
安装
- 通过composer包管理器安装
composer require adnane/laravel-speaks-arabic
- 将包服务提供者添加到
config/app.php
文件中的 providers 数组中,如下所示:
'providers' => [ Adnane\Arabic\ArabicServiceProvider::class, ]
使用方法
- 确认正确安装包后,您可以包含主类
Adnane\Arabic\Arabic
并使用其方法。
将
method
改为所需的函数,例如:Arabic::toWords(643646)
或arabic()->toWords(643646)
use Adnane\Arabic\Arabic; Arabic::method($params) // او مباشرة عن طريق الدالة المساعدة arabic()::method($params)
可用函数
1.处理数字
/** * اعادة كتابة الاعداد كتابة لفظية انطلاقا من كتابة رمزية * يسمى أيضا "تفقيط" * * @return string */ Arabic::toWords(int $integer) /** * اعادة كتابة الاعداد كتابة رمزية انطلاقا من كتابة لفظية * هو عكس العملية السابقة * * @return int */ Arabic::fromWords(string $str) /** * جلب العدد الترتيبي انطلاقا من كتابة رمزية لعدد ما * مثال: أول، ثان، ثالث * * @return string */ Arabic::toOrdinal(int $int) /** * اعادة كتابة الارقام الموجودة في سلسلة نصية ما * كأرقام هندية (۰ - ۱ - ۲ - ۳ - ٤ - ٥ - ٦ - ٧ - ۸ - ۹) * * @return string */ Arabic::toIndianNums(string $str)
2.处理日期和时间
/** * تحويل تاريخ مكتوب بالتقويم الميلادي * الى تاريخ مكتوب بالتقويم الهجري * مكتوبا بصيغة معينة * * (الصيغ المدعومة : f , s , n ) * @return string */ Arabic::toHijri(string $format = 'f' ,string $date) /** * تحويل تاريخ مكتوب بالتقوم الهجري * الى تاريخ مكتوب بالتقويم الميلادي * * @return string */ Arabic::fromHijri(string $date /*Y/m/d*/); /** * جلب فرق التوقيت بين وقتين او تاريخين. * تمرير المعامل details بالقيمة true * سيقوم باعادة فرق تفصيلي بين هاذين التوقيتين * * @return string */ Arabic::toRelative(string $date ,string $date2 = null ,boolean $detailed = false); /** * جلب توقيت ما انطلاقا من فرق مرفق * مثال: * Arabic::fromRelative('زد سنة') * @return string */ Arabic::fromRelative(string $relative);
3.处理字符串
/** * ازالة التشكيل من سلسلة نصية ما * * @return string */ Arabic::removeHarakat(string $str) /** * اعادة كتابة سلسلة نصية ما مكتوبة باللغة الانجليزية * الى المرافق لها بلوحة مفاتيح عربية * يمكن استعمال هاته الوظيفة في تحسين عمليات البحث داخل الموقع * * @return string */ Arabic::toKeyboardInput(string $str) /** * اعادة كتابة سلسلة نصية عربية ما * بحروف انجليزية * يمكن استعمال هاته الوظيفة في انشاء روابط صديقة البحث * @return string */ Arabic::toSpelled(string $str) /** * المكافئ للدالة str_word_count في PHP * من المهم جدا ملاحظة ان دالة ال PHP * str_word_count * لا تدعم اللغى العربية * ولذلك ان هاته الوظيفة تعتبرا بديلا عنها في اللغة العريبة * @return int */ Arabic::countWords(string $str); /** * التحقق من ما ان كانت سلسلة نصية ما تحوي على الأقل حرفا عربيا واحدا * @return boolean */ Arabic::containsAr(string $str);
多种用法示例
Arabic::toWords(56) // ست وخمسون Arabic::fromWords("ثمان مئة و خمسة") // 805 Arabic::toOrdinal(12) // الثاني عشر Arabic::toIndianNums("ولد عليه الصلاة في 12 ربيع الأول") // ولد عليه الصلاة في ۱۲ ربيع الاول Arabic::toHijri('f' ,'2021/12/12') // الثامن من جمادى الأولى من السنة الهجرية ألف و أربع مئة و ثلاث و أربعون Arabic::fromHijri('1442/01/08') // 8/27/2020 Arabic::toRelative('2010/01/10') // منذ أحد عشر سنة Arabic::toRelative('2010/01/10' ,'2008/01/10') // ثلاث سنين Arabic::toRelative('2010/01/10' ,'2008/01/10' ,true) // [ "y" => 3 , "m" => 39 ,"w" => 156 , "d" => 1096 ,"h" => 26304 ,"mn" => 1578240 ,"s" => 94694400 ] Arabic::fromRelative('زد سنة') // 2022/03/28 Arabic::fromRelative('قل ست اشهر') // 2020/09/28 Arabic::removeHarakat('لا حسَدَ إلَّا في اثنتيْنِ: رجلٌ آتاهُ اللهُ مالًا، فسلَّطَهُ على هلَكتِه في الحقِّ، ورجلٌ آتاهُ اللهُ الحِكمةَ، فهوَ يقضِي بِها، ويُعلِّمُها') // لا حسد إلا في اثنتين: رجل آتاه الله مالا، فسلطه على هلكته في الحق، ورجل آتاه الله الحكمة، فهو يقضي بها، ويعلمها Arabic::toKeyboardInput('dl;k hsjulhg ihji hg]hgm td jpsdk ulgdhj hgfpe fl,ru!') // يمكن استعمال هاته الدالة في تحسين عمليات البحث بموقع! Arabic::toSpelled("قد تساعد هاته الدالة في عمل slugs أو تحسين عمليات البحث") // qd tsaaad haath āldaalt fii aml slugs āoo thsiin amliiāt ālbhth Arabic::countWords("هاته الدالة هي المكافئة لاخرى بالبي اتش بي غير ان هاته لا تتجاهل ترميز اليو تي اف ايت") // 18 Arabic::containsAr("this method checks if a given string contains arabic words or charachters , for example : if we mentioned لارفيل يتحدث عربي it will return true!") // true
在Blade模板文件中使用
将
method
改为所需的函数,例如:Arabic::toWords(643646)
或arabic()->toWords(643646)
{{ Arabic::method($input) }} // أو {{ arabic()->method($input) }}
您还可以使用以下模板变量编写更干净的代码:
@toWords(4367) @toOrdinal(564) @toIndianNums(ولد عليه الصلاة في 12 ربيع الأول) @toHijri(2020/12/12) @toRelative(2019/12/01) @removeHarakat(فهوَ يقضِي بِها، ويُعلِّمُها)
贡献
请随时贡献或帮助我们使Laravel更好地支持阿拉伯语,例如通过发起讨论、添加新方法、修复错误或改进某些方法!