summaryrefslogtreecommitdiff
path: root/resources/mediawiki.language/languages/fi.js
diff options
context:
space:
mode:
Diffstat (limited to 'resources/mediawiki.language/languages/fi.js')
-rw-r--r--resources/mediawiki.language/languages/fi.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/resources/mediawiki.language/languages/fi.js b/resources/mediawiki.language/languages/fi.js
new file mode 100644
index 00000000..374698dc
--- /dev/null
+++ b/resources/mediawiki.language/languages/fi.js
@@ -0,0 +1,44 @@
+/**
+ * Finnish (Suomi) language functions
+ * @author Santhosh Thottingal
+ */
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+ var grammarForms = mw.language.getData( 'fi', 'grammarForms' );
+ if ( grammarForms && grammarForms[form] ) {
+ return grammarForms[form][word] ;
+ }
+
+ // vowel harmony flag
+ var aou = word.match( /[aou][^äöy]*$/i );
+ var 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;
+};