mirror of
https://github.com/YunoHost-Apps/mediawiki_ynh.git
synced 2024-09-03 19:46:05 +02:00
47 lines
1,003 B
JavaScript
47 lines
1,003 B
JavaScript
/**
|
|
* Finnish (Suomi) language functions
|
|
* @author Santhosh Thottingal
|
|
*/
|
|
|
|
mediaWiki.language.convertGrammar = function ( word, form ) {
|
|
var grammarForms, aou, origWord;
|
|
|
|
grammarForms = mediaWiki.language.getData( 'fi', 'grammarForms' );
|
|
if ( grammarForms && grammarForms[form] ) {
|
|
return grammarForms[form][word];
|
|
}
|
|
|
|
// vowel harmony flag
|
|
aou = word.match( /[aou][^äöy]*$/i );
|
|
origWord = word;
|
|
if ( word.match( /wiki$/i ) ) {
|
|
aou = false;
|
|
}
|
|
//append i after final consonant
|
|
if ( word.match( /[bcdfghjklmnpqrstvwxz]$/i ) ) {
|
|
word += 'i';
|
|
}
|
|
|
|
switch ( form ) {
|
|
case 'genitive':
|
|
word += 'n';
|
|
break;
|
|
case 'elative':
|
|
word += ( aou ? 'sta' : 'stä' );
|
|
break;
|
|
case 'partitive':
|
|
word += ( aou ? 'a' : 'ä' );
|
|
break;
|
|
case 'illative':
|
|
// Double the last letter and add 'n'
|
|
word += word.substr( word.length-1 ) + 'n';
|
|
break;
|
|
case 'inessive':
|
|
word += ( aou ? 'ssa' : 'ssä' );
|
|
break;
|
|
default:
|
|
word = origWord;
|
|
break;
|
|
}
|
|
return word;
|
|
};
|