From c1f9b1f7b1b77776192048005dcc66dcf3df2bfb Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sat, 27 Dec 2014 15:41:37 +0100 Subject: Update to MediaWiki 1.24.1 --- resources/src/mediawiki.language/languages/bs.js | 19 +++++++ resources/src/mediawiki.language/languages/dsb.js | 19 +++++++ resources/src/mediawiki.language/languages/fi.js | 47 +++++++++++++++ resources/src/mediawiki.language/languages/ga.js | 38 +++++++++++++ resources/src/mediawiki.language/languages/he.js | 29 ++++++++++ resources/src/mediawiki.language/languages/hsb.js | 19 +++++++ resources/src/mediawiki.language/languages/hu.js | 23 ++++++++ resources/src/mediawiki.language/languages/hy.js | 29 ++++++++++ resources/src/mediawiki.language/languages/la.js | 50 ++++++++++++++++ resources/src/mediawiki.language/languages/os.js | 69 +++++++++++++++++++++++ resources/src/mediawiki.language/languages/ru.js | 57 +++++++++++++++++++ resources/src/mediawiki.language/languages/sl.js | 19 +++++++ resources/src/mediawiki.language/languages/uk.js | 37 ++++++++++++ 13 files changed, 455 insertions(+) create mode 100644 resources/src/mediawiki.language/languages/bs.js create mode 100644 resources/src/mediawiki.language/languages/dsb.js create mode 100644 resources/src/mediawiki.language/languages/fi.js create mode 100644 resources/src/mediawiki.language/languages/ga.js create mode 100644 resources/src/mediawiki.language/languages/he.js create mode 100644 resources/src/mediawiki.language/languages/hsb.js create mode 100644 resources/src/mediawiki.language/languages/hu.js create mode 100644 resources/src/mediawiki.language/languages/hy.js create mode 100644 resources/src/mediawiki.language/languages/la.js create mode 100644 resources/src/mediawiki.language/languages/os.js create mode 100644 resources/src/mediawiki.language/languages/ru.js create mode 100644 resources/src/mediawiki.language/languages/sl.js create mode 100644 resources/src/mediawiki.language/languages/uk.js (limited to 'resources/src/mediawiki.language/languages') diff --git a/resources/src/mediawiki.language/languages/bs.js b/resources/src/mediawiki.language/languages/bs.js new file mode 100644 index 00000000..b56e4b29 --- /dev/null +++ b/resources/src/mediawiki.language/languages/bs.js @@ -0,0 +1,19 @@ +/*! + * Bosnian (bosanski) language functions + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'bs', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'instrumental': // instrumental + word = 's ' + word; + break; + case 'lokativ': // locative + word = 'o ' + word; + break; + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/dsb.js b/resources/src/mediawiki.language/languages/dsb.js new file mode 100644 index 00000000..69c36cc0 --- /dev/null +++ b/resources/src/mediawiki.language/languages/dsb.js @@ -0,0 +1,19 @@ +/*! + * Lower Sorbian (Dolnoserbski) language functions + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'dsb', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'instrumental': // instrumental + word = 'z ' + word; + break; + case 'lokatiw': // lokatiw + word = 'wo ' + word; + break; + } + return word; +}; 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; +}; diff --git a/resources/src/mediawiki.language/languages/ga.js b/resources/src/mediawiki.language/languages/ga.js new file mode 100644 index 00000000..fb4e9396 --- /dev/null +++ b/resources/src/mediawiki.language/languages/ga.js @@ -0,0 +1,38 @@ +/*! + * Irish (Gaeilge) language functions + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + /*jshint onecase:true */ + var grammarForms = mediaWiki.language.getData( 'ga', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'ainmlae': + switch ( word ) { + case 'an Domhnach': + word = 'Dé Domhnaigh'; + break; + case 'an Luan': + word = 'Dé Luain'; + break; + case 'an Mháirt': + word = 'Dé Mháirt'; + break; + case 'an Chéadaoin': + word = 'Dé Chéadaoin'; + break; + case 'an Déardaoin': + word = 'Déardaoin'; + break; + case 'an Aoine': + word = 'Dé hAoine'; + break; + case 'an Satharn': + word = 'Dé Sathairn'; + break; + } + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/he.js b/resources/src/mediawiki.language/languages/he.js new file mode 100644 index 00000000..d1eba43b --- /dev/null +++ b/resources/src/mediawiki.language/languages/he.js @@ -0,0 +1,29 @@ +/*! + * Hebrew (עברית) language functions + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'he', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'prefixed': + case 'תחילית': // the same word in Hebrew + // Duplicate prefixed "Waw", but only if it's not already double + if ( word.slice( 0, 1 ) === 'ו' && word.slice( 0, 2 ) !== 'וו' ) { + word = 'ו' + word; + } + + // Remove the "He" if prefixed + if ( word.slice( 0, 1 ) === 'ה' ) { + word = word.slice( 1 ); + } + + // Add a hyphen (maqaf) before numbers and non-Hebrew letters + if ( word.slice( 0, 1 ) < 'א' || word.slice( 0, 1 ) > 'ת' ) { + word = '־' + word; + } + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/hsb.js b/resources/src/mediawiki.language/languages/hsb.js new file mode 100644 index 00000000..2d6b733e --- /dev/null +++ b/resources/src/mediawiki.language/languages/hsb.js @@ -0,0 +1,19 @@ +/*! + * Upper Sorbian (Hornjoserbsce) language functions + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'hsb', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'instrumental': // instrumental + word = 'z ' + word; + break; + case 'lokatiw': // lokatiw + word = 'wo ' + word; + break; + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/hu.js b/resources/src/mediawiki.language/languages/hu.js new file mode 100644 index 00000000..d72a1c05 --- /dev/null +++ b/resources/src/mediawiki.language/languages/hu.js @@ -0,0 +1,23 @@ +/*! + * Hungarian language functions + * @author Santhosh Thottingal + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'hu', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'rol': + word += 'ról'; + break; + case 'ba': + word += 'ba'; + break; + case 'k': + word += 'k'; + break; + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/hy.js b/resources/src/mediawiki.language/languages/hy.js new file mode 100644 index 00000000..9cae360b --- /dev/null +++ b/resources/src/mediawiki.language/languages/hy.js @@ -0,0 +1,29 @@ +/*! + * Armenian (Հայերեն) language functions + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + /*jshint onecase:true */ + var grammarForms = mediaWiki.language.getData( 'hy', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + + // These rules are not perfect, but they are currently only used for site names so it doesn't + // matter if they are wrong sometimes. Just add a special case for your site name if necessary. + + switch ( form ) { + case 'genitive': // սեռական հոլով + if ( word.slice( -1 ) === 'ա' ) { + word = word.slice( 0, -1 ) + 'այի'; + } else if ( word.slice( -1 ) === 'ո' ) { + word = word.slice( 0, -1 ) + 'ոյի'; + } else if ( word.slice( -4 ) === 'գիրք' ) { + word = word.slice( 0, -4 ) + 'գրքի'; + } else { + word = word + 'ի'; + } + break; + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/la.js b/resources/src/mediawiki.language/languages/la.js new file mode 100644 index 00000000..52e8dd44 --- /dev/null +++ b/resources/src/mediawiki.language/languages/la.js @@ -0,0 +1,50 @@ +/*! + * Latin (lingua Latina) language functions + * @author Santhosh Thottingal + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'la', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'genitive': + // only a few declensions, and even for those mostly the singular only + word = word.replace( /u[ms]$/i, 'i' ); // 2nd declension singular + word = word.replace( /ommunia$/i, 'ommunium' ); // 3rd declension neuter plural (partly) + word = word.replace( /a$/i, 'ae' ); // 1st declension singular + word = word.replace( /libri$/i, 'librorum' ); // 2nd declension plural (partly) + word = word.replace( /nuntii$/i, 'nuntiorum' ); // 2nd declension plural (partly) + word = word.replace( /tio$/i, 'tionis' ); // 3rd declension singular (partly) + word = word.replace( /ns$/i, 'ntis' ); + word = word.replace( /as$/i, 'atis' ); + word = word.replace( /es$/i, 'ei' ); // 5th declension singular + break; + case 'accusative': + // only a few declensions, and even for those mostly the singular only + word = word.replace( /u[ms]$/i, 'um' ); // 2nd declension singular + word = word.replace( /ommunia$/i, 'am' ); // 3rd declension neuter plural (partly) + word = word.replace( /a$/i, 'ommunia' ); // 1st declension singular + word = word.replace( /libri$/i, 'libros' ); // 2nd declension plural (partly) + word = word.replace( /nuntii$/i, 'nuntios' );// 2nd declension plural (partly) + word = word.replace( /tio$/i, 'tionem' ); // 3rd declension singular (partly) + word = word.replace( /ns$/i, 'ntem' ); + word = word.replace( /as$/i, 'atem'); + word = word.replace( /es$/i, 'em' ); // 5th declension singular + break; + case 'ablative': + // only a few declensions, and even for those mostly the singular only + word = word.replace( /u[ms]$/i, 'o' ); // 2nd declension singular + word = word.replace( /ommunia$/i, 'ommunibus' ); // 3rd declension neuter plural (partly) + word = word.replace( /a$/i, 'a' ); // 1st declension singular + word = word.replace( /libri$/i, 'libris' ); // 2nd declension plural (partly) + word = word.replace( /nuntii$/i, 'nuntiis' ); // 2nd declension plural (partly) + word = word.replace( /tio$/i, 'tione' ); // 3rd declension singular (partly) + word = word.replace( /ns$/i, 'nte' ); + word = word.replace( /as$/i, 'ate'); + word = word.replace( /es$/i, 'e' ); // 5th declension singular + break; + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/os.js b/resources/src/mediawiki.language/languages/os.js new file mode 100644 index 00000000..787be36d --- /dev/null +++ b/resources/src/mediawiki.language/languages/os.js @@ -0,0 +1,69 @@ +/*! + * Ossetian (Ирон) language functions + * @author Santhosh Thottingal + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'os', 'grammarForms' ), + // Ending for allative case + endAllative = 'мæ', + // Variable for 'j' beetwen vowels + jot = '', + // Variable for "-" for not Ossetic words + hyphen = '', + // Variable for ending + ending = ''; + + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + // Checking if the $word is in plural form + if ( word.match( /тæ$/i ) ) { + word = word.slice( 0, -1 ); + endAllative = 'æм'; + } + // Works if word is in singular form. + // Checking if word ends on one of the vowels: е, ё, и, о, ы, э, ю, я. + else if ( word.match( /[аæеёиоыэюя]$/i ) ) { + jot = 'й'; + } + // Checking if word ends on 'у'. 'У' can be either consonant 'W' or vowel 'U' in cyrillic Ossetic. + // Examples: {{grammar:genitive|аунеу}} = аунеуы, {{grammar:genitive|лæппу}} = лæппуйы. + else if ( word.match( /у$/i ) ) { + if ( !word.slice( -2, -1 ).match( /[аæеёиоыэюя]$/i ) ) { + jot = 'й'; + } + } else if ( !word.match( /[бвгджзйклмнопрстфхцчшщьъ]$/i ) ) { + hyphen = '-'; + } + + switch ( form ) { + case 'genitive': + ending = hyphen + jot + 'ы'; + break; + case 'dative': + ending = hyphen + jot + 'æн'; + break; + case 'allative': + ending = hyphen + endAllative; + break; + case 'ablative': + if ( jot === 'й' ) { + ending = hyphen + jot + 'æ'; + } + else { + ending = hyphen + jot + 'æй'; + } + break; + case 'superessive': + ending = hyphen + jot + 'ыл'; + break; + case 'equative': + ending = hyphen + jot + 'ау'; + break; + case 'comitative': + ending = hyphen + 'имæ'; + break; + } + return word + ending; +}; diff --git a/resources/src/mediawiki.language/languages/ru.js b/resources/src/mediawiki.language/languages/ru.js new file mode 100644 index 00000000..2077b6be --- /dev/null +++ b/resources/src/mediawiki.language/languages/ru.js @@ -0,0 +1,57 @@ +/*! + * Russian (Русский) language functions + */ + +// These tests were originally made for names of Wikimedia +// websites, so they don't currently cover all the possible +// cases. + +mediaWiki.language.convertGrammar = function ( word, form ) { + 'use strict'; + + var grammarForms = mediaWiki.language.getData( 'ru', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'genitive': // родительный падеж + if ( word.slice( -1 ) === 'ь' ) { + word = word.slice( 0, -1 ) + 'я'; + } else if ( word.slice( -2 ) === 'ия' ) { + word = word.slice( 0, -2 ) + 'ии'; + } else if ( word.slice( -2 ) === 'ка' ) { + word = word.slice( 0, -2 ) + 'ки'; + } else if ( word.slice( -2 ) === 'ти' ) { + word = word.slice( 0, -2 ) + 'тей'; + } else if ( word.slice( -2 ) === 'ды' ) { + word = word.slice( 0, -2 ) + 'дов'; + } else if ( word.slice( -1 ) === 'д' ) { + word = word.slice( 0, -1 ) + 'да'; + } else if ( word.slice( -3 ) === 'ные' ) { + word = word.slice( 0, -3 ) + 'ных'; + } else if ( word.slice( -3 ) === 'ник' ) { + word = word.slice( 0, -3 ) + 'ника'; + } + break; + case 'prepositional': // предложный падеж + if ( word.slice( -1 ) === 'ь' ) { + word = word.slice( 0, -1 ) + 'е'; + } else if ( word.slice( -2 ) === 'ия' ) { + word = word.slice( 0, -2 ) + 'ии'; + } else if ( word.slice( -2 ) === 'ка' ) { + word = word.slice( 0, -2 ) + 'ке'; + } else if ( word.slice( -2 ) === 'ти' ) { + word = word.slice( 0, -2 ) + 'тях'; + } else if ( word.slice( -2 ) === 'ды' ) { + word = word.slice( 0, -2 ) + 'дах'; + } else if ( word.slice( -1 ) === 'д' ) { + word = word.slice( 0, -1 ) + 'де'; + } else if ( word.slice( -3 ) === 'ные' ) { + word = word.slice( 0, -3 ) + 'ных'; + } else if ( word.slice( -3 ) === 'ник' ) { + word = word.slice( 0, -3 ) + 'нике'; + } + break; + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/sl.js b/resources/src/mediawiki.language/languages/sl.js new file mode 100644 index 00000000..d20d0b34 --- /dev/null +++ b/resources/src/mediawiki.language/languages/sl.js @@ -0,0 +1,19 @@ +/*! + * Slovenian (Slovenščina) language functions + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'sl', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'mestnik': // locative + word = 'o ' + word; + break; + case 'orodnik': // instrumental + word = 'z ' + word; + break; + } + return word; +}; diff --git a/resources/src/mediawiki.language/languages/uk.js b/resources/src/mediawiki.language/languages/uk.js new file mode 100644 index 00000000..550a388c --- /dev/null +++ b/resources/src/mediawiki.language/languages/uk.js @@ -0,0 +1,37 @@ +/*! + * Ukrainian (Українська) language functions + */ + +mediaWiki.language.convertGrammar = function ( word, form ) { + var grammarForms = mediaWiki.language.getData( 'uk', 'grammarForms' ); + if ( grammarForms && grammarForms[form] ) { + return grammarForms[form][word]; + } + switch ( form ) { + case 'genitive': // родовий відмінок + if ( word.slice( -4 ) !== 'вікі' && word.slice( -4 ) !== 'Вікі' ) { + if ( word.slice( -1 ) === 'ь' ) { + word = word.slice(0, -1 ) + 'я'; + } else if ( word.slice( -2 ) === 'ія' ) { + word = word.slice(0, -2 ) + 'ії'; + } else if ( word.slice( -2 ) === 'ка' ) { + word = word.slice(0, -2 ) + 'ки'; + } else if ( word.slice( -2 ) === 'ти' ) { + word = word.slice(0, -2 ) + 'тей'; + } else if ( word.slice( -2 ) === 'ды' ) { + word = word.slice(0, -2 ) + 'дов'; + } else if ( word.slice( -3 ) === 'ник' ) { + word = word.slice(0, -3 ) + 'ника'; + } + } + break; + case 'accusative': // знахідний відмінок + if ( word.slice( -4 ) !== 'вікі' && word.slice( -4 ) !== 'Вікі' ) { + if ( word.slice( -2 ) === 'ія' ) { + word = word.slice(0, -2 ) + 'ію'; + } + } + break; + } + return word; +}; -- cgit v1.2.3-54-g00ecf