* @ingroup Language
*/
class LanguageUk extends Language {
-
- /**
- * Convert from the nominative form of a noun to some other case
- * Invoked with {{grammar:case|word}}
- *
- * @param string $word
- * @param string $case
- * @return string
- */
- function convertGrammar( $word, $case ) {
- global $wgGrammarForms;
- if ( isset( $wgGrammarForms['uk'][$case][$word] ) ) {
- return $wgGrammarForms['uk'][$case][$word];
- }
-
- # These rules don't cover the whole language.
- # They are used only for site names.
-
- # join and array_slice instead mb_substr
- $ar = [];
- preg_match_all( '/./us', $word, $ar );
- if ( !preg_match( "/[a-zA-Z_]/us", $word ) ) {
- switch ( $case ) {
- case 'genitive': # родовий відмінок
- if ( implode( '', array_slice( $ar[0], -2 ) ) === 'ія' ) {
- $word = implode( '', array_slice( $ar[0], 0, -2 ) ) . 'ії';
- } elseif ( implode( '', array_slice( $ar[0], -2 ) ) === 'ти' ) {
- $word = implode( '', array_slice( $ar[0], 0, -2 ) ) . 'т';
- } elseif ( implode( '', array_slice( $ar[0], -2 ) ) === 'ди' ) {
- $word = implode( '', array_slice( $ar[0], 0, -2 ) ) . 'дів';
- } elseif ( implode( '', array_slice( $ar[0], -3 ) ) === 'ник' ) {
- $word = implode( '', array_slice( $ar[0], 0, -3 ) ) . 'ника';
- }
- break;
- case 'accusative': # знахідний відмінок
- if ( implode( '', array_slice( $ar[0], -2 ) ) === 'ія' ) {
- $word = implode( '', array_slice( $ar[0], 0, -2 ) ) . 'ію';
- }
- break;
- }
- }
- return $word;
- }
-
/**
* Ukrainian numeric format is "12 345,67" but "1234,56"
*
'la' => 'resources/src/mediawiki.language/languages/la.js',
'os' => 'resources/src/mediawiki.language/languages/os.js',
'sl' => 'resources/src/mediawiki.language/languages/sl.js',
- 'uk' => 'resources/src/mediawiki.language/languages/uk.js',
],
'dependencies' => [
'mediawiki.language.data',
+++ /dev/null
-/*!
- * 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( -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( -2 ) === 'ія' ) {
- word = word.slice( 0, -2 ) + 'ію';
- }
-
- break;
- }
-
- return word;
-};