adnane/laravel-speaks-arabic

一个轻量级的开源Laravel包。它通过一系列类和方法简化了在Laravel框架中处理阿拉伯概念,使Laravel能够说阿拉伯语!例如处理阿拉伯文本串、伊斯兰历日期等。

1.0.3 2021-05-10 18:35 UTC

This package is auto-updated.

Last update: 2024-09-15 18:53:46 UTC


README

Laravel说阿拉伯语 - Laravel Speaks Arabic

Latest Version on Packagist MIT Licensed Total Downloads

一个轻量级的包,简化了在Laravel中处理阿拉伯概念,使用一系列类、方法和函数,使Laravel能够说阿拉伯语!例如处理阿拉伯文本串、伊斯兰历日期等。

示例

@toWords(12078437); 
// اثنا عشر مليون و ثمان و سبعون ألف و أربع مئة و سبع و ثلاثون

安装

  1. 通过composer包管理器安装
composer require adnane/laravel-speaks-arabic
  1. 将包服务提供者添加到 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更好地支持阿拉伯语,例如通过发起讨论、添加新方法、修复错误或改进某些方法!