diff options
Diffstat (limited to 'resources/src/mediawiki.language/languages/fi.js')
-rw-r--r-- | resources/src/mediawiki.language/languages/fi.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/resources/src/mediawiki.language/languages/fi.js b/resources/src/mediawiki.language/languages/fi.js new file mode 100644 index 00000000..453a675d --- /dev/null +++ b/resources/src/mediawiki.language/languages/fi.js @@ -0,0 +1,47 @@ +/*! + * 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.slice( -1 ) + 'n'; + break; + case 'inessive': + word += ( aou ? 'ssa' : 'ssä' ); + break; + default: + word = origWord; + break; + } + return word; +}; |