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
50 lines
1.5 KiB
PHP
50 lines
1.5 KiB
PHP
<?php
|
||
/**
|
||
* Russian (русский язык) specific code.
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* This program is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU General Public License along
|
||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||
* http://www.gnu.org/copyleft/gpl.html
|
||
*
|
||
* @file
|
||
* @ingroup Language
|
||
*/
|
||
|
||
/**
|
||
* Russian (русский язык)
|
||
*
|
||
* You can contact:
|
||
* Alexander Sigachov (alexander.sigachov at Googgle Mail)
|
||
* Amir E. Aharoni (amir.aharoni@mail.huji.ac.il)
|
||
*
|
||
* @ingroup Language
|
||
*/
|
||
class LanguageRu extends Language {
|
||
/**
|
||
* Four-digit number should be without group commas (spaces)
|
||
* See manual of style at https://ru.wikipedia.org/wiki/Википедия:Оформление_статей
|
||
* So "1 234 567", "12 345" but "1234"
|
||
*
|
||
* @param string $_
|
||
*
|
||
* @return string
|
||
*/
|
||
function commafy( $_ ) {
|
||
if ( preg_match( '/^-?\d{1,4}(\.\d*)?$/', $_ ) ) {
|
||
return $_;
|
||
} else {
|
||
return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) );
|
||
}
|
||
}
|
||
}
|