Index: trunk/tools/ToolserverI18N/language/mw-classes/LanguageHu.php |
— | — | @@ -0,0 +1,30 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +/** Hungarian localisation for MediaWiki |
| 5 | + * |
| 6 | + * @ingroup Language |
| 7 | + */ |
| 8 | +class LanguageHu extends Language { |
| 9 | + |
| 10 | + /** |
| 11 | + * @param $word string |
| 12 | + * @param $case |
| 13 | + * @return string |
| 14 | + */ |
| 15 | + function convertGrammar( $word, $case ) { |
| 16 | + global $wgGrammarForms; |
| 17 | + if ( isset( $wgGrammarForms[$this->getCode()][$case][$word] ) ) { |
| 18 | + return $wgGrammarForms[$this->getCode()][$case][$word]; |
| 19 | + } |
| 20 | + |
| 21 | + switch ( $case ) { |
| 22 | + case 'rol': |
| 23 | + return $word . 'ról'; |
| 24 | + case 'ba': |
| 25 | + return $word . 'ba'; |
| 26 | + case 'k': |
| 27 | + return $word . 'k'; |
| 28 | + } |
| 29 | + return ''; |
| 30 | + } |
| 31 | +} |
Property changes on: trunk/tools/ToolserverI18N/language/mw-classes/LanguageHu.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 32 | + native |
Added: svn:keywords |
2 | 33 | + Author Date Id Revision |
Index: trunk/tools/ToolserverI18N/language/mw-classes/LanguageSma.php |
— | — | @@ -0,0 +1,29 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Southern Sami (Åarjelsaemien) |
| 5 | + * |
| 6 | + * @ingroup Language |
| 7 | + */ |
| 8 | +class LanguageSma extends Language { |
| 9 | + |
| 10 | + /** |
| 11 | + * @param $count int |
| 12 | + * @param $forms array |
| 13 | + * @return string |
| 14 | + */ |
| 15 | + function convertPlural( $count, $forms ) { |
| 16 | + if ( !count( $forms ) ) { return ''; } |
| 17 | + |
| 18 | + // plural forms per http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#sma |
| 19 | + $forms = $this->preConvertPlural( $forms, 3 ); |
| 20 | + |
| 21 | + if ( $count == 1 ) { |
| 22 | + $index = 0; |
| 23 | + } elseif ( $count == 2 ) { |
| 24 | + $index = 1; |
| 25 | + } else { |
| 26 | + $index = 2; |
| 27 | + } |
| 28 | + return $forms[$index]; |
| 29 | + } |
| 30 | +} |
Property changes on: trunk/tools/ToolserverI18N/language/mw-classes/LanguageSma.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 31 | + native |
Added: svn:keywords |
2 | 32 | + Id |
Index: trunk/tools/ToolserverI18N/language/mw-classes/LanguageTr.php |
— | — | @@ -0,0 +1,39 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +/** |
| 5 | + * Turkish (Türkçe) |
| 6 | + * |
| 7 | + * Turkish has two different i, one with a dot and another without a dot. They |
| 8 | + * are totally different letters in this language, so we have to override the |
| 9 | + * ucfirst and lcfirst methods. |
| 10 | + * See http://en.wikipedia.org/wiki/Dotted_and_dotless_I |
| 11 | + * and @bug 28040 |
| 12 | + * @ingroup Language |
| 13 | + */ |
| 14 | +class LanguageTr extends Language { |
| 15 | + |
| 16 | + /** |
| 17 | + * @param $string string |
| 18 | + * @return string |
| 19 | + */ |
| 20 | + function ucfirst ( $string ) { |
| 21 | + if ( strlen( $string ) && $string[0] == 'i' ) { |
| 22 | + return 'İ' . substr( $string, 1 ); |
| 23 | + } else { |
| 24 | + return parent::ucfirst( $string ); |
| 25 | + } |
| 26 | + } |
| 27 | + |
| 28 | + /** |
| 29 | + * @param $string string |
| 30 | + * @return mixed|string |
| 31 | + */ |
| 32 | + function lcfirst ( $string ) { |
| 33 | + if ( strlen( $string ) && $string[0] == 'I' ) { |
| 34 | + return 'ı' . substr( $string, 1 ); |
| 35 | + } else { |
| 36 | + return parent::lcfirst( $string ); |
| 37 | + } |
| 38 | + } |
| 39 | + |
| 40 | +} |
Property changes on: trunk/tools/ToolserverI18N/language/mw-classes/LanguageTr.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 41 | + native |
Added: svn:keywords |
2 | 42 | + Author Date Id Revision |
Index: trunk/tools/ToolserverI18N/language/mw-classes/LanguageKk_cyrl.php |
— | — | @@ -0,0 +1,742 @@ |
| 2 | +<?php |
| 3 | +/** Kazakh (Қазақша) |
| 4 | + * |
| 5 | + * @ingroup Language |
| 6 | + */ |
| 7 | + |
| 8 | +class LanguageKk_cyrl extends Language { |
| 9 | + |
| 10 | + # Convert from the nominative form of a noun to some other case |
| 11 | + # Invoked with {{GRAMMAR:case|word}} |
| 12 | + /** |
| 13 | + * Cases: genitive, dative, accusative, locative, ablative, comitative + possessive forms |
| 14 | + * |
| 15 | + * @param $word string |
| 16 | + * @param $case string |
| 17 | + * |
| 18 | + * @return string |
| 19 | + */ |
| 20 | + function convertGrammarKk_cyrl( $word, $case ) { |
| 21 | + global $wgGrammarForms; |
| 22 | + if ( isset( $wgGrammarForms['kk-kz'][$case][$word] ) ) { |
| 23 | + return $wgGrammarForms['kk-kz'][$case][$word]; |
| 24 | + } |
| 25 | + if ( isset( $wgGrammarForms['kk-cyrl'][$case][$word] ) ) { |
| 26 | + return $wgGrammarForms['kk-cyrl'][$case][$word]; |
| 27 | + } |
| 28 | + // Set up some constants... |
| 29 | + // Vowels in last syllable |
| 30 | + $frontVowels = array( "е", "ө", "ү", "і", "ә", "э", "я", "ё", "и" ); |
| 31 | + $backVowels = array( "а", "о", "ұ", "ы" ); |
| 32 | + $allVowels = array( "е", "ө", "ү", "і", "ә", "э", "а", "о", "ұ", "ы", "я", "ё", "и" ); |
| 33 | + // Preceding letters |
| 34 | + $Nasals = array( "м", "н", "ң" ); |
| 35 | + $Sonants = array( "и", "й", "л", "р", "у", "ю" ); |
| 36 | + $Consonants = array( "п", "ф", "к", "қ", "т", "ш", "с", "х", "ц", "ч", "щ", "б", "в", "г", "д" ); |
| 37 | + $Sibilants = array( "ж", "з" ); |
| 38 | + $Sonorants = array( "и", "й", "л", "р", "у", "ю", "м", "н", "ң", "ж", "з" ); |
| 39 | + |
| 40 | + // Possessives |
| 41 | + $firstPerson = array( "м", "ң" ); // 1st singular, 2nd unformal |
| 42 | + $secondPerson = array( "з" ); // 1st plural, 2nd formal |
| 43 | + $thirdPerson = array( "ы", "і" ); // 3rd |
| 44 | + |
| 45 | + $lastLetter = $this->lastLetter( $word, $allVowels ); |
| 46 | + $wordEnding =& $lastLetter[0]; |
| 47 | + $wordLastVowel =& $lastLetter[1]; |
| 48 | + |
| 49 | + // Now convert the word |
| 50 | + switch ( $case ) { |
| 51 | + case "dc1": |
| 52 | + case "genitive": # ilik |
| 53 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 54 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 55 | + $word = $word . "тің"; |
| 56 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 57 | + $word = $word . "тың"; |
| 58 | + } |
| 59 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) ) { |
| 60 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 61 | + $word = $word . "нің"; |
| 62 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 63 | + $word = $word . "ның"; |
| 64 | + } |
| 65 | + } elseif ( in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) { |
| 66 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 67 | + $word = $word . "дің"; |
| 68 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 69 | + $word = $word . "дың"; |
| 70 | + } |
| 71 | + } |
| 72 | + break; |
| 73 | + case "dc2": |
| 74 | + case "dative": # barıs |
| 75 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 76 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 77 | + $word = $word . "ке"; |
| 78 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 79 | + $word = $word . "қа"; |
| 80 | + } |
| 81 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonorants ) ) { |
| 82 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 83 | + $word = $word . "ге"; |
| 84 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 85 | + $word = $word . "ға"; |
| 86 | + } |
| 87 | + } |
| 88 | + break; |
| 89 | + case "dc21": |
| 90 | + case "possessive dative": # täweldık + barıs |
| 91 | + if ( in_array( $wordEnding, $firstPerson ) ) { |
| 92 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 93 | + $word = $word . "е"; |
| 94 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 95 | + $word = $word . "а"; |
| 96 | + } |
| 97 | + } elseif ( in_array( $wordEnding, $secondPerson ) ) { |
| 98 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 99 | + $word = $word . "ге"; |
| 100 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 101 | + $word = $word . "ға"; |
| 102 | + } |
| 103 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 104 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 105 | + $word = $word . "не"; |
| 106 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 107 | + $word = $word . "на"; |
| 108 | + } |
| 109 | + } |
| 110 | + break; |
| 111 | + case "dc3": |
| 112 | + case "accusative": # tabıs |
| 113 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 114 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 115 | + $word = $word . "ті"; |
| 116 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 117 | + $word = $word . "ты"; |
| 118 | + } |
| 119 | + } elseif ( in_array( $wordEnding, $allVowels ) ) { |
| 120 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 121 | + $word = $word . "ні"; |
| 122 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 123 | + $word = $word . "ны"; |
| 124 | + } |
| 125 | + } elseif ( in_array( $wordEnding, $Sonorants ) ) { |
| 126 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 127 | + $word = $word . "ді"; |
| 128 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 129 | + $word = $word . "ды"; |
| 130 | + } |
| 131 | + } |
| 132 | + break; |
| 133 | + case "dc31": |
| 134 | + case "possessive accusative": # täweldık + tabıs |
| 135 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $secondPerson ) ) { |
| 136 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 137 | + $word = $word . "ді"; |
| 138 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 139 | + $word = $word . "ды"; |
| 140 | + } |
| 141 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 142 | + $word = $word . "н"; |
| 143 | + } |
| 144 | + break; |
| 145 | + case "dc4": |
| 146 | + case "locative": # jatıs |
| 147 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 148 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 149 | + $word = $word . "те"; |
| 150 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 151 | + $word = $word . "та"; |
| 152 | + } |
| 153 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonorants ) ) { |
| 154 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 155 | + $word = $word . "де"; |
| 156 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 157 | + $word = $word . "да"; |
| 158 | + } |
| 159 | + } |
| 160 | + break; |
| 161 | + case "dc41": |
| 162 | + case "possessive locative": # täweldık + jatıs |
| 163 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $secondPerson ) ) { |
| 164 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 165 | + $word = $word . "де"; |
| 166 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 167 | + $word = $word . "да"; |
| 168 | + } |
| 169 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 170 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 171 | + $word = $word . "нде"; |
| 172 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 173 | + $word = $word . "нда"; |
| 174 | + } |
| 175 | + } |
| 176 | + break; |
| 177 | + case "dc5": |
| 178 | + case "ablative": # şığıs |
| 179 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 180 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 181 | + $word = $word . "тен"; |
| 182 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 183 | + $word = $word . "тан"; |
| 184 | + } |
| 185 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) { |
| 186 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 187 | + $word = $word . "ден"; |
| 188 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 189 | + $word = $word . "дан"; |
| 190 | + } |
| 191 | + } elseif ( in_array( $wordEnding, $Nasals ) ) { |
| 192 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 193 | + $word = $word . "нен"; |
| 194 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 195 | + $word = $word . "нан"; |
| 196 | + } |
| 197 | + } |
| 198 | + break; |
| 199 | + case "dc51": |
| 200 | + case "possessive ablative": # täweldık + şığıs |
| 201 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $thirdPerson ) ) { |
| 202 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 203 | + $word = $word . "нен"; |
| 204 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 205 | + $word = $word . "нан"; |
| 206 | + } |
| 207 | + } elseif ( in_array( $wordEnding, $secondPerson ) ) { |
| 208 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 209 | + $word = $word . "ден"; |
| 210 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 211 | + $word = $word . "дан"; |
| 212 | + } |
| 213 | + } |
| 214 | + break; |
| 215 | + case "dc6": |
| 216 | + case "comitative": # kömektes |
| 217 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 218 | + $word = $word . "пен"; |
| 219 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) { |
| 220 | + $word = $word . "мен"; |
| 221 | + } elseif ( in_array( $wordEnding, $Sibilants ) ) { |
| 222 | + $word = $word . "бен"; |
| 223 | + } |
| 224 | + break; |
| 225 | + case "dc61": |
| 226 | + case "possessive comitative": # täweldık + kömektes |
| 227 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 228 | + $word = $word . "пенен"; |
| 229 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) { |
| 230 | + $word = $word . "менен"; |
| 231 | + } elseif ( in_array( $wordEnding, $Sibilants ) ) { |
| 232 | + $word = $word . "бенен"; |
| 233 | + } |
| 234 | + break; |
| 235 | + default: # dc0 #nominative #ataw |
| 236 | + } |
| 237 | + return $word; |
| 238 | + } |
| 239 | + |
| 240 | + /** |
| 241 | + * @param $word string |
| 242 | + * @param $case string |
| 243 | + * @return string |
| 244 | + */ |
| 245 | + function convertGrammarKk_latn( $word, $case ) { |
| 246 | + global $wgGrammarForms; |
| 247 | + if ( isset( $wgGrammarForms['kk-tr'][$case][$word] ) ) { |
| 248 | + return $wgGrammarForms['kk-tr'][$case][$word]; |
| 249 | + } |
| 250 | + if ( isset( $wgGrammarForms['kk-latn'][$case][$word] ) ) { |
| 251 | + return $wgGrammarForms['kk-latn'][$case][$word]; |
| 252 | + } |
| 253 | + // Set up some constants... |
| 254 | + // Vowels in last syllable |
| 255 | + $frontVowels = array( "e", "ö", "ü", "i", "ä", "é" ); |
| 256 | + $backVowels = array( "a", "o", "u", "ı" ); |
| 257 | + $allVowels = array( "e", "ö", "ü", "i", "ä", "é", "a", "o", "u", "ı" ); |
| 258 | + // Preceding letters |
| 259 | + $Nasals = array( "m", "n", "ñ" ); |
| 260 | + $Sonants = array( "ï", "y", "ý", "l", "r", "w" ); |
| 261 | + $Consonants = array( "p", "f", "k", "q", "t", "ş", "s", "x", "c", "ç", "b", "v", "g", "d" ); |
| 262 | + $Sibilants = array( "j", "z" ); |
| 263 | + $Sonorants = array( "ï", "y", "ý", "l", "r", "w", "m", "n", "ñ", "j", "z" ); |
| 264 | + |
| 265 | + // Possessives |
| 266 | + $firstPerson = array( "m", "ñ" ); // 1st singular, 2nd unformal |
| 267 | + $secondPerson = array( "z" ); // 1st plural, 2nd formal |
| 268 | + $thirdPerson = array( "ı", "i" ); // 3rd |
| 269 | + |
| 270 | + $lastLetter = $this->lastLetter( $word, $allVowels ); |
| 271 | + $wordEnding =& $lastLetter[0]; |
| 272 | + $wordLastVowel =& $lastLetter[1]; |
| 273 | + |
| 274 | + // Now convert the word |
| 275 | + switch ( $case ) { |
| 276 | + case "dc1": |
| 277 | + case "genitive": # ilik |
| 278 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 279 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 280 | + $word = $word . "tiñ"; |
| 281 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 282 | + $word = $word . "tıñ"; |
| 283 | + } |
| 284 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) ) { |
| 285 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 286 | + $word = $word . "niñ"; |
| 287 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 288 | + $word = $word . "nıñ"; |
| 289 | + } |
| 290 | + } elseif ( in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) { |
| 291 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 292 | + $word = $word . "diñ"; |
| 293 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 294 | + $word = $word . "dıñ"; |
| 295 | + } |
| 296 | + } |
| 297 | + break; |
| 298 | + case "dc2": |
| 299 | + case "dative": # barıs |
| 300 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 301 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 302 | + $word = $word . "ke"; |
| 303 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 304 | + $word = $word . "qa"; |
| 305 | + } |
| 306 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonorants ) ) { |
| 307 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 308 | + $word = $word . "ge"; |
| 309 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 310 | + $word = $word . "ğa"; |
| 311 | + } |
| 312 | + } |
| 313 | + break; |
| 314 | + case "dc21": |
| 315 | + case "possessive dative": # täweldık + barıs |
| 316 | + if ( in_array( $wordEnding, $firstPerson ) ) { |
| 317 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 318 | + $word = $word . "e"; |
| 319 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 320 | + $word = $word . "a"; |
| 321 | + } |
| 322 | + } elseif ( in_array( $wordEnding, $secondPerson ) ) { |
| 323 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 324 | + $word = $word . "ge"; |
| 325 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 326 | + $word = $word . "ğa"; |
| 327 | + } |
| 328 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 329 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 330 | + $word = $word . "ne"; |
| 331 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 332 | + $word = $word . "na"; |
| 333 | + } |
| 334 | + } |
| 335 | + break; |
| 336 | + case "dc3": |
| 337 | + case "accusative": # tabıs |
| 338 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 339 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 340 | + $word = $word . "ti"; |
| 341 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 342 | + $word = $word . "tı"; |
| 343 | + } |
| 344 | + } elseif ( in_array( $wordEnding, $allVowels ) ) { |
| 345 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 346 | + $word = $word . "ni"; |
| 347 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 348 | + $word = $word . "nı"; |
| 349 | + } |
| 350 | + } elseif ( in_array( $wordEnding, $Sonorants ) ) { |
| 351 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 352 | + $word = $word . "di"; |
| 353 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 354 | + $word = $word . "dı"; |
| 355 | + } |
| 356 | + } |
| 357 | + break; |
| 358 | + case "dc31": |
| 359 | + case "possessive accusative": # täweldık + tabıs |
| 360 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $secondPerson ) ) { |
| 361 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 362 | + $word = $word . "di"; |
| 363 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 364 | + $word = $word . "dı"; |
| 365 | + } |
| 366 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 367 | + $word = $word . "n"; |
| 368 | + } |
| 369 | + break; |
| 370 | + case "dc4": |
| 371 | + case "locative": # jatıs |
| 372 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 373 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 374 | + $word = $word . "te"; |
| 375 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 376 | + $word = $word . "ta"; |
| 377 | + } |
| 378 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonorants ) ) { |
| 379 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 380 | + $word = $word . "de"; |
| 381 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 382 | + $word = $word . "da"; |
| 383 | + } |
| 384 | + } |
| 385 | + break; |
| 386 | + case "dc41": |
| 387 | + case "possessive locative": # täweldık + jatıs |
| 388 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $secondPerson ) ) { |
| 389 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 390 | + $word = $word . "de"; |
| 391 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 392 | + $word = $word . "da"; |
| 393 | + } |
| 394 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 395 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 396 | + $word = $word . "nde"; |
| 397 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 398 | + $word = $word . "nda"; |
| 399 | + } |
| 400 | + } |
| 401 | + break; |
| 402 | + case "dc5": |
| 403 | + case "ablative": # şığıs |
| 404 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 405 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 406 | + $word = $word . "ten"; |
| 407 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 408 | + $word = $word . "tan"; |
| 409 | + } |
| 410 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) { |
| 411 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 412 | + $word = $word . "den"; |
| 413 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 414 | + $word = $word . "dan"; |
| 415 | + } |
| 416 | + } elseif ( in_array( $wordEnding, $Nasals ) ) { |
| 417 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 418 | + $word = $word . "nen"; |
| 419 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 420 | + $word = $word . "nan"; |
| 421 | + } |
| 422 | + } |
| 423 | + break; |
| 424 | + case "dc51": |
| 425 | + case "possessive ablative": # täweldık + şığıs |
| 426 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $thirdPerson ) ) { |
| 427 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 428 | + $word = $word . "nen"; |
| 429 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 430 | + $word = $word . "nan"; |
| 431 | + } |
| 432 | + } elseif ( in_array( $wordEnding, $secondPerson ) ) { |
| 433 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 434 | + $word = $word . "den"; |
| 435 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 436 | + $word = $word . "dan"; |
| 437 | + } |
| 438 | + } |
| 439 | + break; |
| 440 | + case "dc6": |
| 441 | + case "comitative": # kömektes |
| 442 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 443 | + $word = $word . "pen"; |
| 444 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) { |
| 445 | + $word = $word . "men"; |
| 446 | + } elseif ( in_array( $wordEnding, $Sibilants ) ) { |
| 447 | + $word = $word . "ben"; |
| 448 | + } |
| 449 | + break; |
| 450 | + case "dc61": |
| 451 | + case "possessive comitative": # täweldık + kömektes |
| 452 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 453 | + $word = $word . "penen"; |
| 454 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) { |
| 455 | + $word = $word . "menen"; |
| 456 | + } elseif ( in_array( $wordEnding, $Sibilants ) ) { |
| 457 | + $word = $word . "benen"; |
| 458 | + } |
| 459 | + break; |
| 460 | + default: # dc0 #nominative #ataw |
| 461 | + } |
| 462 | + return $word; |
| 463 | + } |
| 464 | + |
| 465 | + /** |
| 466 | + * @param $word string |
| 467 | + * @param $case string |
| 468 | + * @return string |
| 469 | + */ |
| 470 | + function convertGrammarKk_arab( $word, $case ) { |
| 471 | + global $wgGrammarForms; |
| 472 | + if ( isset( $wgGrammarForms['kk-cn'][$case][$word] ) ) { |
| 473 | + return $wgGrammarForms['kk-cn'][$case][$word]; |
| 474 | + } |
| 475 | + if ( isset( $wgGrammarForms['kk-arab'][$case][$word] ) ) { |
| 476 | + return $wgGrammarForms['kk-arab'][$case][$word]; |
| 477 | + } |
| 478 | + // Set up some constants... |
| 479 | + // Vowels in last syllable |
| 480 | + $frontVowels = array( "ە", "ٶ", "ٷ", "ٸ", "ٵ", "ە" ); |
| 481 | + $backVowels = array( "ا", "و", "ۇ", "ى" ); |
| 482 | + $allVowels = array( "ە", "ٶ", "ٷ", "ٸ", "ٵ", "ە", "ا", "و", "ۇ", "ى" ); |
| 483 | + // Preceding letters |
| 484 | + $Nasals = array( "م", "ن", "ڭ" ); |
| 485 | + $Sonants = array( "ي", "ي", "ل", "ر", "ۋ" ); |
| 486 | + $Consonants = array( "پ", "ف", "ك", "ق", "ت", "ش", "س", "ح", "تس", "چ", "ب", "ۆ", "گ", "د" ); |
| 487 | + $Sibilants = array( "ج", "ز" ); |
| 488 | + $Sonorants = array( "ي", "ي", "ل", "ر", "ۋ", "م", "ن", "ڭ", "ج", "ز" ); |
| 489 | + |
| 490 | + // Possessives |
| 491 | + $firstPerson = array( "م", "ڭ" ); // 1st singular, 2nd unformal |
| 492 | + $secondPerson = array( "ز" ); // 1st plural, 2nd formal |
| 493 | + $thirdPerson = array( "ى", "ٸ" ); // 3rd |
| 494 | + |
| 495 | + $lastLetter = $this->lastLetter( $word, $allVowels ); |
| 496 | + $wordEnding = $lastLetter[0]; |
| 497 | + $wordLastVowel = $lastLetter[1]; |
| 498 | + |
| 499 | + // Now convert the word |
| 500 | + switch ( $case ) { |
| 501 | + case "dc1": |
| 502 | + case "genitive": # ilik |
| 503 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 504 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 505 | + $word = $word . "تٸڭ"; |
| 506 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 507 | + $word = $word . "تىڭ"; |
| 508 | + } |
| 509 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) ) { |
| 510 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 511 | + $word = $word . "نٸڭ"; |
| 512 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 513 | + $word = $word . "نىڭ"; |
| 514 | + } |
| 515 | + } elseif ( in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) { |
| 516 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 517 | + $word = $word . "دٸڭ"; |
| 518 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 519 | + $word = $word . "دىڭ"; |
| 520 | + } |
| 521 | + } |
| 522 | + break; |
| 523 | + case "dc2": |
| 524 | + case "dative": # barıs |
| 525 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 526 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 527 | + $word = $word . "كە"; |
| 528 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 529 | + $word = $word . "قا"; |
| 530 | + } |
| 531 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonorants ) ) { |
| 532 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 533 | + $word = $word . "گە"; |
| 534 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 535 | + $word = $word . "عا"; |
| 536 | + } |
| 537 | + } |
| 538 | + break; |
| 539 | + case "dc21": |
| 540 | + case "possessive dative": # täweldık + barıs |
| 541 | + if ( in_array( $wordEnding, $firstPerson ) ) { |
| 542 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 543 | + $word = $word . "ە"; |
| 544 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 545 | + $word = $word . "ا"; |
| 546 | + } |
| 547 | + } elseif ( in_array( $wordEnding, $secondPerson ) ) { |
| 548 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 549 | + $word = $word . "گە"; |
| 550 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 551 | + $word = $word . "عا"; |
| 552 | + } |
| 553 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 554 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 555 | + $word = $word . "نە"; |
| 556 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 557 | + $word = $word . "نا"; |
| 558 | + } |
| 559 | + } |
| 560 | + break; |
| 561 | + case "dc3": |
| 562 | + case "accusative": # tabıs |
| 563 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 564 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 565 | + $word = $word . "تٸ"; |
| 566 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 567 | + $word = $word . "تى"; |
| 568 | + } |
| 569 | + } elseif ( in_array( $wordEnding, $allVowels ) ) { |
| 570 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 571 | + $word = $word . "نٸ"; |
| 572 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 573 | + $word = $word . "نى"; |
| 574 | + } |
| 575 | + } elseif ( in_array( $wordEnding, $Sonorants ) ) { |
| 576 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 577 | + $word = $word . "دٸ"; |
| 578 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 579 | + $word = $word . "دى"; |
| 580 | + } |
| 581 | + } |
| 582 | + break; |
| 583 | + case "dc31": |
| 584 | + case "possessive accusative": # täweldık + tabıs |
| 585 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $secondPerson ) ) { |
| 586 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 587 | + $word = $word . "دٸ"; |
| 588 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 589 | + $word = $word . "دى"; |
| 590 | + } |
| 591 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 592 | + $word = $word . "ن"; |
| 593 | + } |
| 594 | + break; |
| 595 | + case "dc4": |
| 596 | + case "locative": # jatıs |
| 597 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 598 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 599 | + $word = $word . "تە"; |
| 600 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 601 | + $word = $word . "تا"; |
| 602 | + } |
| 603 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonorants ) ) { |
| 604 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 605 | + $word = $word . "دە"; |
| 606 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 607 | + $word = $word . "دا"; |
| 608 | + } |
| 609 | + } |
| 610 | + break; |
| 611 | + case "dc41": |
| 612 | + case "possessive locative": # täweldık + jatıs |
| 613 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $secondPerson ) ) { |
| 614 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 615 | + $word = $word . "دە"; |
| 616 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 617 | + $word = $word . "دا"; |
| 618 | + } |
| 619 | + } elseif ( in_array( $wordEnding, $thirdPerson ) ) { |
| 620 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 621 | + $word = $word . "ندە"; |
| 622 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 623 | + $word = $word . "ندا"; |
| 624 | + } |
| 625 | + } |
| 626 | + break; |
| 627 | + case "dc5": |
| 628 | + case "ablative": # şığıs |
| 629 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 630 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 631 | + $word = $word . "تەن"; |
| 632 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 633 | + $word = $word . "تان"; |
| 634 | + } |
| 635 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) { |
| 636 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 637 | + $word = $word . "دەن"; |
| 638 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 639 | + $word = $word . "دان"; |
| 640 | + } |
| 641 | + } elseif ( in_array( $wordEnding, $Nasals ) ) { |
| 642 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 643 | + $word = $word . "نەن"; |
| 644 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 645 | + $word = $word . "نان"; |
| 646 | + } |
| 647 | + } |
| 648 | + break; |
| 649 | + case "dc51": |
| 650 | + case "possessive ablative": # täweldık + şığıs |
| 651 | + if ( in_array( $wordEnding, $firstPerson ) || in_array( $wordEnding, $thirdPerson ) ) { |
| 652 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 653 | + $word = $word . "نەن"; |
| 654 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 655 | + $word = $word . "نان"; |
| 656 | + } |
| 657 | + } elseif ( in_array( $wordEnding, $secondPerson ) ) { |
| 658 | + if ( in_array( $wordLastVowel, $frontVowels ) ) { |
| 659 | + $word = $word . "دەن"; |
| 660 | + } elseif ( in_array( $wordLastVowel, $backVowels ) ) { |
| 661 | + $word = $word . "دان"; |
| 662 | + } |
| 663 | + } |
| 664 | + break; |
| 665 | + case "dc6": |
| 666 | + case "comitative": # kömektes |
| 667 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 668 | + $word = $word . "پەن"; |
| 669 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) { |
| 670 | + $word = $word . "مەن"; |
| 671 | + } elseif ( in_array( $wordEnding, $Sibilants ) ) { |
| 672 | + $word = $word . "بەن"; |
| 673 | + } |
| 674 | + break; |
| 675 | + case "dc61": |
| 676 | + case "possessive comitative": # täweldık + kömektes |
| 677 | + if ( in_array( $wordEnding, $Consonants ) ) { |
| 678 | + $word = $word . "پەنەن"; |
| 679 | + } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) { |
| 680 | + $word = $word . "مەنەن"; |
| 681 | + } elseif ( in_array( $wordEnding, $Sibilants ) ) { |
| 682 | + $word = $word . "بەنەن"; |
| 683 | + } |
| 684 | + break; |
| 685 | + default: # dc0 #nominative #ataw |
| 686 | + } |
| 687 | + return $word; |
| 688 | + } |
| 689 | + |
| 690 | + /** |
| 691 | + * @param $word string |
| 692 | + * @param $allVowels array |
| 693 | + * @return array |
| 694 | + */ |
| 695 | + function lastLetter( $word, $allVowels ) { |
| 696 | + $lastLetter = array(); |
| 697 | + |
| 698 | + // Put the word in a form we can play with since we're using UTF-8 |
| 699 | + $ar = preg_split( '//u', parent::lc( $word ), -1, PREG_SPLIT_NO_EMPTY ); |
| 700 | + |
| 701 | + // Here's an array with the order of the letters in the word reversed |
| 702 | + // so we can find a match quicker *shrug* |
| 703 | + $wordReversed = array_reverse( $ar ); |
| 704 | + |
| 705 | + // Here's the last letter in the word |
| 706 | + $lastLetter[0] = $ar[count( $ar ) - 1]; |
| 707 | + |
| 708 | + // Find the last vowel in the word |
| 709 | + $lastLetter[1] = NULL; |
| 710 | + foreach ( $wordReversed as $xvalue ) { |
| 711 | + foreach ( $allVowels as $yvalue ) { |
| 712 | + if ( strcmp( $xvalue, $yvalue ) == 0 ) { |
| 713 | + $lastLetter[1] = $xvalue; |
| 714 | + break; |
| 715 | + } else { |
| 716 | + continue; |
| 717 | + } |
| 718 | + } |
| 719 | + if ( $lastLetter[1] !== NULL ) { |
| 720 | + break; |
| 721 | + } else { |
| 722 | + continue; |
| 723 | + } |
| 724 | + } |
| 725 | + |
| 726 | + return $lastLetter; |
| 727 | + } |
| 728 | + |
| 729 | + /** |
| 730 | + * Avoid grouping whole numbers between 0 to 9999 |
| 731 | + * |
| 732 | + * @param $_ string |
| 733 | + * |
| 734 | + * @return string |
| 735 | + */ |
| 736 | + function commafy( $_ ) { |
| 737 | + if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { |
| 738 | + return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) ); |
| 739 | + } else { |
| 740 | + return $_; |
| 741 | + } |
| 742 | + } |
| 743 | +} |
Property changes on: trunk/tools/ToolserverI18N/language/mw-classes/LanguageKk_cyrl.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 744 | + native |
Index: trunk/tools/ToolserverI18N/language/mw-classes/Names.php |
— | — | @@ -0,0 +1,394 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * These determine things like interwikis, language selectors, and so on. |
| 5 | + * Safe to change without running scripts on the respective sites. |
| 6 | + * |
| 7 | + * @ingroup Language |
| 8 | + */ |
| 9 | +/* private */ $coreLanguageNames = array( |
| 10 | + 'aa' => 'Qafár af', # Afar |
| 11 | + 'ab' => 'Аҧсуа', # Abkhaz, should possibly add ' бысжѡа' |
| 12 | + 'ace' => 'Acèh', # Aceh |
| 13 | + 'af' => 'Afrikaans', # Afrikaans |
| 14 | + 'ak' => 'Akan', # Akan |
| 15 | + 'aln' => 'Gegë', # Gheg Albanian |
| 16 | + 'als' => 'Alemannisch', # Alemannic -- not a valid code, for compatibility. See gsw. |
| 17 | + 'am' => 'አማርኛ', # Amharic |
| 18 | + 'an' => 'Aragonés', # Aragonese |
| 19 | + 'ang' => 'Ænglisc', # Old English (Bug 23283) |
| 20 | + 'anp' => 'अङ्गिका', # Angika |
| 21 | + 'ar' => 'العربية', # Arabic |
| 22 | + 'arc' => 'ܐܪܡܝܐ', # Aramaic |
| 23 | + 'arn' => 'Mapudungun', # Mapuche, Mapudungu, Araucanian (Araucano) |
| 24 | + 'ary' => 'Maġribi', # Moroccan Spoken Arabic |
| 25 | + 'arz' => 'مصرى', # Egyptian Spoken Arabic |
| 26 | + 'as' => 'অসমীয়া', # Assamese |
| 27 | + 'ast' => 'Asturianu', # Asturian |
| 28 | + 'av' => 'Авар', # Avar |
| 29 | + 'avk' => 'Kotava', # Kotava |
| 30 | + 'ay' => 'Aymar aru', # Aymara |
| 31 | + 'az' => 'Azərbaycanca', # Azerbaijani |
| 32 | + 'ba' => 'Башҡортса', # Bashkir |
| 33 | + 'bar' => 'Boarisch', # Bavarian (Austro-Bavarian and South Tyrolean) |
| 34 | + 'bat-smg' => 'Žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 693-3 since 2010-06-30 ) |
| 35 | + 'bcc' => 'بلوچی مکرانی', # Southern Balochi |
| 36 | + 'bcl' => 'Bikol Central', # Bikol: Central Bicolano language |
| 37 | + 'be' => 'Беларуская', # Belarusian normative |
| 38 | + 'be-tarask' => "\xE2\x80\xAAБеларуская (тарашкевіца)\xE2\x80\xAC", # Belarusian in Taraskievica orthography |
| 39 | + 'be-x-old' => "\xE2\x80\xAAБеларуская (тарашкевіца)\xE2\x80\xAC", # Belarusian in Taraskievica orthography; compat link |
| 40 | + 'bg' => 'Български', # Bulgarian |
| 41 | + 'bh' => 'भोजपुरी', # Bihari marco language. Falls back to Bhojpuri (bho). |
| 42 | + 'bho' => 'भोजपुरी', # Bhojpuri |
| 43 | + 'bi' => 'Bislama', # Bislama |
| 44 | + 'bjn' => 'Bahasa Banjar', # Banjarese |
| 45 | + 'bm' => 'Bamanankan', # Bambara |
| 46 | + 'bn' => 'বাংলা', # Bengali |
| 47 | + 'bo' => 'བོད་ཡིག', # Tibetan |
| 48 | + 'bpy' => 'ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী', # Bishnupriya Manipuri |
| 49 | + 'bqi' => 'بختياري', # Bakthiari |
| 50 | + 'br' => 'Brezhoneg', # Breton |
| 51 | + 'brh' => 'Bráhuí', # Brahui |
| 52 | + 'bs' => 'Bosanski', # Bosnian |
| 53 | + 'bug' => 'ᨅᨔ ᨕᨘᨁᨗ', # Bugis |
| 54 | + 'bxr' => 'Буряад', # Buryat (Russia) |
| 55 | + 'ca' => 'Català', # Catalan |
| 56 | + 'cbk-zam' => 'Chavacano de Zamboanga', # Zamboanga Chavacano |
| 57 | + 'cdo' => 'Mìng-dĕ̤ng-ngṳ̄', # Min Dong |
| 58 | + 'ce' => 'Нохчийн', # Chechen |
| 59 | + 'ceb' => 'Cebuano', # Cebuano |
| 60 | + 'ch' => 'Chamoru', # Chamorro |
| 61 | + 'cho' => 'Choctaw', # Choctaw |
| 62 | + 'chr' => 'ᏣᎳᎩ', # Cherokee |
| 63 | + 'chy' => 'Tsetsêhestâhese', # Cheyenne |
| 64 | + 'ckb' => 'کوردی', # Sorani |
| 65 | + 'co' => 'Corsu', # Corsican |
| 66 | + 'cps' => 'Capiceño', # Capiznon |
| 67 | + 'cr' => 'Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ', # Cree |
| 68 | + 'crh' => 'Qırımtatarca', # Crimean Tatar (multiple scripts - defaults to Latin) |
| 69 | + 'crh-latn' => "\xE2\x80\xAAQırımtatarca (Latin)\xE2\x80\xAC", # Crimean Tatar (Latin) |
| 70 | + 'crh-cyrl' => "\xE2\x80\xAAКъырымтатарджа (Кирилл)\xE2\x80\xAC", # Crimean Tatar (Cyrillic) |
| 71 | + 'cs' => 'Česky', # Czech |
| 72 | + 'csb' => 'Kaszëbsczi', # Cassubian |
| 73 | + 'cu' => 'Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ', # Old Church Slavonic (ancient language) |
| 74 | + 'cv' => 'Чӑвашла', # Chuvash |
| 75 | + 'cy' => 'Cymraeg', # Welsh |
| 76 | + 'da' => 'Dansk', # Danish |
| 77 | + 'de' => 'Deutsch', # German ("Du") |
| 78 | + 'de-at' => 'Österreichisches Deutsch', # Austrian German |
| 79 | + 'de-ch' => 'Schweizer Hochdeutsch', # Swiss Standard German |
| 80 | + 'de-formal' => "\xE2\x80\xAADeutsch (Sie-Form)\xE2\x80\xAC", # German - formal address ("Sie") |
| 81 | + 'diq' => 'Zazaki', # Zazaki |
| 82 | + 'dsb' => 'Dolnoserbski', # Lower Sorbian |
| 83 | + 'dtp' => 'Dusun Bundu-liwan', # Central Dusun |
| 84 | + 'dv' => 'ދިވެހިބަސް', # Dhivehi |
| 85 | + 'dz' => 'ཇོང་ཁ', # Bhutani |
| 86 | + 'ee' => 'Eʋegbe', # Éwé |
| 87 | + 'el' => 'Ελληνικά', # Greek |
| 88 | + 'eml' => 'Emiliàn e rumagnòl', # Emiliano-Romagnolo / Sammarinese |
| 89 | + 'en' => 'English', # English |
| 90 | + 'en-gb' => 'British English', # British English |
| 91 | + 'eo' => 'Esperanto', # Esperanto |
| 92 | + 'es' => 'Español', # Spanish |
| 93 | + 'et' => 'Eesti', # Estonian |
| 94 | + 'eu' => 'Euskara', # Basque |
| 95 | + 'ext' => 'Estremeñu', # Extremaduran |
| 96 | + 'fa' => 'فارسی', # Persian |
| 97 | + 'ff' => 'Fulfulde', # Fulfulde, Maasina |
| 98 | + 'fi' => 'Suomi', # Finnish |
| 99 | + 'fiu-vro' => 'Võro', # Võro (deprecated code, 'vro' in ISO 639-3 since 2009-01-16) |
| 100 | + 'fj' => 'Na Vosa Vakaviti', # Fijian |
| 101 | + 'fo' => 'Føroyskt', # Faroese |
| 102 | + 'fr' => 'Français', # French |
| 103 | + 'frc' => 'Français cadien', # Cajun French |
| 104 | + 'frp' => 'Arpetan', # Franco-Provençal/Arpitan |
| 105 | + 'frr' => 'Nordfriisk', # North Frisian |
| 106 | + 'fur' => 'Furlan', # Friulian |
| 107 | + 'fy' => 'Frysk', # Frisian |
| 108 | + 'ga' => 'Gaeilge', # Irish |
| 109 | + 'gag' => 'Gagauz', # Gagauz |
| 110 | + 'gan' => '贛語', # Gan (multiple scripts - defaults to Traditional) |
| 111 | + 'gan-hans' => "\xE2\x80\xAA赣语(简体)\xE2\x80\xAC", # Gan (Simplified Han) |
| 112 | + 'gan-hant' => "\xE2\x80\xAA贛語(繁體)\xE2\x80\xAC", # Gan (Traditional Han) |
| 113 | + 'gd' => 'Gàidhlig', # Scots Gaelic |
| 114 | + 'gl' => 'Galego', # Galician |
| 115 | + 'glk' => 'گیلکی', # Gilaki |
| 116 | + 'gn' => 'Avañe\'ẽ', # Guaraní, Paraguayan |
| 117 | + 'got' => '𐌲𐌿𐍄𐌹𐍃𐌺', # Gothic |
| 118 | + 'grc' => 'Ἀρχαία ἑλληνικὴ', # Ancient Greek |
| 119 | + 'gsw' => 'Alemannisch', # Alemannic |
| 120 | + 'gu' => 'ગુજરાતી', # Gujarati |
| 121 | + 'gv' => 'Gaelg', # Manx |
| 122 | + 'ha' => 'هَوُسَ', # Hausa |
| 123 | + 'hak' => 'Hak-kâ-fa', # Hakka |
| 124 | + 'haw' => 'Hawai`i', # Hawaiian |
| 125 | + 'he' => 'עברית', # Hebrew |
| 126 | + 'hi' => 'हिन्दी', # Hindi |
| 127 | + 'hif' => 'Fiji Hindi', # Fijian Hindi (multiple scripts - defaults to Latin) |
| 128 | + 'hif-latn' => 'Fiji Hindi', # Fiji Hindi (latin) |
| 129 | + 'hil' => 'Ilonggo', # Hiligaynon |
| 130 | + 'ho' => 'Hiri Motu', # Hiri Motu |
| 131 | + 'hr' => 'Hrvatski', # Croatian |
| 132 | + 'hsb' => 'Hornjoserbsce', # Upper Sorbian |
| 133 | + 'ht' => 'Kreyòl ayisyen', # Haitian Creole French |
| 134 | + 'hu' => 'Magyar', # Hungarian |
| 135 | + 'hy' => 'Հայերեն', # Armenian |
| 136 | + 'hz' => 'Otsiherero', # Herero |
| 137 | + 'ia' => 'Interlingua', # Interlingua (IALA) |
| 138 | + 'id' => 'Bahasa Indonesia', # Indonesian |
| 139 | + 'ie' => 'Interlingue', # Interlingue (Occidental) |
| 140 | + 'ig' => 'Igbo', # Igbo |
| 141 | + 'ii' => 'ꆇꉙ', # Sichuan Yi |
| 142 | + 'ik' => 'Iñupiak', # Inupiak (Inupiatun, Northwest Alaska / Inupiatun, North Alaskan) |
| 143 | + 'ike-cans' => 'ᐃᓄᒃᑎᑐᑦ', # Inuktitut, Eastern Canadian/Eastern Canadian "Eskimo"/"Eastern Arctic Eskimo"/Inuit (Unified Canadian Aboriginal Syllabics) |
| 144 | + 'ike-latn' => 'inuktitut', # Inuktitut, Eastern Canadian (Latin script) |
| 145 | + 'ilo' => 'Ilokano', # Ilokano |
| 146 | + 'inh' => 'ГІалгІай Ğalğaj', # Ingush |
| 147 | + 'io' => 'Ido', # Ido |
| 148 | + 'is' => 'Íslenska', # Icelandic |
| 149 | + 'it' => 'Italiano', # Italian |
| 150 | + 'iu' => 'ᐃᓄᒃᑎᑐᑦ/inuktitut', # Inuktitut (macro language - do no localise, see ike/ikt - falls back to ike-cans) |
| 151 | + 'ja' => '日本語', # Japanese |
| 152 | + 'jam' => 'Patois', # Jamaican Creole English |
| 153 | + 'jbo' => 'Lojban', # Lojban |
| 154 | + 'jut' => 'Jysk', # Jutish / Jutlandic |
| 155 | + 'jv' => 'Basa Jawa', # Javanese |
| 156 | + 'ka' => 'ქართული', # Georgian |
| 157 | + 'kaa' => 'Qaraqalpaqsha', # Karakalpak |
| 158 | + 'kab' => 'Taqbaylit', # Kabyle |
| 159 | + 'kbd' => 'Адыгэбзэ', # Kabardian |
| 160 | + 'kbd-cyrl' => 'Адыгэбзэ', # Kabardian (Cyrillic) |
| 161 | + 'kg' => 'Kongo', # Kongo, (FIXME!) should probaly be KiKongo or KiKoongo |
| 162 | + 'khw' => 'کھوار', # Khowar |
| 163 | + 'ki' => 'Gĩkũyũ', # Gikuyu |
| 164 | + 'kiu' => 'Kırmancki', # Kirmanjki |
| 165 | + 'kj' => 'Kwanyama', # Kwanyama |
| 166 | + 'kk' => 'Қазақша', # Kazakh (multiple scripts - defaults to Cyrillic) |
| 167 | + 'kk-arab' => "\xE2\x80\xABقازاقشا (تٴوتە)\xE2\x80\xAC", # Kazakh Arabic |
| 168 | + 'kk-cyrl' => "\xE2\x80\xAAҚазақша (кирил)\xE2\x80\xAC", # Kazakh Cyrillic |
| 169 | + 'kk-latn' => "\xE2\x80\xAAQazaqşa (latın)\xE2\x80\xAC", # Kazakh Latin |
| 170 | + 'kk-cn' => "\xE2\x80\xABقازاقشا (جۇنگو)\xE2\x80\xAC", # Kazakh (China) |
| 171 | + 'kk-kz' => "\xE2\x80\xAAҚазақша (Қазақстан)\xE2\x80\xAC", # Kazakh (Kazakhstan) |
| 172 | + 'kk-tr' => "\xE2\x80\xAAQazaqşa (Türkïya)\xE2\x80\xAC", # Kazakh (Turkey) |
| 173 | + 'kl' => 'Kalaallisut', # Inuktitut, Greenlandic/Greenlandic/Kalaallisut (kal) |
| 174 | + 'km' => 'ភាសាខ្មែរ', # Khmer, Central |
| 175 | + 'kn' => 'ಕನ್ನಡ', # Kannada |
| 176 | + 'ko' => '한국어', # Korean |
| 177 | + 'ko-kp' => '한국어 (조선)', # Korean (DPRK) |
| 178 | + 'koi' => 'Перем Коми', # Komi-Permyak |
| 179 | + 'kr' => 'Kanuri', # Kanuri, Central |
| 180 | + 'krc' => 'Къарачай-Малкъар', # Karachay-Balkar |
| 181 | + 'kri' => 'Krio', # Krio |
| 182 | + 'krj' => 'Kinaray-a', # Kinaray-a |
| 183 | + 'ks' => 'कश्मीरी - (كشميري)', # Kashmiri (multiple scripts - defaults to Perso-Arabic) |
| 184 | + 'ks-arab' => 'كشميري', # Kashmiri (Perso-Arabic script) |
| 185 | + 'ks-deva' => 'कश्मीरी', # Kashmiri (Devanagari script) |
| 186 | + 'ksh' => 'Ripoarisch', # Ripuarian |
| 187 | + 'ku' => 'Kurdî', # Kurdish (multiple scripts - defaults to Latin) |
| 188 | + 'ku-latn' => "\xE2\x80\xAAKurdî (latînî)\xE2\x80\xAC", # Northern Kurdish (Latin script) |
| 189 | + 'ku-arab' => "\xE2\x80\xABكوردي (عەرەبی)\xE2\x80\xAC", # Northern Kurdish (Arabic script) (falls back to ckb) |
| 190 | + 'kv' => 'Коми', # Komi-Zyrian (Cyrillic is common script but also written in Latin script) |
| 191 | + 'kw' => 'Kernowek', # Cornish |
| 192 | + 'ky' => 'Кыргызча', # Kirghiz |
| 193 | + 'la' => 'Latina', # Latin |
| 194 | + 'lad' => 'Ladino', # Ladino |
| 195 | + 'lb' => 'Lëtzebuergesch', # Luxemburguish |
| 196 | + 'lbe' => 'Лакку', # Lak |
| 197 | + 'lez' => 'Лезги', # Lezgi |
| 198 | + 'lfn' => 'Lingua Franca Nova', # Lingua Franca Nova |
| 199 | + 'lg' => 'Luganda', # Ganda |
| 200 | + 'li' => 'Limburgs', # Limburgian |
| 201 | + 'lij' => 'Ligure', # Ligurian |
| 202 | + 'liv' => 'Līvõ kēļ', # Livonian |
| 203 | + 'lmo' => 'Lumbaart', # Lombard |
| 204 | + 'ln' => 'Lingála', # Lingala |
| 205 | + 'lo' => 'ລາວ',# Laotian |
| 206 | + 'loz' => 'Silozi', # Lozi |
| 207 | + 'lt' => 'Lietuvių', # Lithuanian |
| 208 | + 'ltg' => 'Latgaļu', # Latgalian |
| 209 | + 'lv' => 'Latviešu', # Latvian |
| 210 | + 'lzh' => '文言', # Literary Chinese -- (bug 8217) lzh instead of zh-classical, http://www.sil.org/iso639-3/codes.asp?order=639_3&letter=l |
| 211 | + 'lzz' => 'Lazuri', # Laz |
| 212 | + 'mai' => 'मैथिली', # Maithili |
| 213 | + 'map-bms' => 'Basa Banyumasan', # Banyumasan |
| 214 | + 'mdf' => 'Мокшень', # Moksha |
| 215 | + 'mg' => 'Malagasy', # Malagasy |
| 216 | + 'mh' => 'Ebon', # Marshallese |
| 217 | + 'mhr' => 'Олык Марий', # Eastern Mari |
| 218 | + 'mi' => 'Māori', # Maori |
| 219 | + 'min' => 'Baso Minangkabau', # Minangkabau |
| 220 | + 'mk' => 'Македонски', # Macedonian |
| 221 | + 'ml' => 'മലയാളം', # Malayalam |
| 222 | + 'mn' => 'Монгол', # Halh Mongolian (Cyrillic) (ISO 639-3: khk) |
| 223 | + 'mo' => 'Молдовеняскэ', # Moldovan |
| 224 | + 'mr' => 'मराठी', # Marathi |
| 225 | + 'mrj' => 'Кырык мары', # Hill Mari |
| 226 | + 'ms' => 'Bahasa Melayu', # Malay |
| 227 | + 'mt' => 'Malti', # Maltese |
| 228 | + 'mus' => 'Mvskoke', # Muskogee/Creek |
| 229 | + 'mwl' => 'Mirandés', # Mirandese |
| 230 | + 'my' => 'မြန်မာဘာသာ', # Burmese |
| 231 | + 'myv' => 'Эрзянь', # Erzya |
| 232 | + 'mzn' => 'مازِرونی', # Mazanderani |
| 233 | + 'na' => 'Dorerin Naoero', # Nauruan |
| 234 | + 'nah' => 'Nāhuatl', # Nahuatl, en:Wikipedia writes Nahuatlahtolli, while another form is Náhuatl |
| 235 | + 'nan' => 'Bân-lâm-gú', # Min-nan -- (bug 8217) nan instead of zh-min-nan, http://www.sil.org/iso639-3/codes.asp?order=639_3&letter=n |
| 236 | + 'nap' => 'Nnapulitano', # Neapolitan |
| 237 | + 'nb' => "\xE2\x80\xAANorsk (bokmål)\xE2\x80\xAC", # Norwegian (Bokmal) |
| 238 | + 'nds' => 'Plattdüütsch', # Low German ''or'' Low Saxon |
| 239 | + 'nds-nl' => 'Nedersaksisch', # Dutch Low Saxon |
| 240 | + 'ne' => 'नेपाली', # Nepali |
| 241 | + 'new' => 'नेपाल भाषा', # Newar / Nepal Bhasa |
| 242 | + 'ng' => 'Oshiwambo', # Ndonga |
| 243 | + 'niu' => 'Niuē', # Niuean |
| 244 | + 'nl' => 'Nederlands', # Dutch |
| 245 | + 'nl-informal' => "\xE2\x80\xAANederlands (informeel)\xE2\x80\xAC", # Dutch (informal address ("je")) |
| 246 | + 'nn' => "\xE2\x80\xAANorsk (nynorsk)\xE2\x80\xAC", # Norwegian (Nynorsk) |
| 247 | + 'no' => "\xE2\x80\xAANorsk (bokmål)\xE2\x80\xAC", # Norwegian |
| 248 | + 'nov' => 'Novial', # Novial |
| 249 | + 'nrm' => 'Nouormand', # Norman |
| 250 | + 'nso' => 'Sesotho sa Leboa', # Northern Sotho |
| 251 | + 'nv' => 'Diné bizaad', # Navajo |
| 252 | + 'ny' => 'Chi-Chewa', # Chichewa |
| 253 | + 'oc' => 'Occitan', # Occitan |
| 254 | + 'om' => 'Oromoo', # Oromo |
| 255 | + 'or' => 'ଓଡ଼ିଆ', # Oriya |
| 256 | + 'os' => 'Ирон', # Ossetic -- fixed per bug 29091 |
| 257 | + 'pa' => 'ਪੰਜਾਬੀ', # Eastern Punjabi (Gurmukhi script) (pan) |
| 258 | + 'pag' => 'Pangasinan', # Pangasinan |
| 259 | + 'pam' => 'Kapampangan', # Pampanga |
| 260 | + 'pap' => 'Papiamentu', # Papiamentu |
| 261 | + 'pcd' => 'Picard', # Picard |
| 262 | + 'pdc' => 'Deitsch', # Pennsylvania German |
| 263 | + 'pdt' => 'Plautdietsch', # Plautdietsch/Mennonite Low German |
| 264 | + 'pfl' => 'Pälzisch', # Palatinate German |
| 265 | + 'pi' => 'पािऴ', # Pali |
| 266 | + 'pih' => 'Norfuk / Pitkern', # Norfuk/Pitcairn/Norfolk |
| 267 | + 'pl' => 'Polski', # Polish |
| 268 | + 'pms' => 'Piemontèis', # Piedmontese |
| 269 | + 'pnb' => 'پنجابی', # Western Punjabi |
| 270 | + 'pnt' => 'Ποντιακά', # Pontic/Pontic Greek |
| 271 | + 'prg' => 'Prūsiskan', # Prussian |
| 272 | + 'ps' => 'پښتو', # Pashto, Northern/Paktu/Pakhtu/Pakhtoo/Afghan/Pakhto/Pashtu/Pushto/Yusufzai Pashto |
| 273 | + 'pt' => 'Português', # Portuguese |
| 274 | + 'pt-br' => 'Português do Brasil', # Brazilian Portuguese |
| 275 | + 'qu' => 'Runa Simi', # Southern Quechua |
| 276 | + 'qug' => 'Runa shimi', # Kichwa/Northern Quechua (one of the codes it covers; temporarily used until Kichwa has its own) |
| 277 | + 'rgn' => 'Rumagnôl', # Romagnol |
| 278 | + 'rif' => 'Tarifit', # Tarifit |
| 279 | + 'rm' => 'Rumantsch', # Raeto-Romance |
| 280 | + 'rmy' => 'Romani', # Vlax Romany |
| 281 | + 'rn' => 'Kirundi', # Rundi/Kirundi/Urundi |
| 282 | + 'ro' => 'Română', # Romanian |
| 283 | + 'roa-rup' => 'Armãneashce', # Aromanian (deprecated code, 'rup' exists in ISO 693-3) |
| 284 | + 'roa-tara' => 'Tarandíne', # Tarantino |
| 285 | + 'ru' => 'Русский', # Russian |
| 286 | + 'rue' => 'Русиньскый', # Rusyn |
| 287 | + 'rup' => 'Armãneashce', # Aromanian |
| 288 | + 'ruq' => 'Vlăheşte', # Megleno-Romanian (multiple scripts - defaults to Latin) |
| 289 | + 'ruq-cyrl' => 'Влахесте', # Megleno-Romanian (Cyrillic script) |
| 290 | + # 'ruq-grek' => 'Βλαεστε', # Megleno-Romanian (Greek script) |
| 291 | + 'ruq-latn' => 'Vlăheşte', # Megleno-Romanian (Latin script) |
| 292 | + 'rw' => 'Kinyarwanda', # Kinyarwanda, should possibly be Kinyarwandi |
| 293 | + 'sa' => 'संस्कृत', # Sanskrit |
| 294 | + 'sah' => 'Саха тыла', # Sakha |
| 295 | + 'sc' => 'Sardu', # Sardinian |
| 296 | + 'scn' => 'Sicilianu', # Sicilian |
| 297 | + 'sco' => 'Scots', # Scots |
| 298 | + 'sd' => 'سنڌي', # Sindhi |
| 299 | + 'sdc' => 'Sassaresu', # Sassarese |
| 300 | + 'se' => 'Sámegiella', # Northern Sami |
| 301 | + 'sei' => 'Cmique Itom', # Seri |
| 302 | + 'sg' => 'Sängö', # Sango/Sangho |
| 303 | + 'sgs' => 'Žemaitėška', # Samogitian |
| 304 | + 'sh' => 'Srpskohrvatski / Српскохрватски', # Serbocroatian |
| 305 | + 'shi' => 'Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ', # Tachelhit (multiple scripts - defaults to Latin) |
| 306 | + 'shi-tfng' => 'ⵜⴰⵛⵍⵃⵉⵜ', # Tachelhit (Tifinagh script) |
| 307 | + 'shi-latn' => 'Tašlḥiyt', # Tachelhit (Latin script) |
| 308 | + 'si' => 'සිංහල', # Sinhalese |
| 309 | + 'simple' => 'Simple English', # Simple English |
| 310 | + 'sk' => 'Slovenčina', # Slovak |
| 311 | + 'sl' => 'Slovenščina', # Slovenian |
| 312 | + 'sli' => 'Schläsch', # Lower Selisian |
| 313 | + 'sm' => 'Gagana Samoa', # Samoan |
| 314 | + 'sma' => 'Åarjelsaemien', # Southern Sami |
| 315 | + 'sn' => 'chiShona', # Shona |
| 316 | + 'so' => 'Soomaaliga', # Somali |
| 317 | + 'sq' => 'Shqip', # Albanian |
| 318 | + 'sr' => 'Српски / Srpski', # Serbian (multiple scripts - defaults to Cyrillic) |
| 319 | + 'sr-ec' => "\xE2\x80\xAAСрпски (ћирилица)\xE2\x80\xAC", # Serbian Cyrillic ekavian |
| 320 | + 'sr-el' => "\xE2\x80\xAASrpski (latinica)\xE2\x80\xAC", # Serbian Latin ekavian |
| 321 | + 'srn' => 'Sranantongo', # Sranan Tongo |
| 322 | + 'ss' => 'SiSwati', # Swati |
| 323 | + 'st' => 'Sesotho', # Southern Sotho |
| 324 | + 'stq' => 'Seeltersk', # Saterland Frisian |
| 325 | + 'su' => 'Basa Sunda', # Sundanese |
| 326 | + 'sv' => 'Svenska', # Swedish |
| 327 | + 'sw' => 'Kiswahili', # Swahili |
| 328 | + 'szl' => 'Ślůnski', # Silesian |
| 329 | + 'ta' => 'தமிழ்', # Tamil |
| 330 | + 'tcy' => 'ತುಳು', # Tulu |
| 331 | + 'te' => 'తెలుగు', # Telugu |
| 332 | + 'tet' => 'Tetun', # Tetun |
| 333 | + 'tg' => 'Тоҷикӣ', # Tajiki (falls back to tg-cyrl) |
| 334 | + 'tg-cyrl' => 'Тоҷикӣ', # Tajiki (Cyrllic script) (default) |
| 335 | + 'tg-latn' => 'tojikī', # Tajiki (Latin script) |
| 336 | + 'th' => 'ไทย', # Thai |
| 337 | + 'ti' => 'ትግርኛ', # Tigrinya |
| 338 | + 'tk' => 'Türkmençe', # Turkmen |
| 339 | + 'tl' => 'Tagalog', # Tagalog |
| 340 | + 'tly' => 'толышә зывон', # Talysh |
| 341 | + 'tn' => 'Setswana', # Setswana |
| 342 | + 'to' => 'lea faka-Tonga', # Tonga (Tonga Islands) |
| 343 | + 'tokipona' => 'Toki Pona', # Toki Pona |
| 344 | + 'tpi' => 'Tok Pisin', # Tok Pisin |
| 345 | + 'tr' => 'Türkçe', # Turkish |
| 346 | + 'ts' => 'Xitsonga', # Tsonga |
| 347 | + 'tt' => 'Татарча/Tatarça', # Tatar (multiple scripts - defaults to Cyrillic) |
| 348 | + 'tt-cyrl' => 'Татарча', # Tatar (Cyrillic script) (default) |
| 349 | + 'tt-latn' => 'Tatarça', # Tatar (Latin script) |
| 350 | + 'tum' => 'chiTumbuka', # Tumbuka |
| 351 | + 'tw' => 'Twi', # Twi, (FIXME!) |
| 352 | + 'ty' => 'Reo Mā`ohi', # Tahitian |
| 353 | + 'tyv' => 'Тыва дыл', # Tyvan |
| 354 | + 'udm' => 'Удмурт', # Udmurt |
| 355 | + 'ug' => 'ئۇيغۇرچە / Uyghurche', # Uyghur (multiple scripts - defaults to Arabic) |
| 356 | + 'ug-arab' => 'ئۇيغۇرچە', # Uyghur (Arabic script) (default) |
| 357 | + 'ug-latn' => 'Uyghurche', # Uyghur (Latin script) |
| 358 | + 'uk' => 'Українська', # Ukrainian |
| 359 | + 'ur' => 'اردو', # Urdu |
| 360 | + 'uz' => 'O\'zbek', # Uzbek |
| 361 | + 've' => 'Tshivenda', # Venda |
| 362 | + 'vec' => 'Vèneto', # Venetian |
| 363 | + 'vep' => 'Vepsan kel\'', # Veps |
| 364 | + 'vi' => 'Tiếng Việt', # Vietnamese |
| 365 | + 'vls' => 'West-Vlams', # West Flemish |
| 366 | + 'vmf' => 'Mainfränkisch', # Upper Franconian, Main-Franconian |
| 367 | + 'vo' => 'Volapük', # Volapük |
| 368 | + 'vot' => 'Vaďďa', # Vod/Votian |
| 369 | + 'vro' => 'Võro', # Võro |
| 370 | + 'wa' => 'Walon', # Walloon |
| 371 | + 'war' => 'Winaray', # Waray-Waray |
| 372 | + 'wo' => 'Wolof', # Wolof |
| 373 | + 'wuu' => '吴语', # Wu Chinese |
| 374 | + 'xal' => 'Хальмг', # Kalmyk-Oirat (Kalmuk, Kalmuck, Kalmack, Qalmaq, Kalmytskii Jazyk, Khal:mag, Oirat, Volga Oirat, European Oirat, Western Mongolian) |
| 375 | + 'xh' => 'isiXhosa', # Xhosan |
| 376 | + 'xmf' => 'მარგალური', # Mingrelian |
| 377 | + 'yi' => 'ייִדיש', # Yiddish |
| 378 | + 'yo' => 'Yorùbá', # Yoruba |
| 379 | + 'yue' => '粵語', # Cantonese -- (bug 8217) yue instead of zh-yue, http://www.sil.org/iso639-3/codes.asp?order=639_3&letter=y |
| 380 | + 'za' => 'Vahcuengh', # Zhuang |
| 381 | + 'zea' => 'Zeêuws', # Zeeuws/Zeaws |
| 382 | + 'zh' => '中文', # (Zhōng Wén) - Chinese |
| 383 | + 'zh-classical' => '文言', # Classical Chinese/Literary Chinese -- (see bug 8217) |
| 384 | + 'zh-cn' => "\xE2\x80\xAA中文(中国大陆)\xE2\x80\xAC", # Chinese (PRC) |
| 385 | + 'zh-hans' => "\xE2\x80\xAA中文(简体)\xE2\x80\xAC", # Mandarin Chinese (Simplified Chinese script) (cmn-hans) |
| 386 | + 'zh-hant' => "\xE2\x80\xAA中文(繁體)\xE2\x80\xAC", # Mandarin Chinese (Traditional Chinese script) (cmn-hant) |
| 387 | + 'zh-hk' => "\xE2\x80\xAA中文(香港)\xE2\x80\xAC", # Chinese (Hong Kong) |
| 388 | + 'zh-min-nan' => 'Bân-lâm-gú', # Min-nan -- (see bug 8217) |
| 389 | + 'zh-mo' => "\xE2\x80\xAA中文(澳門)\xE2\x80\xAC", # Chinese (Macau) |
| 390 | + 'zh-my' => "\xE2\x80\xAA中文(马来西亚)\xE2\x80\xAC", # Chinese (Malaysia) |
| 391 | + 'zh-sg' => "\xE2\x80\xAA中文(新加坡)\xE2\x80\xAC", # Chinese (Singapore) |
| 392 | + 'zh-tw' => "\xE2\x80\xAA中文(台灣)\xE2\x80\xAC", # Chinese (Taiwan) |
| 393 | + 'zh-yue' => '粵語', # Cantonese -- (see bug 8217) |
| 394 | + 'zu' => 'isiZulu' # Zulu |
| 395 | +); |
Property changes on: trunk/tools/ToolserverI18N/language/mw-classes/Names.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 396 | + native |
Added: svn:keywords |
2 | 397 | + Author Date Id Revision |
Index: trunk/tools/ToolserverI18N/language/mw-classes/LanguageSr_el.php |
— | — | @@ -0,0 +1,31 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +/** |
| 5 | + * Serbian (latin script) |
| 6 | + * |
| 7 | + * @ingroup Language |
| 8 | + */ |
| 9 | +class LanguageSr_el extends Language { |
| 10 | + |
| 11 | + /** |
| 12 | + * @param $count int |
| 13 | + * @param $forms array |
| 14 | + * @return string |
| 15 | + */ |
| 16 | + function convertPlural( $count, $forms ) { |
| 17 | + if ( !count( $forms ) ) { return ''; } |
| 18 | + $forms = $this->preConvertPlural( $forms, 3 ); |
| 19 | + |
| 20 | + if ( $count > 10 && floor( ( $count % 100 ) / 10 ) == 1 ) { |
| 21 | + return $forms[2]; |
| 22 | + } else { |
| 23 | + switch ( $count % 10 ) { |
| 24 | + case 1: return $forms[0]; |
| 25 | + case 2: |
| 26 | + case 3: |
| 27 | + case 4: return $forms[1]; |
| 28 | + default: return $forms[2]; |
| 29 | + } |
| 30 | + } |
| 31 | + } |
| 32 | +} |
Property changes on: trunk/tools/ToolserverI18N/language/mw-classes/LanguageSr_el.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 33 | + native |
Added: svn:keywords |
2 | 34 | + Author Date Id Revision |