MediaWiki  master
LanguageHy.php
Go to the documentation of this file.
1 <?php
30 class LanguageHy extends Language {
31 
40  function convertGrammar( $word, $case ) {
41  global $wgGrammarForms;
42  if ( isset( $wgGrammarForms['hy'][$case][$word] ) ) {
43  return $wgGrammarForms['hy'][$case][$word];
44  }
45 
46  # These rules are not perfect, but they are currently only used for site names so it doesn't
47  # matter if they are wrong sometimes. Just add a special case for your site name if necessary.
48 
49  # join and array_slice instead mb_substr
50  $ar = [];
51  preg_match_all( '/./us', $word, $ar );
52  if ( !preg_match( "/[a-zA-Z_]/us", $word ) ) {
53  switch ( $case ) {
54  case 'genitive': # սեռական հոլով
55  if ( implode( '', array_slice( $ar[0], -1 ) ) == 'ա' ) {
56  $word = implode( '', array_slice( $ar[0], 0, -1 ) ) . 'այի';
57  } elseif ( implode( '', array_slice( $ar[0], -1 ) ) == 'ո' ) {
58  $word = implode( '', array_slice( $ar[0], 0, -1 ) ) . 'ոյի';
59  } elseif ( implode( '', array_slice( $ar[0], -4 ) ) == 'գիրք' ) {
60  $word = implode( '', array_slice( $ar[0], 0, -4 ) ) . 'գրքի';
61  } else {
62  $word .= 'ի';
63  }
64  break;
65  case 'dative': # Տրական հոլով
66  # stub
67  break;
68  case 'accusative': # Հայցական հոլով
69  # stub
70  break;
71  case 'instrumental':
72  # stub
73  break;
74  case 'prepositional':
75  # stub
76  break;
77  }
78  }
79  return $word;
80  }
81 }
Armenian (Հայերեն)
Definition: LanguageHy.php:30
convertGrammar( $word, $case)
Convert from the nominative form of a noun to some other case Invoked with {{grammar:case|word}}.
Definition: LanguageHy.php:40
$wgGrammarForms
Some languages need different word forms, usually for different cases.