Make grammar data loadable as an RL module and usable in JS
[lhc/web/wiklou.git] / resources / src / mediawiki.language / languages / ru.js
1 /*!
2 * Russian (Русский) language functions
3 */
4
5 mediaWiki.language.convertGrammar = function ( word, form ) {
6 'use strict';
7
8 var forms, transformations, i, rule, sourcePattern, regexp, replacement;
9
10 forms = mediaWiki.language.getData( 'ru', 'grammarForms' );
11 if ( forms && forms[ form ] ) {
12 return forms[ form ][ word ];
13 }
14
15 transformations = mediaWiki.language.getData( 'ru', 'grammarTransformations' );
16
17 if ( !transformations[ form ] ) {
18 return word;
19 }
20
21 for ( i = 0; i < transformations[ form ].length; i++ ) {
22 rule = transformations[ form ][ i ];
23 sourcePattern = rule[ 0 ];
24
25 if ( sourcePattern === '@metadata' ) {
26 continue;
27 }
28
29 regexp = new RegExp( sourcePattern );
30 replacement = rule[ 1 ];
31
32 if ( word.match( regexp ) ) {
33 return word.replace( regexp, replacement );
34 }
35 }
36
37 return word;
38 };