Changes
What's new in ArPHP 3.5.0 (release date: Sep 1, 2012)
-----------------------------------------------------
* More accurate gender detection by add some formats like إفتعال and إفعال as
well as check the list of most common irregular Arabic female names.
* Transliteration from Arabic to English supports now: UNGEGN, UNGEGN+ (i.e. with
diaritical marks), RJGC, SES, and ISO 233 standards.
* Enhance Numbers sub class to spell ordering numbers in Arabic idiom also.
* Add two extra methods into CharsetC sub class to convert Arabic text from UTF-8
and ISO-8859-6 charset into HTML entities named as "iso2html" and "utf2html".
* Salat sub class deliver now extra output format by present times in Unix timestamp
to provide users more flexibility in handle it.
* Tag HTML content if it is belong to forum using new "isForum" method, currently it
recognize only vBulletin.
* Fix the transliteration issue of ال precedes a word beginning with one of the
"sun letters", and issue of ة when it used in combined words to romanized as
t instead of h.
* Fix the question mark issue in the "swapEa" method in the "KeySwap" sub class, thanks
to Al-Kindi project team <http://www.ar-php.org/stats/al-kindi> who reported this bug.
* Fix the losing new line issue in the "standard" method in the "Standard" sub class, thanks
to Al-Kindi project team <http://www.ar-php.org/stats/al-kindi> who reported this bug.
* Move out "js" sub directory and keyboard example to keep it pure PHP code.
* Replace PNG version of Arabic countries flags by higher resolution SVG version
from Wikipedia.
* Add countries full/long name to the "arab_countries.xml" file.
* Convert time presented in the "Info.php" example to GMT based on the server time
zone offset.
What's new in ArPHP 3.0.0 beta (release date: Feb 5, 2012)
-----------------------------------------------------
* PEAR structure and naming style.
* Convert all internal encoding into UTF-8.
* Standardize Salat sub class setDate parameters order (it is now: Month, Day,
and Year), and setLocation parameters order (it is now: Latitude, Longitude,
and Zone).
* Review Salat time's calculations in the "getPrayTimes2" method and fix few
bugs (missing decimals in rounded numbers, RA rounded rule), we also added
elevation parameter which may affect sunrise and sunset estimation.
* Add int2indic method into Numbers sub class to represent integer numbers in
Arabic-Indic digits using HTML entities.
* Add "header" method into main Arabic class to set/send output charset in several
output media in a proper way (this includes http, html, text_email, html_email,
mysql, mysqli, and pdo).
* Add new method "getBrowserLang" to the main class to detect chosen/default
browser language using ISO 639-1 2-letter codes (i.e ar, en, fr, ...)
* Enhance Normalise sub class by import set of Mr. Taha Zerrouki <taha.zerrouki@gmail.com>
PyArabic library functions (this includes: isTashkeel, isHaraka, isShortharaka,
isTanwin, isLigature, isHamza, isAlef, isWeak, isYehlike, isWawlike, isTehlike,
isSmall, isMoon, isSun, charName).
* Add "pregPattern" method to render regular expression pattern using an enhanced
version of syntax and semantics to support Arabic version of some specifying
generic character types.
* Better ratio estimation in the "AutoSummarize" sub class build on number of
chars instead of number of sentences.
* New Glyphs/SVG example has been added (this fix bidi bug on some browsers like
Firefox 3.6 but not others like Chrome 10).
* Better example for "Normalise" and "AutoSummarize" sub classes.
* Enhance Date sub class example by show tonight moon phase image.
* New Libyan flag in the images/flags directory, and update Sudan cities information
in the data/cities.db.
* Fix Qibla direction calculation in the Salat sub class.
* Fix handle left zeros after decimal point in the Numbers sub class, thanks
to Jnom <jnom23@gmail.com> who referred to this bug and provides its solution.
* Fix Tanwin Dam and Kaser issue in Transliteration sub class, they are Romanized
now as "un" and "in" respectively.
* Fix renders issue of digits attached to English letters in the Glyphs sub class,
they was converted into Hindo style before!
* Fix grammar configuration bug for number 12 in the ArNumbers.xml file.
* Add Arabic~Arabizi mapping XML file into "Arabic/data/charset" directory.
* Back use "heredoc" in the examples as string delimiter instead of "nowdoc" that
used in the version 2.8 examples, this will keep examples compatible with all
PHP 5 versions before 5.3 when "nowdoc" string delimiter introduced.
What's new in ArPHP 2.8 (release date: Apr 14, 2011)
-----------------------------------------------------
* Add more accurate method called "getPrayTime2" to calculate Salat times using
algorithm presented by Mr. Hamid Zarrabi-Zadeh (http://www.praytimes.org)
* Add support to the Phoenician language in the Hiero sub class.
* Convert internal encoding of following sub classes into UTF-8:
ArGender, Hiero, ArStemmer, ArSoundex, ArCompressStr, ArCharsetD
* Improve writing error rules using in ArQuery sub class by add case for handle
confusing between ظ and ض.
* Improve ArIdentifier sub class by ignore following symbols
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 :
if it come in the Arabic context, thanks to Mr. Emiel Polman <e1polman@live.nl>
* Update stopwords list provided by Mr. Taha Zerrouki <taha.zerrouki@gmail.com>
* Fix issues of TAB "\t" and URL rendering in ArGlyphs sub class
(i.e. http://www.example.com)
* Fix Qibla angle calculation from the north direction for locations exists above
Makkah latitude line, then add a small script in Examples directory to enhance
Salat example and present this information in SVG visual format.
* Fix strict error standards of accessing static property in ArGlyphs sub class
as non static.
* Fix all reported notices error in the library
* Add comments/documentation to the XML files in the sub/data directory.
What's new in ArPHP 2.7.1 (release date: Aug 23, 2010)
-----------------------------------------------------
* Fix name of extra charset files in the ArCharsetC sub class.
* Fix calculation of time zone adjusted by summer time in the Info example.
* Fix re-declare class ArCharsetC issue in the main Arabic class.
* Fix declaration of static $bin property in the ArCompressStr sub class.
* Fix static properties declaration in the ArKeySwap sub class.
* Fix calculation bug of Hijri calendar correction using Um-Al-Qura calendar
information on Linux/Unix servers.
* Fix ArGlyphs bug when English words has dots in between (just like domain name)
* Replace all __DIR__ magic constant (which added in PHP 5.3.0.) by dirname()
function for __FILE__ magic constant to keep compatible with all PHP 5 versions.
* Replace all used split functions (using explode function instead) because it
has been DEPRECATED as of PHP 5.3.0
What's new in ArPHP 2.7 (release date: Aug 15, 2010)
-----------------------------------------------------
* ArNumbers can handle now numbers exceeds 2^31 (integer limit) and supports
numbers up to 15 digits "Trillion"
* Support negative numbers in the ArNumbers sub class.
* Fix Algeria time zone and add summer time information(including start and end
dates in strtotime text format) into "arab_countries.xml" file, thanks to
Mr. El-Bachiri <http://www.bp.ma>.
* Improve ArStrToTime sub class accuracy.
* Set methods returns now $this object to build a fluent interface, thanks to
Till Klampaeckel <http://pear.php.net/user/till> for his advice.
* Merge EnTransliteration and ArTransliteration sub classes in one sub class
called Transliteration.
* Add compatible mechanism to map old class/methods naming to the new style
required by PEAR migration process, if you are using new naming style then you
can switch it off to save some execution time.
* Support Arabic language in the Hiero sub class.
* Check and fix many violations of the PEAR coding standard.
* Implement cleaner way to convert between different Arabic character sets, this
makes sub classes independent from main Arabic class by define input and output
character set for each method.
* Improve Hieroglyphics symbols resolution and enable set backgound color (default
is transparent), it also supports now writing direction [ltr, rtl, ttb and btt]
* Fix ArGlyphs bug when English words has dash in between or when sentence
starts or ends by English word.
* Fix Makkah province information (KSA) in the cities SQLite database file
(in total 21 cities), thanks to Mr. Daif Alotaibi <daif@makkah.gov.sa> to
highlight this issue.
* Fix character set files by add missing Arabic "dammah", thanks to
Mr. Jalal Al-Deen Omary <jalalaldeen@gmail.com> to highlight this issue.
* Fix autoload functionality and use spl_autoload_register.
* Fix the usage way of Ummulqura correction value in the date example
(it is third parameter not fourth one).
* Add getClassPath private method to have more control on mapping between class
name and file path to be included.
* Push data arrays into external documented XML files.
Warning:
Many people reported problems in the ArGlyphs_GD example, it's a bug in
PHP 5.3.1 binary build; PHP 5.3.2 no longer misses chars or throws a warning.
It's also been working fine in several setups up to PHP 5.3.0 and problems
started when it ran under PHP 5.3.1 where all non-ASCII characters are replaced
by the hollow rectangle that represents missing or unknown chars.
What's new in ArPHP 2.6 (release date: Mar 15, 2010)
-----------------------------------------------------
* Add new sub class "ArNormalise" developed by Mr. Djihed Afifi <djihed@gmail.com>,
this class performs text normalization through various stages.
* Refactoring ArGlyphs sub class, it is now 2 times faster.
* Improve isNoun method in ArWordTag sub class using Mr. Taha Zerrouki
<taha.zerrouki@gmail.com> advices.
* Add Ummulqura correction functions to both ArDate and ArMktime sub classes
using information sent by Mr. Daif Alotaibi <daif@makkah.gov.sa>
* Improve ArQuery sub class by handle Arabic Tatwilah case "_".
* Add two additional Arabic month names style to ArDate Class, the
Algerian/Tunisian style and Moroccan style.
* You can pass CSS style name as second parameter in the highlightText methods
in ArWordTag sub class instead of background color for more flexibility.
* Optimize ArWordTag sub class, it is now 10% faster.
* useAutoload and useException become optional constructor parameters instead of
global variables, both of autoload and error handler functions become static
methods within Arabic class itself.
* Add arNum method to the ArTransliteration sub class to render numbers in given
string using HTML entities that will show them as Indian digits (i.e. ١, ٢, ٣,
etc.) whatever browser language settings are.
* Add enNum method to the EnTransliteration sub class to render numbers in given
string using HTML entities that will show them as Arabic digits (i.e. 1, 2, 3,
etc.) whatever browser language settings are.
* Add one more ArGlyphs example using Flash Art (MING) named "ArGlyphs_SWF.php"
* Fix getWhereCondition method in ArQuery sub class when search string includes
extra spaces.
* Fix warning message of undefined offset in ArNumbers sub class when input
number is a complete hundred (i.e. 1200, 2500, or 123400).
* Fix am & pm Arabic replacement in ArDate sub class when mode is 1 (Hijri format)
* Make Arabic countries flags available in the "sub/lists" directory.
* Add 200 Egypt cities information to the lists.db SQLite database and rename it
as cities.db
* New XML file "sub/lists/arab_countries.xml" contains country name in Arabic
and English, capital name in Arabic and English as well as its coordinates
(latitude and longitude), ISO 3166 codes, time zone, dial code, and currency
name in Arabic and English as well as ISO currency code.
* Remove previous currency XML file and SQLite table in lists as well as
currency example and replace it by new Info.php example that demonstrate how
to use new arab_countries.xml file.
* Enhance Keyboard example by show the virtual keyboard just below selected
input item (when "justBelow" JavaScript variable set to true).
What's new in ArPHP 2.5.2 (release date: Sep 16, 2009)
-----------------------------------------------------
* Add new sub class called Hiero that translate English words into Hieroglyphics.
* Add getQibla method to the Salat sub class to calculate Qibla direction.
* Convert ArStemmer and ArStandard sub classes methods and properties to Static
for better performance and memory utilize.
* Fix charset conversion of swap_ae method input in the ArKeySwap sub class.
* Pack a database of more than 2500 city in the Arab world, available information
include Arabic and English name as well as latitude and longitude coordination.
* Pack a virtual JavaScript keyboard with Arabic customization (originally
developed by Dmitry Khudorozhkov http://www.codeproject.com/KB/scripting/jvk.aspx
and we provide the Arabic customization for it)
* Pack an Arabic and English list of Arab countries currencies in both XML and
SQLite format.
* Convert Private properties in all sub classes into Protected for more
flexibility when class extended.
* Update examples by add a link to related section in the class documentation in
each example file.
What's new in ArPHP 2.5.1 (release date: Aug 19, 2009)
-----------------------------------------------------
* Refactoring ArAutoSummarize sub class, it is now 2 times faster.
* Add check to the iconv output, if empty then use internal ArCharsetC converter.
* Add singleton pattern to the ArCharsetC sub class as an option, implementing
this pattern allows a programmer to make this single instance easily accessible
by many other objects.
* Default charset loaded in the ArCharsetC sub class become only Windows-1256
and UTF-8 for more optimization.
* ArabicTest source code become compliant to the PEAR Coding Standards.
* You can pass CSS style name as fourth parameter in both highlightSummary and
highlightRateSummary methods in ArAutoSummary instead of background color for
more flexibility (see related example)
* Fix charset name for Windows-1256 in the iconv command (convert to CP1256) in
the core Arabic class, and append "//TRANSLIT" to the output charset.
* Fix warning message in ArAutoSummarize sub class (line 629) when $word is empty.
* Fix charset conversion of swap_ae method input in the ArKeySwap sub class.
What's new in ArPHP 2.5 (release date: Aug 5, 2009)
-----------------------------------------------------
* Add ArStandard sub class and "standard" method, this method will standardize
Arabic text to follow writing standards (just like magazine rules).
* Add simple and rough ArStemmer sub class and "stem" method, this method will
return Arabic stem for a given Arabic word (http://arabtechies.net/node/83).
Algorithm provides by Mr. Taha Zerrouki <taha.zerrouki@gmail.com>
* cleanCommon method in the ArAutoSummarize sub class become public now.
* Add loadExtra method to the ArAutoSummarize sub class to load an enhanced
Arabic stop words list.
* Apply semi-factory pattern by using PHP Reflection and Magic methods to reduce
Arabic.php core file size from 43 KB to 9 KB (allocated only 63% of memory
comparing to previouse version and 3% faster).
* You can load different sub class dynamically using load method, no need to
have new instance for this purpose any more.
* No need to access sub classes anymore, all methods available on the core
Arabic class level (still previous mode supported and compatible).
* Name of sub class you would like to load is required now when create an
instance from Arabic class, and mode 'All' is not supported any more.
* Fix using auto load Boolean switch inside Arabic class constructor by use
global $use_autoload (thanks to Mr. Taha Zerrouki to refer to this issue).
* Fix Arabic numbers bidi when followed by Arabic comma or Arabic question
mark in ArGlyphs sub class.
* ArPHP source code become compliant to the PEAR Coding Standards
* Check compatibility with PHP 6.0.0-dev, MySQL 6.0.4-alpha, and cloud computing.
What's new in ArPHP 2.0 (release date: Jul 7, 2009)
-----------------------------------------------------
Many thanks to all Arab Techies Code Sprint participants who provides valuable
assist and advices: http://www.arabtechies.net/participants/codesprint
-----------------------------------------------------
* ArStrToTime sub class supports now Hijri dates also.
* Add isArabic static method to the ArIdentifier subclass.
* Improve getCharset method in ArCharsetD subclass by add regular expression to
extract HTML page charset from meta tag if there is any!
* Better mechanism to get most possible Arabic lexical forms for a given word in
the allForms method.
* Enable ArDate and ArMktime sub classes to accept correction factor (+/- 1-2)
to standard hijri calendar
* Use PHP exception is optional now, default is disabled for ease of implement
in applications, you can configure it in the Arabic.php file.
* Use PHP __autoload is optional now, default is disabled for ease of implement
in applications, you can configure it in the Arabic.php file.
* Handle decimal numbers in ArNumber sub class.
* Better garbage collection, by release child objects directly.
* Add win2html method to the ArCharsetC sub class to convert Arabic string from
Windows-1256 to HTML entities format.
* Improve current stop words list that used in the ArAutoSummary sub class, we
used Arabic stop words list collected by Taha, Walid, Riham and Linuxawy
during Arab Techies Code Sprint 2009 as well as MySQL stop words list of
full-text search for English language.
* Cleaner Salat calculation equations provided by Mr. Mansoor Magdy.
* Fix bug of exception thrown when empty string sent to "int2str" method in the
"ArNumber" sub class.
* Fix bug of exception thrown when all keywords sent to "getWhereCondition"
method in "ArQuery" sub class are two letters words.
* Fix salat Al-Asr calculation that may affect some locations (thanks to
Mr. Mansoor and Mr.Salim from qasweb.org)
* Support share-nothing architecture (stateless) where input/output character
set can optionally pass to each method (to be ready for large scale
applications and clustering)
* No need to have "./" in the PHP include_path (to be ready for large scale
applications and clustering)
What's new in ArPHP 1.8 (release date: Feb 15, 2009)
-----------------------------------------------------
* Core Arabic charset converter become 4 times faster and takes only 70% of RAM
comparing to the previous version, we used iconv function instead of
ArCharsetC sub class when possible.
* Optimize ArIdentifier sub class, it is now 2 times faster.
* Optimize ArGender sub class, it is now 10% faster.
* Optimize ArCompressStr sub class, it is now 10% faster.
* Optimize ArSoundex sub class, it is now 5% faster.
* Optimize ArTransliteration sub class, it is now 5% faster.
* Highlight in documentation and examples how you can optimize classes load by
specify the functionality you looking for, this procedure reduce used RAM
into 25% in average and reduce execution time by 10% in average.
What's new in ArPHP 1.7 (release date: Jan 5, 2009)
-----------------------------------------------------
* Convert all of ArTransliteration, EnTransliteration, ArGender, ArKeySwap,
ArWordTag, ArStrToTime, and ArCompressStr into Static classes for better
performance and memory utilize.
* Better documentation
* Convert class errors into Exceptions (ArabicException)
* Optimize ArKeySwap sub class, it is now 25% faster and takes only 74% of RAM
comparing to the previous version.
* Optimize ArTransliteration sub class, it is now 37% faster and takes only 80%
of RAM comparing to the previous version.
* Optimize EnTransliteration sub class, it is now 15% faster and takes only 87%
of RAM comparing to the previous version.
* Optimize ArCompressStr sub class, it is now 17% faster and takes only 94% of
RAM comparing to the previous version.
* Optimize ArGlyphs sub class, it is now 10% faster and takes only 85% of RAM
comparing to the previous version.
* Clean ArAutoSummarize list of Arabic common words, add list of English common
and important words, and update ArAutoSummarize class to handle English text
also.
* Fix English sentences separator and fix reading common and important list
files process (ArAutoSummarize sub class).
* Fix jd_to_greg function (ArMktime sub class).
* Cleaner code generate much less PHP Notices.
What's new in ArPHP 1.6 (release date: Aug 25, 2008)
-----------------------------------------------------
* Core Arabic charset converter become 35% faster and takes only 40% of RAM
comparing to the previous version.
* Add sub class for Arabic Huffman zip.
* Add new method "allForms" to ArQuery sub class return all possible word forms to be
search instead of regular expression format.
* Returns WHERE condition alone in the ArQuery sub class (no order by
combination for more flexibility).
* Add new stand alone getOrderBy public method to the ArQuery sub class.
* Field names will not inclosing by ` eternally, so you can use table.field
style in the ArQuery sub class.
* Add documentation for greg_to_jd & jd_to_greg methods in ArDate ArMktime sub
classes and make return values identical to PHP calendar functions.
* Support Libyan date format in the ArDate sub class.
* Capitalize the English letter come after - like Al- case in EnTransliteration
sub class.
* Fix Mktime conversion issue from Higri to Gregorian date.
* Fix strip slashes issue in the ArKeySwap sub class (affect Arabic tah letter).
What's new in ArPHP 1.4 (release date: Jul 23, 2008)
-----------------------------------------------------
* Add new method/sub class to implement StrToTime function in Arabic language.
* Enhance ArQuery getWhereCondition() method by escape the unescaped_string, so
that it is safe to place it in a mysql_query(). Also method will ignore
punctuation as well as words of less than 3 chars if they are not in exact
phrase portion.
* No need to compile PHP with --enable-calendar to get ArPHP date function
working. Also I fix ArMktime methods visibility.
* Improve performance by replace preg_replace function by str_replace function
when it is possible (ArAutoSummarize is 200% faster now).
* Fix ArAutoSummarize bug in define sentences and words borders where I miss
handle the comma as a separator just like spaces.
* Fix bug in the $hindo parameter in utf8Glyphs method (did not accept false
value to output Arabic digits instead of Hindo digits).
* Fix ArabicTest and add test cases for ArStrToTime method/sub class.
* Batch file for Apache ab stress test.
* Update license information (use LGPL).
What's new in ArPHP 1.3 (release date: May 18, 2008)
-----------------------------------------------------
* Class size now is 75% of previous version and ArCharset sub class will not be
loaded unless we need it.
* More optimization for memory usage.
What's new in ArPHP 1.2 (release date: Apr 8, 2008)
-----------------------------------------------------
* Implement Mr. Saleh AlMatrafe <saleh@saleh.cc> update on ArQuery class by using
"CASE WHEN" statement in ORDER BY section for more relevant ordering.
* Also I fix example SQL file by define table charset and collection, and convert
example file to use GET method like most search scripts instead of POST method.
* Minimize memory footprint of the class using dynamic instantiation of objects
at runtime.
* Work on formate those scripts in PEAR style.
What's new in ArPHP 1.1 (release date: Mar 10, 2008)
-----------------------------------------------------
* Reflects new updates on system documentation and examples.
* Get bgcolor in highlight procedure in both ArAutoSummaries and ArWordTag sub
classes.
What's new in ArPHP 1.0 (release date: Feb 24, 2008)
-----------------------------------------------------
* First beta code of this Arabic class which is collection of sub classes published
before in phpclasses.org repository:
http://kshamaa.users.phpclasses.org/browse/author/189864.html
but this has more comments in code block as well as standard code format and
better character set handles for input and output. The strategic aim of this is
to rich PEAR standards to add this class into that library.
* Add ArWordTag, ArGlyphs and ArSoundex sub classes.
* Add Arabic auto summary class and examples.
* Add ArQuery class and some documentation in text file format.
* Add ArMktime sub class.
* Add first draft of standard documentation.
|