This only adds public for some function used outside of languages
classes.
This does not fixed all functions, just one first shot
Change-Id: I5c0ee93a0867c847b084d2ce459dbad9cddaf9fb
PHP 7.3+ uses Unicode CaseFolding.txt for case mappings. For Turkic
languages(tr,az) the dotted i is given as a special case and we need
to implement it specifically for tr and az.
Updated the documentation and refactored the lcfirst and ucfirst methods
to use arrays containing the above mentioned special cases.
Bug: T207100
Change-Id: I317f2ca66b0adeaa79bc0f9e3dea5edfcd5e4693
It's unreasonable to expect newbies to know that "bug 12345" means "Task T14345"
except where it doesn't, so let's just standardise on the real numbers.
Change-Id: Id2f9d229d17b8eee66b2ca4e3927f3f66ac62988
All of them are already being used outside the class:
* getMonthAbbreviation
* getMonthAbbreviationsArray
* getWeekdayName
* sprintfDate
* userAdjust
* date
* time
* timeanddate
* getMessage
* iconv
* ucfirst
* uc
Change-Id: I63ec93858cebc02cdf3b9b042eddf4ef620cc110
This method calls out to LanguageConverter which involve the User,
Request, and additional validation.
Change-Id: I3edae1244073767a8d8888708024bb5498c70dc9
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Change-Id: I7a4dec6a8de96ee21ef34e52bb755f723aa3b0e6
* Fixed inappropriate use of empty(), see style guide
* Made uc() and lc() respect the $first parameter. Not doing this completely broke the Turkish wikipedia, sending links like [[İngilizce]] to [[İngİlİzce]].
* Use str_replace() instead of preg_replace(). It's not necessary to use a unicode-aware replacement algorithm to do UTF-8 string replacements, due to details of the UTF-8 encoding format. I'm not sure how Hashar concluded that strtr() will produce garbage.
Methods were introduced in r84057 which, unfortunatly was tested with
PHP errors disabled :\
Additionally add tests for the full Turkish alphabet based on an article
from Wikipedia http://en.wikipedia.org/wiki/Turkish_alphabet
As mentioned by Bawolff on code review, r83970 only handled case change
of the first character lacking full strings support.
This patch override the uc and lc methods for the Turkish language (tr)
using preg_replace() which know about unicode. Other possible choices
would have been:
- strtr() => outputs garbage
- mbstring => can not know we handle turkish and transform i to I!
I have amended the RELEASE-NOTES to reflect this patch.
Some new tests are added as well to cover the regular functions as
well as the specific Turkish overriding. Result in testdox:
LanguageTr
[x] Change case of first char being dotted and dotless i
[x] Language tr lower casing override
[x] Language tr upper casing override
[x] Upper casing of a string with dotted and dot less i
[x] Lower casing of a string with dotted and dot less i
Turkish has two different i, one with a dot and another without a dot. They
are totally different letters in this language, so we have to override the
ucfirst and lcfirst methods.
See http://en.wikipedia.org/wiki/Dotted_and_dotless_I
Credits to #wikipedia-tr users berm, []LuCkY[] and Emperyan
Doxygen documentation update:
* Changed alls @addtogroup to @ingroup. @addtogroup adds the comment to the group description, but doesn't add the file, class, function, ... to the group like @ingroup does. See for example http://svn.wikimedia.org/doc/group__SpecialPage.html where it's impossible to see related files, classes, ... that should belong to that group.
* Added @file to file description, it seems that it should be explicitely decalred for file descriptions, otherwise doxygen will think that the comment document the first class, variabled, function, ... that is in that file.
* Removed some empty comments
* Removed some ?>
Added following groups:
* ExternalStorage
* JobQueue
* MaintenanceLanguage
One more thing: there are still a lot of warnings when generating the doc.