Splitting off existing i18n functions from textlib to i18n.py

Created during the Amsterdam Hackathon.

https://mediawiki.org/wiki/Special:Code/pywikipedia/8833
Added function to read TranslateWiki translations from i18n/* files.

Created during the Amsterdam Hackathon

https://mediawiki.org/wiki/Special:Code/pywikipedia/8834
Implemented TW translations for category.py

The code in page.py should not be in the framework, but in the CategoryMoveRobot.
The implementation has not been tested very thoroughly, but works for category.py add.

Created during the Amsterdam Hackathon.

https://mediawiki.org/wiki/Special:Code/pywikipedia/8837
Adapted isbn.py for TranslateWiki translations

https://mediawiki.org/wiki/Special:Code/pywikipedia/8838
check if the subkey exists anyway

https://mediawiki.org/wiki/Special:Code/pywikipedia/8840
check whether a language has no translations at all and the subkey exists. Otherwise use 'en' as default key.

https://mediawiki.org/wiki/Special:Code/pywikipedia/8843
Revert fallback implementation from r8840/r8843

These implementations do not cover fallback languages correctly.

https://mediawiki.org/wiki/Special:Code/pywikipedia/8844
Added unit tests for i18n functions

https://mediawiki.org/wiki/Special:Code/pywikipedia/8845
Implemented fallback translations for TW translations.

https://mediawiki.org/wiki/Special:Code/pywikipedia/8846
Documentation update for i18n.py

https://mediawiki.org/wiki/Special:Code/pywikipedia/8847
altlang fallback for sr

https://mediawiki.org/wiki/Special:Code/pywikipedia/8854
i18n for basic.py

https://mediawiki.org/wiki/Special:Code/pywikipedia/8856
define twhas_key to check whether a specified translation is provided (needed for redirect.py for example)

https://mediawiki.org/wiki/Special:Code/pywikipedia/8858
i18n for replace.py

https://mediawiki.org/wiki/Special:Code/pywikipedia/8859
i18n from TW supported

https://mediawiki.org/wiki/Special:Code/pywikipedia/8861
upupdate language_by_size from trunk r8868

https://mediawiki.org/wiki/Special:Code/pywikipedia/8869
Update MediaWiki version for i18n_family.py from trunk r8823

https://mediawiki.org/wiki/Special:Code/pywikipedia/8870
rewrite's Pywikipediabot only runs under Python 2.5 or higher. We don't need to redefine "set" or "sorted"

https://mediawiki.org/wiki/Special:Code/pywikipedia/8871
Added TranslateWiki support for solve_disambiguation.py

Due to PYWP-10, I was unable to check the correct working. However, it was
based on a change in trunk, which worked correctly.

Created during the Amsterdam Hackathon.

https://mediawiki.org/wiki/Special:Code/pywikipedia/8876
Partially: revert r8636, apply r8741,r8750.

r8636 introduced a temporary fix for unicode problem #3081100. In r8741, a
more permanent solution was introduced. This solution was slightly changed in
r8750. The last solution is ported to rewrite in this commit.

https://mediawiki.org/wiki/Special:Code/pywikipedia/8877