Commit graph

30 commits

Author SHA1 Message Date
Amir E. Aharoni
6b03e2e88e Make the code for grammar data processing common
This makes the code for processing JSON files with
grammar transformations reusable by different languages
and applies the same logic to Russian and Hebrew.
It will be done to other languages in further patches.

This patch is not supposed to change any functionality,
and the tests are intact (except a comment in the test
for Hebrew - the class doesn't exist any longer).

PHP:
* Move the JSON grammar transformation data processing logic
  from LanguageRu.php to convertGrammar() in Language.php.
  By default all these data files are supposed to be
  processed identically, so the code should be common.
  If there is no JSON data file, nothing new happens.
* LanguageRu's own convertGrammar() method is removed.
* The LanguageHe class is removed, now that all its functionality
  is handled by generic JSON data processing in the Language class.
  LanguageHe.php file is removed from the repo and from autoloading.

JavaScript:
* Move the JSON grammar transformation data processing logic
  from ru.js to mediawiki.language.js.
* JavaScript grammar code files he.js and ru.js are removed
  from the repo and from Resources.php, because all the data
  is in JSON, and the default logic in mediawiki.language.js
  works for both languages.

Bug: T115217
Change-Id: I5e75467121c3d791bb84f9e6fdfcf07c1840f81a
2016-12-16 15:52:14 +02:00
Amir E. Aharoni
df5a848de8 Make grammar data loadable as an RL module and usable in JS
* Load the data of this variable from a JSON file to the same
  data structure that ResourceLoader uses for digitTransformTable,
  pluralRules, etc.
* Change the JSON structure to ensure the order of the rules.
  Otherwise JavaScript processes the keys in a random order.
* Delete the grammar code from JS and replace it with
  the same logic that is used in PHP for processing the data.

For now this is done only for Russian.

The next step will be to make the PHP and JS
data processing logic reusable.

Bug: T115217
Change-Id: I6b9b29b7017f958d62611671be017f97cee73415
2016-10-21 12:25:16 -07:00
Fomafix
7de07e8991 Update weblinks in comments from HTTP to HTTPS
Use HTTPS instead of HTTP where the HTTP link is a redirect to the HTTPS link.

Change-Id: I06d9e043730accc4ae71b927e0f8229f0fc3b340
2016-10-11 17:25:10 +00:00
Amir E. Aharoni
ae78d44091 Convert Russian grammar cases from PHP to JSON
This is a follow-up to
Ib6a0afa5c3736f8b9b2e121cd752c53ee50fad75

The PHP logic for grammatical cases in Russian was growing.
It was too long and not reusable is JavaScript.

This patch moves all the logic to a JSON file,
indexed by the grammatical case name and then
by regular expressions that match the different
word classes, with the values being the replacements
that should be compatible with common regular expression
replacement functions in modern programming languages.

This patch doesn't introduce any functional changes
and doesn't change any tests.

The next steps, not necessarily in this order, are:
* Make it work also with JavaScript.
* Make JSON grammar data files loadable with ResourceLoader.
* Convert most or all grammar rules for all the languages to JSON.
* Make the data processing loop generic for all languages.
* Convert it also in jquery.i18n (Milkshake).
* Convert the test cases data from code to generic data.
* Move the JSON data to a separate reusable repository.

Change-Id: I0e8e1bfb9d3ec9f841f733356af32dad7d130e94
2015-09-28 14:24:01 +00:00
Amir E. Aharoni
8b0c0b49ce Add new grammar forms for language names in Russian
CLDR provides translated language names. They are useful for showing
names by themselves in menus and lists, but it's often problematic to add them
to Russian sentences, because they need to be declined, so a message like
"This page is not available in the $1 language" is hard to localize.

This patch adds new cases for Russian -
"languagegen", "languageprep" and "languageadverb".
(The last one, as its name says, it's not actually a grammatical case,
but a transformation to an adverbial expression.)
This covers most of the needs for language names that MediaWiki supports.

Change-Id: Ib6a0afa5c3736f8b9b2e121cd752c53ee50fad75
2015-09-28 15:51:24 +03:00
Amir E. Aharoni
fab8c6f541 Add grammar forms for Russian
This adds support for the Russian name of Wikimedia Commons.

Change-Id: If531e9ff8f46ac5294b117eec43172b4975e2ad6
2014-07-04 12:35:59 +00:00
umherirrender
55e8a9abfd Fixed some @params documentation (languages)
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
2014-04-17 13:32:54 +00:00
Santhosh Thottingal
f50d3eb61e Update Russian(ru) plural rules to CLDR 24
Russian (ru) plural rules have a major change. The 'few' form is
merged with the 'other' form. The current forms are 'one', 'many', 'other'.
In MW ru plural rules were overridden using convertPlural methdod
in LanguagesRu.php with 3 forms.

Effectively forms[1] and forms[2] are swapped.

Followup: I9930b290d004667a3bb09e5c1663ec2c9c27d8a6

Bug: 56931
Change-Id: Ia5779e42315d3f41f52dce2bfffaee0a4297d23b
2014-01-03 13:46:19 +05:30
Santhosh Thottingal
a35f710791 Make explicit plural forms work for Russian
Russian has overridden convertPlural method, that was not
taking care of explicit plural forms.

Follow up: I2a9f93567087babb896999f1214d3c56afc67c96

Bug: 54514
Change-Id: Ia977fa544b1d0e40222c7296b7145dcd6f93ecc2
2013-12-04 06:46:57 +00:00
Amir E. Aharoni
2a481e74cf Russian grammar updates
* Replace == with ===
* Add support for the prepositional case
* Add support for Wikidata
* Add tests

Change-Id: Ic02bfb9ce88e93775036f3d15921cedca602237c
2013-02-11 07:15:13 +01:00
Alexandre Emsenhuber
1e69ac22e2 Added missing GPLv2 headers in some places.
Also made file/class documentation more consistent.

Change-Id: I4228ed95446558db71e9084e7d505fc0b783fa53
2012-06-08 22:43:32 +02:00
Amir E. Aharoni
8c5c8d1b8f Follow up to r109021, corrected the comment, and added a translation from Russian. 2012-01-16 10:45:01 +00:00
Amir E. Aharoni
3af279116e Improved the comment about the two-forms plural shortcut. 2012-01-16 09:46:56 +00:00
Sam Reed
b6b807b2bc More documentation! 2011-05-29 16:32:05 +00:00
Sam Reed
6869bd5893 More documentation! 2011-05-29 15:59:47 +00:00
Sam Reed
810610a153 Some language love 2011-05-29 15:03:33 +00:00
Platonides
82fb370dfc Changes to doc-comments. /* to /** in language folder. 2011-05-22 22:05:18 +00:00
Siebrand Mazeland
75c6696aa8 Use consistent notation for "@todo FIXME". Should update http://svn.wikimedia.org/doc/todo.html nicely. 2011-05-17 22:03:20 +00:00
Sam Reed
e476b51e3a Stylize languages/*, languages/classes/*, but not languages/messages/* 2010-07-29 09:43:18 +00:00
Siebrand Mazeland
62546832cc Update plural forms per http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html. Complete per Date: 2009/05/12 11:24:52 for languages currently supported in MediaWiki.
Added FIXME where CLDR definition is different from MediaWiki's.
2009-10-02 18:30:23 +00:00
Siebrand Mazeland
63b932fb5f (bug 15569) Fix Russian commafy function. Patch by Alexander Sigachov. 2008-09-14 09:06:14 +00:00
Alexandre Emsenhuber
087a9f70c5 WARNING: HUGE COMMIT
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.
2008-05-20 17:13:28 +00:00
Siebrand Mazeland
555019a2c6 remove EOL whitespace, and excess empty lines 2008-05-17 17:10:18 +00:00
Niklas Laxström
bf0f7e2a64 * (bug 12885) Correction for Russian convertPlural function 2008-02-03 09:16:56 +00:00
Niklas Laxström
6d97bfde47 * Reworked convertPlural so that it accepts variable number of arguments nicely
* Should also fix bug 11991
2007-11-18 20:15:49 +00:00
Victor Vasiliev
40c4c66b65 * (bug 11903) Upgrade of Russian convertPlural. Patch by Alexander Sigachov 2007-11-08 13:59:31 +00:00
Aryeh Gregor
a15c419b3d Remove ?>'s from files. They're pointless, and just asking for people to mess with the files and add trailing whitespace. (Yes, I looked over every one and reverted those that were bogus. Slash-enter a million times in less worked well enough, although it was a bit mind-numbing.) 2007-06-29 01:19:14 +00:00
Antoine Musso
c771fc9c96 Use Doxygen @addtogroup instead of phpdoc @package && @subpackage 2007-01-20 15:09:52 +00:00
Antoine Musso
b5a5e77543 Makes convertPlural compatible (strict standards) 2006-12-16 22:31:08 +00:00
Tim Starling
157a8106ac Restructured the languages directory, to avoid problems when people untar MW 1.8 over the top of a 1.7 installation. 2006-10-04 01:39:28 +00:00
Renamed from languages/LanguageRu.php (Browse further)