Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/exprTests.txt |
— | — | @@ -0,0 +1,39 @@ |
| 2 | +1 + 1 = 2 |
| 3 | +-1 + 1 = 0 |
| 4 | ++1 + 1 = 2 |
| 5 | +4 * 4 = 16 |
| 6 | +-4 * -4 = 4 * 4 |
| 7 | +(1/3) * 3 = 1 |
| 8 | +3 / 1.5 = 2 |
| 9 | +3 mod 2 = 1 |
| 10 | +1 or 0 |
| 11 | +not (1 and 0) |
| 12 | +not 0 |
| 13 | +4.0 round 0; 4 |
| 14 | +ceil 4; 4 |
| 15 | +floor 4; 4 |
| 16 | +4.5 round 0; 5 |
| 17 | +4.2 round 0; 4 |
| 18 | +-4.2 round 0; -4 |
| 19 | +-4.5 round 0; -5 |
| 20 | +-2.0 round 0; -2 |
| 21 | +ceil -3; -3 |
| 22 | +floor -6.0; -6 |
| 23 | +ceil 4.2; 5 |
| 24 | +ceil -4.5; -4 |
| 25 | +floor -4.5; -5 |
| 26 | +4 < 5 |
| 27 | +-5 < 2 |
| 28 | +-2 <= -2 |
| 29 | +abs(-2); 2 |
| 30 | +4 > 3 |
| 31 | +4 > -3 |
| 32 | +5 >= 2 |
| 33 | +2 >= 2 |
| 34 | +1 != 2 |
| 35 | +not (1 != 1) |
| 36 | +1e4 = 10000 |
| 37 | +1e-2 = 0.01 |
| 38 | +ln(exp(1));1 |
| 39 | +trunc(4.5);4 |
| 40 | +trunc(-4.5);-4 |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/exprTests.txt |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 41 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/Expr.php |
— | — | @@ -0,0 +1,555 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
| 5 | + die( 'This file is a MediaWiki extension, it is not a valid entry point' ); |
| 6 | +} |
| 7 | + |
| 8 | +// Character classes |
| 9 | +define( 'EXPR_WHITE_CLASS', " \t\r\n" ); |
| 10 | +define( 'EXPR_NUMBER_CLASS', '0123456789.' ); |
| 11 | + |
| 12 | +// Token types |
| 13 | +define( 'EXPR_WHITE', 1 ); |
| 14 | +define( 'EXPR_NUMBER', 2 ); |
| 15 | +define( 'EXPR_NEGATIVE', 3 ); |
| 16 | +define( 'EXPR_POSITIVE', 4 ); |
| 17 | +define( 'EXPR_PLUS', 5 ); |
| 18 | +define( 'EXPR_MINUS', 6 ); |
| 19 | +define( 'EXPR_TIMES', 7 ); |
| 20 | +define( 'EXPR_DIVIDE', 8 ); |
| 21 | +define( 'EXPR_MOD', 9 ); |
| 22 | +define( 'EXPR_OPEN', 10 ); |
| 23 | +define( 'EXPR_CLOSE', 11 ); |
| 24 | +define( 'EXPR_AND', 12 ); |
| 25 | +define( 'EXPR_OR', 13 ); |
| 26 | +define( 'EXPR_NOT', 14 ); |
| 27 | +define( 'EXPR_EQUALITY', 15 ); |
| 28 | +define( 'EXPR_LESS', 16 ); |
| 29 | +define( 'EXPR_GREATER', 17 ); |
| 30 | +define( 'EXPR_LESSEQ', 18 ); |
| 31 | +define( 'EXPR_GREATEREQ', 19 ); |
| 32 | +define( 'EXPR_NOTEQ', 20 ); |
| 33 | +define( 'EXPR_ROUND', 21 ); |
| 34 | +define( 'EXPR_EXPONENT', 22 ); |
| 35 | +define( 'EXPR_SINE', 23 ); |
| 36 | +define( 'EXPR_COSINE', 24 ); |
| 37 | +define( 'EXPR_TANGENS', 25 ); |
| 38 | +define( 'EXPR_ARCSINE', 26 ); |
| 39 | +define( 'EXPR_ARCCOS', 27 ); |
| 40 | +define( 'EXPR_ARCTAN', 28 ); |
| 41 | +define( 'EXPR_EXP', 29 ); |
| 42 | +define( 'EXPR_LN', 30 ); |
| 43 | +define( 'EXPR_ABS', 31 ); |
| 44 | +define( 'EXPR_FLOOR', 32 ); |
| 45 | +define( 'EXPR_TRUNC', 33 ); |
| 46 | +define( 'EXPR_CEIL', 34 ); |
| 47 | +define( 'EXPR_POW', 35 ); |
| 48 | +define( 'EXPR_PI', 36 ); |
| 49 | + |
| 50 | +class ExprError extends Exception { |
| 51 | + public function __construct( $msg, $parameter = '' ) { |
| 52 | + $this->message = '<strong class="error">' . wfMsgForContent( "pfunc_expr_$msg", htmlspecialchars( $parameter ) ) . '</strong>'; |
| 53 | + } |
| 54 | +} |
| 55 | + |
| 56 | +class ExprParser { |
| 57 | + var $maxStackSize = 100; |
| 58 | + |
| 59 | + var $precedence = array( |
| 60 | + EXPR_NEGATIVE => 10, |
| 61 | + EXPR_POSITIVE => 10, |
| 62 | + EXPR_EXPONENT => 10, |
| 63 | + EXPR_SINE => 9, |
| 64 | + EXPR_COSINE => 9, |
| 65 | + EXPR_TANGENS => 9, |
| 66 | + EXPR_ARCSINE => 9, |
| 67 | + EXPR_ARCCOS => 9, |
| 68 | + EXPR_ARCTAN => 9, |
| 69 | + EXPR_EXP => 9, |
| 70 | + EXPR_LN => 9, |
| 71 | + EXPR_ABS => 9, |
| 72 | + EXPR_FLOOR => 9, |
| 73 | + EXPR_TRUNC => 9, |
| 74 | + EXPR_CEIL => 9, |
| 75 | + EXPR_NOT => 9, |
| 76 | + EXPR_POW => 8, |
| 77 | + EXPR_TIMES => 7, |
| 78 | + EXPR_DIVIDE => 7, |
| 79 | + EXPR_MOD => 7, |
| 80 | + EXPR_PLUS => 6, |
| 81 | + EXPR_MINUS => 6, |
| 82 | + EXPR_ROUND => 5, |
| 83 | + EXPR_EQUALITY => 4, |
| 84 | + EXPR_LESS => 4, |
| 85 | + EXPR_GREATER => 4, |
| 86 | + EXPR_LESSEQ => 4, |
| 87 | + EXPR_GREATEREQ => 4, |
| 88 | + EXPR_NOTEQ => 4, |
| 89 | + EXPR_AND => 3, |
| 90 | + EXPR_OR => 2, |
| 91 | + EXPR_PI => 0, |
| 92 | + EXPR_OPEN => -1, |
| 93 | + EXPR_CLOSE => -1, |
| 94 | + ); |
| 95 | + |
| 96 | + var $names = array( |
| 97 | + EXPR_NEGATIVE => '-', |
| 98 | + EXPR_POSITIVE => '+', |
| 99 | + EXPR_NOT => 'not', |
| 100 | + EXPR_TIMES => '*', |
| 101 | + EXPR_DIVIDE => '/', |
| 102 | + EXPR_MOD => 'mod', |
| 103 | + EXPR_PLUS => '+', |
| 104 | + EXPR_MINUS => '-', |
| 105 | + EXPR_ROUND => 'round', |
| 106 | + EXPR_EQUALITY => '=', |
| 107 | + EXPR_LESS => '<', |
| 108 | + EXPR_GREATER => '>', |
| 109 | + EXPR_LESSEQ => '<=', |
| 110 | + EXPR_GREATEREQ => '>=', |
| 111 | + EXPR_NOTEQ => '<>', |
| 112 | + EXPR_AND => 'and', |
| 113 | + EXPR_OR => 'or', |
| 114 | + EXPR_EXPONENT => 'e', |
| 115 | + EXPR_SINE => 'sin', |
| 116 | + EXPR_COSINE => 'cos', |
| 117 | + EXPR_TANGENS => 'tan', |
| 118 | + EXPR_ARCSINE => 'asin', |
| 119 | + EXPR_ARCCOS => 'acos', |
| 120 | + EXPR_ARCTAN => 'atan', |
| 121 | + EXPR_LN => 'ln', |
| 122 | + EXPR_EXP => 'exp', |
| 123 | + EXPR_ABS => 'abs', |
| 124 | + EXPR_FLOOR => 'floor', |
| 125 | + EXPR_TRUNC => 'trunc', |
| 126 | + EXPR_CEIL => 'ceil', |
| 127 | + EXPR_POW => '^', |
| 128 | + EXPR_PI => 'pi', |
| 129 | + ); |
| 130 | + |
| 131 | + |
| 132 | + var $words = array( |
| 133 | + 'mod' => EXPR_MOD, |
| 134 | + 'and' => EXPR_AND, |
| 135 | + 'or' => EXPR_OR, |
| 136 | + 'not' => EXPR_NOT, |
| 137 | + 'round' => EXPR_ROUND, |
| 138 | + 'div' => EXPR_DIVIDE, |
| 139 | + 'e' => EXPR_EXPONENT, |
| 140 | + 'sin' => EXPR_SINE, |
| 141 | + 'cos' => EXPR_COSINE, |
| 142 | + 'tan' => EXPR_TANGENS, |
| 143 | + 'asin' => EXPR_ARCSINE, |
| 144 | + 'acos' => EXPR_ARCCOS, |
| 145 | + 'atan' => EXPR_ARCTAN, |
| 146 | + 'exp' => EXPR_EXP, |
| 147 | + 'ln' => EXPR_LN, |
| 148 | + 'abs' => EXPR_ABS, |
| 149 | + 'trunc' => EXPR_TRUNC, |
| 150 | + 'floor' => EXPR_FLOOR, |
| 151 | + 'ceil' => EXPR_CEIL, |
| 152 | + 'pi' => EXPR_PI, |
| 153 | + ); |
| 154 | + |
| 155 | + /** |
| 156 | + * Evaluate a mathematical expression |
| 157 | + * |
| 158 | + * The algorithm here is based on the infix to RPN algorithm given in |
| 159 | + * http://montcs.bloomu.edu/~bobmon/Information/RPN/infix2rpn.shtml |
| 160 | + * It's essentially the same as Dijkstra's shunting yard algorithm. |
| 161 | + */ |
| 162 | + function doExpression( $expr ) { |
| 163 | + $operands = array(); |
| 164 | + $operators = array(); |
| 165 | + |
| 166 | + # Unescape inequality operators |
| 167 | + $expr = strtr( $expr, array( '<' => '<', '>' => '>', |
| 168 | + '−' => '-', '−' => '-' ) ); |
| 169 | + |
| 170 | + $p = 0; |
| 171 | + $end = strlen( $expr ); |
| 172 | + $expecting = 'expression'; |
| 173 | + |
| 174 | + while ( $p < $end ) { |
| 175 | + if ( count( $operands ) > $this->maxStackSize || count( $operators ) > $this->maxStackSize ) { |
| 176 | + throw new ExprError( 'stack_exhausted' ); |
| 177 | + } |
| 178 | + $char = $expr[$p]; |
| 179 | + $char2 = substr( $expr, $p, 2 ); |
| 180 | + |
| 181 | + // Mega if-elseif-else construct |
| 182 | + // Only binary operators fall through for processing at the bottom, the rest |
| 183 | + // finish their processing and continue |
| 184 | + |
| 185 | + // First the unlimited length classes |
| 186 | + |
| 187 | + if ( false !== strpos( EXPR_WHITE_CLASS, $char ) ) { |
| 188 | + // Whitespace |
| 189 | + $p += strspn( $expr, EXPR_WHITE_CLASS, $p ); |
| 190 | + continue; |
| 191 | + } elseif ( false !== strpos( EXPR_NUMBER_CLASS, $char ) ) { |
| 192 | + // Number |
| 193 | + if ( $expecting != 'expression' ) { |
| 194 | + throw new ExprError( 'unexpected_number' ); |
| 195 | + } |
| 196 | + |
| 197 | + // Find the rest of it |
| 198 | + $length = strspn( $expr, EXPR_NUMBER_CLASS, $p ); |
| 199 | + // Convert it to float, silently removing double decimal points |
| 200 | + $operands[] = floatval( substr( $expr, $p, $length ) ); |
| 201 | + $p += $length; |
| 202 | + $expecting = 'operator'; |
| 203 | + continue; |
| 204 | + } elseif ( ctype_alpha( $char ) ) { |
| 205 | + // Word |
| 206 | + // Find the rest of it |
| 207 | + $remaining = substr( $expr, $p ); |
| 208 | + if ( !preg_match( '/^[A-Za-z]*/', $remaining, $matches ) ) { |
| 209 | + // This should be unreachable |
| 210 | + throw new ExprError( 'preg_match_failure' ); |
| 211 | + } |
| 212 | + $word = strtolower( $matches[0] ); |
| 213 | + $p += strlen( $word ); |
| 214 | + |
| 215 | + // Interpret the word |
| 216 | + if ( !isset( $this->words[$word] ) ) { |
| 217 | + throw new ExprError( 'unrecognised_word', $word ); |
| 218 | + } |
| 219 | + $op = $this->words[$word]; |
| 220 | + switch( $op ) { |
| 221 | + // constant |
| 222 | + case EXPR_EXPONENT: |
| 223 | + if ( $expecting != 'expression' ) { |
| 224 | + continue; |
| 225 | + } |
| 226 | + $operands[] = exp( 1 ); |
| 227 | + $expecting = 'operator'; |
| 228 | + continue 2; |
| 229 | + case EXPR_PI: |
| 230 | + if ( $expecting != 'expression' ) { |
| 231 | + throw new ExprError( 'unexpected_number' ); |
| 232 | + } |
| 233 | + $operands[] = pi(); |
| 234 | + $expecting = 'operator'; |
| 235 | + continue 2; |
| 236 | + // Unary operator |
| 237 | + case EXPR_NOT: |
| 238 | + case EXPR_SINE: |
| 239 | + case EXPR_COSINE: |
| 240 | + case EXPR_TANGENS: |
| 241 | + case EXPR_ARCSINE: |
| 242 | + case EXPR_ARCCOS: |
| 243 | + case EXPR_ARCTAN: |
| 244 | + case EXPR_EXP: |
| 245 | + case EXPR_LN: |
| 246 | + case EXPR_ABS: |
| 247 | + case EXPR_FLOOR: |
| 248 | + case EXPR_TRUNC: |
| 249 | + case EXPR_CEIL: |
| 250 | + if ( $expecting != 'expression' ) { |
| 251 | + throw new ExprError( 'unexpected_operator', $word ); |
| 252 | + } |
| 253 | + $operators[] = $op; |
| 254 | + continue 2; |
| 255 | + } |
| 256 | + // Binary operator, fall through |
| 257 | + $name = $word; |
| 258 | + } |
| 259 | + |
| 260 | + // Next the two-character operators |
| 261 | + |
| 262 | + elseif ( $char2 == '<=' ) { |
| 263 | + $name = $char2; |
| 264 | + $op = EXPR_LESSEQ; |
| 265 | + $p += 2; |
| 266 | + } elseif ( $char2 == '>=' ) { |
| 267 | + $name = $char2; |
| 268 | + $op = EXPR_GREATEREQ; |
| 269 | + $p += 2; |
| 270 | + } elseif ( $char2 == '<>' || $char2 == '!=' ) { |
| 271 | + $name = $char2; |
| 272 | + $op = EXPR_NOTEQ; |
| 273 | + $p += 2; |
| 274 | + } |
| 275 | + |
| 276 | + // Finally the single-character operators |
| 277 | + |
| 278 | + elseif ( $char == '+' ) { |
| 279 | + ++$p; |
| 280 | + if ( $expecting == 'expression' ) { |
| 281 | + // Unary plus |
| 282 | + $operators[] = EXPR_POSITIVE; |
| 283 | + continue; |
| 284 | + } else { |
| 285 | + // Binary plus |
| 286 | + $op = EXPR_PLUS; |
| 287 | + } |
| 288 | + } elseif ( $char == '-' ) { |
| 289 | + ++$p; |
| 290 | + if ( $expecting == 'expression' ) { |
| 291 | + // Unary minus |
| 292 | + $operators[] = EXPR_NEGATIVE; |
| 293 | + continue; |
| 294 | + } else { |
| 295 | + // Binary minus |
| 296 | + $op = EXPR_MINUS; |
| 297 | + } |
| 298 | + } elseif ( $char == '*' ) { |
| 299 | + $name = $char; |
| 300 | + $op = EXPR_TIMES; |
| 301 | + ++$p; |
| 302 | + } elseif ( $char == '/' ) { |
| 303 | + $name = $char; |
| 304 | + $op = EXPR_DIVIDE; |
| 305 | + ++$p; |
| 306 | + } elseif ( $char == '^' ) { |
| 307 | + $name = $char; |
| 308 | + $op = EXPR_POW; |
| 309 | + ++$p; |
| 310 | + } elseif ( $char == '(' ) { |
| 311 | + if ( $expecting == 'operator' ) { |
| 312 | + throw new ExprError( 'unexpected_operator', '(' ); |
| 313 | + } |
| 314 | + $operators[] = EXPR_OPEN; |
| 315 | + ++$p; |
| 316 | + continue; |
| 317 | + } elseif ( $char == ')' ) { |
| 318 | + $lastOp = end( $operators ); |
| 319 | + while ( $lastOp && $lastOp != EXPR_OPEN ) { |
| 320 | + $this->doOperation( $lastOp, $operands ); |
| 321 | + array_pop( $operators ); |
| 322 | + $lastOp = end( $operators ); |
| 323 | + } |
| 324 | + if ( $lastOp ) { |
| 325 | + array_pop( $operators ); |
| 326 | + } else { |
| 327 | + throw new ExprError( 'unexpected_closing_bracket' ); |
| 328 | + } |
| 329 | + $expecting = 'operator'; |
| 330 | + ++$p; |
| 331 | + continue; |
| 332 | + } elseif ( $char == '=' ) { |
| 333 | + $name = $char; |
| 334 | + $op = EXPR_EQUALITY; |
| 335 | + ++$p; |
| 336 | + } elseif ( $char == '<' ) { |
| 337 | + $name = $char; |
| 338 | + $op = EXPR_LESS; |
| 339 | + ++$p; |
| 340 | + } elseif ( $char == '>' ) { |
| 341 | + $name = $char; |
| 342 | + $op = EXPR_GREATER; |
| 343 | + ++$p; |
| 344 | + } else { |
| 345 | + throw new ExprError( 'unrecognised_punctuation', UtfNormal::cleanUp( $char ) ); |
| 346 | + } |
| 347 | + |
| 348 | + // Binary operator processing |
| 349 | + if ( $expecting == 'expression' ) { |
| 350 | + throw new ExprError( 'unexpected_operator', $name ); |
| 351 | + } |
| 352 | + |
| 353 | + // Shunting yard magic |
| 354 | + $lastOp = end( $operators ); |
| 355 | + while ( $lastOp && $this->precedence[$op] <= $this->precedence[$lastOp] ) { |
| 356 | + $this->doOperation( $lastOp, $operands ); |
| 357 | + array_pop( $operators ); |
| 358 | + $lastOp = end( $operators ); |
| 359 | + } |
| 360 | + $operators[] = $op; |
| 361 | + $expecting = 'expression'; |
| 362 | + } |
| 363 | + |
| 364 | + // Finish off the operator array |
| 365 | + while ( $op = array_pop( $operators ) ) { |
| 366 | + if ( $op == EXPR_OPEN ) { |
| 367 | + throw new ExprError( 'unclosed_bracket' ); |
| 368 | + } |
| 369 | + $this->doOperation( $op, $operands ); |
| 370 | + } |
| 371 | + |
| 372 | + return implode( "<br />\n", $operands ); |
| 373 | + } |
| 374 | + |
| 375 | + function doOperation( $op, &$stack ) { |
| 376 | + switch ( $op ) { |
| 377 | + case EXPR_NEGATIVE: |
| 378 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 379 | + $arg = array_pop( $stack ); |
| 380 | + $stack[] = -$arg; |
| 381 | + break; |
| 382 | + case EXPR_POSITIVE: |
| 383 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 384 | + break; |
| 385 | + case EXPR_TIMES: |
| 386 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 387 | + $right = array_pop( $stack ); |
| 388 | + $left = array_pop( $stack ); |
| 389 | + $stack[] = $left * $right; |
| 390 | + break; |
| 391 | + case EXPR_DIVIDE: |
| 392 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 393 | + $right = array_pop( $stack ); |
| 394 | + $left = array_pop( $stack ); |
| 395 | + if ( $right == 0 ) throw new ExprError( 'division_by_zero', $this->names[$op] ); |
| 396 | + $stack[] = $left / $right; |
| 397 | + break; |
| 398 | + case EXPR_MOD: |
| 399 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 400 | + $right = array_pop( $stack ); |
| 401 | + $left = array_pop( $stack ); |
| 402 | + if ( $right == 0 ) throw new ExprError( 'division_by_zero', $this->names[$op] ); |
| 403 | + $stack[] = $left % $right; |
| 404 | + break; |
| 405 | + case EXPR_PLUS: |
| 406 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 407 | + $right = array_pop( $stack ); |
| 408 | + $left = array_pop( $stack ); |
| 409 | + $stack[] = $left + $right; |
| 410 | + break; |
| 411 | + case EXPR_MINUS: |
| 412 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 413 | + $right = array_pop( $stack ); |
| 414 | + $left = array_pop( $stack ); |
| 415 | + $stack[] = $left - $right; |
| 416 | + break; |
| 417 | + case EXPR_AND: |
| 418 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 419 | + $right = array_pop( $stack ); |
| 420 | + $left = array_pop( $stack ); |
| 421 | + $stack[] = ( $left && $right ) ? 1 : 0; |
| 422 | + break; |
| 423 | + case EXPR_OR: |
| 424 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 425 | + $right = array_pop( $stack ); |
| 426 | + $left = array_pop( $stack ); |
| 427 | + $stack[] = ( $left || $right ) ? 1 : 0; |
| 428 | + break; |
| 429 | + case EXPR_EQUALITY: |
| 430 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 431 | + $right = array_pop( $stack ); |
| 432 | + $left = array_pop( $stack ); |
| 433 | + $stack[] = ( $left == $right ) ? 1 : 0; |
| 434 | + break; |
| 435 | + case EXPR_NOT: |
| 436 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 437 | + $arg = array_pop( $stack ); |
| 438 | + $stack[] = ( !$arg ) ? 1 : 0; |
| 439 | + break; |
| 440 | + case EXPR_ROUND: |
| 441 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 442 | + $digits = intval( array_pop( $stack ) ); |
| 443 | + $value = array_pop( $stack ); |
| 444 | + $stack[] = round( $value, $digits ); |
| 445 | + break; |
| 446 | + case EXPR_LESS: |
| 447 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 448 | + $right = array_pop( $stack ); |
| 449 | + $left = array_pop( $stack ); |
| 450 | + $stack[] = ( $left < $right ) ? 1 : 0; |
| 451 | + break; |
| 452 | + case EXPR_GREATER: |
| 453 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 454 | + $right = array_pop( $stack ); |
| 455 | + $left = array_pop( $stack ); |
| 456 | + $stack[] = ( $left > $right ) ? 1 : 0; |
| 457 | + break; |
| 458 | + case EXPR_LESSEQ: |
| 459 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 460 | + $right = array_pop( $stack ); |
| 461 | + $left = array_pop( $stack ); |
| 462 | + $stack[] = ( $left <= $right ) ? 1 : 0; |
| 463 | + break; |
| 464 | + case EXPR_GREATEREQ: |
| 465 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 466 | + $right = array_pop( $stack ); |
| 467 | + $left = array_pop( $stack ); |
| 468 | + $stack[] = ( $left >= $right ) ? 1 : 0; |
| 469 | + break; |
| 470 | + case EXPR_NOTEQ: |
| 471 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 472 | + $right = array_pop( $stack ); |
| 473 | + $left = array_pop( $stack ); |
| 474 | + $stack[] = ( $left != $right ) ? 1 : 0; |
| 475 | + break; |
| 476 | + case EXPR_EXPONENT: |
| 477 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 478 | + $right = array_pop( $stack ); |
| 479 | + $left = array_pop( $stack ); |
| 480 | + $stack[] = $left * pow( 10, $right ); |
| 481 | + break; |
| 482 | + case EXPR_SINE: |
| 483 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 484 | + $arg = array_pop( $stack ); |
| 485 | + $stack[] = sin( $arg ); |
| 486 | + break; |
| 487 | + case EXPR_COSINE: |
| 488 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 489 | + $arg = array_pop( $stack ); |
| 490 | + $stack[] = cos( $arg ); |
| 491 | + break; |
| 492 | + case EXPR_TANGENS: |
| 493 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 494 | + $arg = array_pop( $stack ); |
| 495 | + $stack[] = tan( $arg ); |
| 496 | + break; |
| 497 | + case EXPR_ARCSINE: |
| 498 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 499 | + $arg = array_pop( $stack ); |
| 500 | + if ( $arg < -1 || $arg > 1 ) throw new ExprError( 'invalid_argument', $this->names[$op] ); |
| 501 | + $stack[] = asin( $arg ); |
| 502 | + break; |
| 503 | + case EXPR_ARCCOS: |
| 504 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 505 | + $arg = array_pop( $stack ); |
| 506 | + if ( $arg < -1 || $arg > 1 ) throw new ExprError( 'invalid_argument', $this->names[$op] ); |
| 507 | + $stack[] = acos( $arg ); |
| 508 | + break; |
| 509 | + case EXPR_ARCTAN: |
| 510 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 511 | + $arg = array_pop( $stack ); |
| 512 | + $stack[] = atan( $arg ); |
| 513 | + break; |
| 514 | + case EXPR_EXP: |
| 515 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 516 | + $arg = array_pop( $stack ); |
| 517 | + $stack[] = exp( $arg ); |
| 518 | + break; |
| 519 | + case EXPR_LN: |
| 520 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 521 | + $arg = array_pop( $stack ); |
| 522 | + if ( $arg <= 0 ) throw new ExprError( 'invalid_argument_ln', $this->names[$op] ); |
| 523 | + $stack[] = log( $arg ); |
| 524 | + break; |
| 525 | + case EXPR_ABS: |
| 526 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 527 | + $arg = array_pop( $stack ); |
| 528 | + $stack[] = abs( $arg ); |
| 529 | + break; |
| 530 | + case EXPR_FLOOR: |
| 531 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 532 | + $arg = array_pop( $stack ); |
| 533 | + $stack[] = floor( $arg ); |
| 534 | + break; |
| 535 | + case EXPR_TRUNC: |
| 536 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 537 | + $arg = array_pop( $stack ); |
| 538 | + $stack[] = (int)$arg; |
| 539 | + break; |
| 540 | + case EXPR_CEIL: |
| 541 | + if ( count( $stack ) < 1 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 542 | + $arg = array_pop( $stack ); |
| 543 | + $stack[] = ceil( $arg ); |
| 544 | + break; |
| 545 | + case EXPR_POW: |
| 546 | + if ( count( $stack ) < 2 ) throw new ExprError( 'missing_operand', $this->names[$op] ); |
| 547 | + $right = array_pop( $stack ); |
| 548 | + $left = array_pop( $stack ); |
| 549 | + if ( false === ( $stack[] = pow( $left, $right ) ) ) throw new ExprError( 'division_by_zero', $this->names[$op] ); |
| 550 | + break; |
| 551 | + default: |
| 552 | + // Should be impossible to reach here. |
| 553 | + throw new ExprError( 'unknown_error' ); |
| 554 | + } |
| 555 | + } |
| 556 | +} |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/Expr.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 557 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/testExpr.php |
— | — | @@ -0,0 +1,38 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +require_once ( getenv( 'MW_INSTALL_PATH' ) !== false |
| 5 | + ? getenv( 'MW_INSTALL_PATH' ) . "/maintenance/commandLine.inc" |
| 6 | + : dirname( __FILE__ ) . '/../../maintenance/commandLine.inc' ); |
| 7 | +require( 'Expr.php' ); |
| 8 | + |
| 9 | +$tests = file( 'exprTests.txt' ); |
| 10 | + |
| 11 | +$pass = $fail = 0; |
| 12 | + |
| 13 | +// Each test is on one line. The test must always evaluate to '1'. |
| 14 | +$parser = new ExprParser; |
| 15 | +foreach ( $tests as $test ) { |
| 16 | + $test = trim( $test ); |
| 17 | + if ( in_string( ';', $test ) ) |
| 18 | + list( $input, $expected ) = explode( ';', $test ); |
| 19 | + else { |
| 20 | + $input = $test; |
| 21 | + $expected = 1; |
| 22 | + } |
| 23 | + |
| 24 | + $expected = trim( $expected ); |
| 25 | + $input = trim( $input ); |
| 26 | + |
| 27 | + $result = $parser->doExpression( $input ); |
| 28 | + if ( $result != $expected ) { |
| 29 | + print |
| 30 | + "FAILING test -- $input |
| 31 | + gave a final result of $result, instead of $expected.\n"; |
| 32 | + $fail++; |
| 33 | + } else { |
| 34 | + print "PASSED test $test\n"; |
| 35 | + $pass++; |
| 36 | + } |
| 37 | +} |
| 38 | + |
| 39 | +print "Passed $pass tests, failed $fail tests, out of a total of " . ( $pass + $fail ) . "\n"; |
\ No newline at end of file |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/testExpr.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 40 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/COPYING |
— | — | @@ -0,0 +1,283 @@ |
| 2 | +The ParserFunctions extension may be copied and redistributed under the GNU |
| 3 | +General Public License. |
| 4 | + |
| 5 | +------------------------------------------------------------------------------- |
| 6 | + |
| 7 | + GNU GENERAL PUBLIC LICENSE |
| 8 | + Version 2, June 1991 |
| 9 | + |
| 10 | + Copyright (C) 1989, 1991 Free Software Foundation, Inc., |
| 11 | + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| 12 | + Everyone is permitted to copy and distribute verbatim copies |
| 13 | + of this license document, but changing it is not allowed. |
| 14 | + |
| 15 | + Preamble |
| 16 | + |
| 17 | + The licenses for most software are designed to take away your |
| 18 | +freedom to share and change it. By contrast, the GNU General Public |
| 19 | +License is intended to guarantee your freedom to share and change free |
| 20 | +software--to make sure the software is free for all its users. This |
| 21 | +General Public License applies to most of the Free Software |
| 22 | +Foundation's software and to any other program whose authors commit to |
| 23 | +using it. (Some other Free Software Foundation software is covered by |
| 24 | +the GNU Lesser General Public License instead.) You can apply it to |
| 25 | +your programs, too. |
| 26 | + |
| 27 | + When we speak of free software, we are referring to freedom, not |
| 28 | +price. Our General Public Licenses are designed to make sure that you |
| 29 | +have the freedom to distribute copies of free software (and charge for |
| 30 | +this service if you wish), that you receive source code or can get it |
| 31 | +if you want it, that you can change the software or use pieces of it |
| 32 | +in new free programs; and that you know you can do these things. |
| 33 | + |
| 34 | + To protect your rights, we need to make restrictions that forbid |
| 35 | +anyone to deny you these rights or to ask you to surrender the rights. |
| 36 | +These restrictions translate to certain responsibilities for you if you |
| 37 | +distribute copies of the software, or if you modify it. |
| 38 | + |
| 39 | + For example, if you distribute copies of such a program, whether |
| 40 | +gratis or for a fee, you must give the recipients all the rights that |
| 41 | +you have. You must make sure that they, too, receive or can get the |
| 42 | +source code. And you must show them these terms so they know their |
| 43 | +rights. |
| 44 | + |
| 45 | + We protect your rights with two steps: (1) copyright the software, and |
| 46 | +(2) offer you this license which gives you legal permission to copy, |
| 47 | +distribute and/or modify the software. |
| 48 | + |
| 49 | + Also, for each author's protection and ours, we want to make certain |
| 50 | +that everyone understands that there is no warranty for this free |
| 51 | +software. If the software is modified by someone else and passed on, we |
| 52 | +want its recipients to know that what they have is not the original, so |
| 53 | +that any problems introduced by others will not reflect on the original |
| 54 | +authors' reputations. |
| 55 | + |
| 56 | + Finally, any free program is threatened constantly by software |
| 57 | +patents. We wish to avoid the danger that redistributors of a free |
| 58 | +program will individually obtain patent licenses, in effect making the |
| 59 | +program proprietary. To prevent this, we have made it clear that any |
| 60 | +patent must be licensed for everyone's free use or not licensed at all. |
| 61 | + |
| 62 | + The precise terms and conditions for copying, distribution and |
| 63 | +modification follow. |
| 64 | + |
| 65 | + GNU GENERAL PUBLIC LICENSE |
| 66 | + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
| 67 | + |
| 68 | + 0. This License applies to any program or other work which contains |
| 69 | +a notice placed by the copyright holder saying it may be distributed |
| 70 | +under the terms of this General Public License. The "Program", below, |
| 71 | +refers to any such program or work, and a "work based on the Program" |
| 72 | +means either the Program or any derivative work under copyright law: |
| 73 | +that is to say, a work containing the Program or a portion of it, |
| 74 | +either verbatim or with modifications and/or translated into another |
| 75 | +language. (Hereinafter, translation is included without limitation in |
| 76 | +the term "modification".) Each licensee is addressed as "you". |
| 77 | + |
| 78 | +Activities other than copying, distribution and modification are not |
| 79 | +covered by this License; they are outside its scope. The act of |
| 80 | +running the Program is not restricted, and the output from the Program |
| 81 | +is covered only if its contents constitute a work based on the |
| 82 | +Program (independent of having been made by running the Program). |
| 83 | +Whether that is true depends on what the Program does. |
| 84 | + |
| 85 | + 1. You may copy and distribute verbatim copies of the Program's |
| 86 | +source code as you receive it, in any medium, provided that you |
| 87 | +conspicuously and appropriately publish on each copy an appropriate |
| 88 | +copyright notice and disclaimer of warranty; keep intact all the |
| 89 | +notices that refer to this License and to the absence of any warranty; |
| 90 | +and give any other recipients of the Program a copy of this License |
| 91 | +along with the Program. |
| 92 | + |
| 93 | +You may charge a fee for the physical act of transferring a copy, and |
| 94 | +you may at your option offer warranty protection in exchange for a fee. |
| 95 | + |
| 96 | + 2. You may modify your copy or copies of the Program or any portion |
| 97 | +of it, thus forming a work based on the Program, and copy and |
| 98 | +distribute such modifications or work under the terms of Section 1 |
| 99 | +above, provided that you also meet all of these conditions: |
| 100 | + |
| 101 | + a) You must cause the modified files to carry prominent notices |
| 102 | + stating that you changed the files and the date of any change. |
| 103 | + |
| 104 | + b) You must cause any work that you distribute or publish, that in |
| 105 | + whole or in part contains or is derived from the Program or any |
| 106 | + part thereof, to be licensed as a whole at no charge to all third |
| 107 | + parties under the terms of this License. |
| 108 | + |
| 109 | + c) If the modified program normally reads commands interactively |
| 110 | + when run, you must cause it, when started running for such |
| 111 | + interactive use in the most ordinary way, to print or display an |
| 112 | + announcement including an appropriate copyright notice and a |
| 113 | + notice that there is no warranty (or else, saying that you provide |
| 114 | + a warranty) and that users may redistribute the program under |
| 115 | + these conditions, and telling the user how to view a copy of this |
| 116 | + License. (Exception: if the Program itself is interactive but |
| 117 | + does not normally print such an announcement, your work based on |
| 118 | + the Program is not required to print an announcement.) |
| 119 | + |
| 120 | +These requirements apply to the modified work as a whole. If |
| 121 | +identifiable sections of that work are not derived from the Program, |
| 122 | +and can be reasonably considered independent and separate works in |
| 123 | +themselves, then this License, and its terms, do not apply to those |
| 124 | +sections when you distribute them as separate works. But when you |
| 125 | +distribute the same sections as part of a whole which is a work based |
| 126 | +on the Program, the distribution of the whole must be on the terms of |
| 127 | +this License, whose permissions for other licensees extend to the |
| 128 | +entire whole, and thus to each and every part regardless of who wrote it. |
| 129 | + |
| 130 | +Thus, it is not the intent of this section to claim rights or contest |
| 131 | +your rights to work written entirely by you; rather, the intent is to |
| 132 | +exercise the right to control the distribution of derivative or |
| 133 | +collective works based on the Program. |
| 134 | + |
| 135 | +In addition, mere aggregation of another work not based on the Program |
| 136 | +with the Program (or with a work based on the Program) on a volume of |
| 137 | +a storage or distribution medium does not bring the other work under |
| 138 | +the scope of this License. |
| 139 | + |
| 140 | + 3. You may copy and distribute the Program (or a work based on it, |
| 141 | +under Section 2) in object code or executable form under the terms of |
| 142 | +Sections 1 and 2 above provided that you also do one of the following: |
| 143 | + |
| 144 | + a) Accompany it with the complete corresponding machine-readable |
| 145 | + source code, which must be distributed under the terms of Sections |
| 146 | + 1 and 2 above on a medium customarily used for software interchange; or, |
| 147 | + |
| 148 | + b) Accompany it with a written offer, valid for at least three |
| 149 | + years, to give any third party, for a charge no more than your |
| 150 | + cost of physically performing source distribution, a complete |
| 151 | + machine-readable copy of the corresponding source code, to be |
| 152 | + distributed under the terms of Sections 1 and 2 above on a medium |
| 153 | + customarily used for software interchange; or, |
| 154 | + |
| 155 | + c) Accompany it with the information you received as to the offer |
| 156 | + to distribute corresponding source code. (This alternative is |
| 157 | + allowed only for noncommercial distribution and only if you |
| 158 | + received the program in object code or executable form with such |
| 159 | + an offer, in accord with Subsection b above.) |
| 160 | + |
| 161 | +The source code for a work means the preferred form of the work for |
| 162 | +making modifications to it. For an executable work, complete source |
| 163 | +code means all the source code for all modules it contains, plus any |
| 164 | +associated interface definition files, plus the scripts used to |
| 165 | +control compilation and installation of the executable. However, as a |
| 166 | +special exception, the source code distributed need not include |
| 167 | +anything that is normally distributed (in either source or binary |
| 168 | +form) with the major components (compiler, kernel, and so on) of the |
| 169 | +operating system on which the executable runs, unless that component |
| 170 | +itself accompanies the executable. |
| 171 | + |
| 172 | +If distribution of executable or object code is made by offering |
| 173 | +access to copy from a designated place, then offering equivalent |
| 174 | +access to copy the source code from the same place counts as |
| 175 | +distribution of the source code, even though third parties are not |
| 176 | +compelled to copy the source along with the object code. |
| 177 | + |
| 178 | + 4. You may not copy, modify, sublicense, or distribute the Program |
| 179 | +except as expressly provided under this License. Any attempt |
| 180 | +otherwise to copy, modify, sublicense or distribute the Program is |
| 181 | +void, and will automatically terminate your rights under this License. |
| 182 | +However, parties who have received copies, or rights, from you under |
| 183 | +this License will not have their licenses terminated so long as such |
| 184 | +parties remain in full compliance. |
| 185 | + |
| 186 | + 5. You are not required to accept this License, since you have not |
| 187 | +signed it. However, nothing else grants you permission to modify or |
| 188 | +distribute the Program or its derivative works. These actions are |
| 189 | +prohibited by law if you do not accept this License. Therefore, by |
| 190 | +modifying or distributing the Program (or any work based on the |
| 191 | +Program), you indicate your acceptance of this License to do so, and |
| 192 | +all its terms and conditions for copying, distributing or modifying |
| 193 | +the Program or works based on it. |
| 194 | + |
| 195 | + 6. Each time you redistribute the Program (or any work based on the |
| 196 | +Program), the recipient automatically receives a license from the |
| 197 | +original licensor to copy, distribute or modify the Program subject to |
| 198 | +these terms and conditions. You may not impose any further |
| 199 | +restrictions on the recipients' exercise of the rights granted herein. |
| 200 | +You are not responsible for enforcing compliance by third parties to |
| 201 | +this License. |
| 202 | + |
| 203 | + 7. If, as a consequence of a court judgment or allegation of patent |
| 204 | +infringement or for any other reason (not limited to patent issues), |
| 205 | +conditions are imposed on you (whether by court order, agreement or |
| 206 | +otherwise) that contradict the conditions of this License, they do not |
| 207 | +excuse you from the conditions of this License. If you cannot |
| 208 | +distribute so as to satisfy simultaneously your obligations under this |
| 209 | +License and any other pertinent obligations, then as a consequence you |
| 210 | +may not distribute the Program at all. For example, if a patent |
| 211 | +license would not permit royalty-free redistribution of the Program by |
| 212 | +all those who receive copies directly or indirectly through you, then |
| 213 | +the only way you could satisfy both it and this License would be to |
| 214 | +refrain entirely from distribution of the Program. |
| 215 | + |
| 216 | +If any portion of this section is held invalid or unenforceable under |
| 217 | +any particular circumstance, the balance of the section is intended to |
| 218 | +apply and the section as a whole is intended to apply in other |
| 219 | +circumstances. |
| 220 | + |
| 221 | +It is not the purpose of this section to induce you to infringe any |
| 222 | +patents or other property right claims or to contest validity of any |
| 223 | +such claims; this section has the sole purpose of protecting the |
| 224 | +integrity of the free software distribution system, which is |
| 225 | +implemented by public license practices. Many people have made |
| 226 | +generous contributions to the wide range of software distributed |
| 227 | +through that system in reliance on consistent application of that |
| 228 | +system; it is up to the author/donor to decide if he or she is willing |
| 229 | +to distribute software through any other system and a licensee cannot |
| 230 | +impose that choice. |
| 231 | + |
| 232 | +This section is intended to make thoroughly clear what is believed to |
| 233 | +be a consequence of the rest of this License. |
| 234 | + |
| 235 | + 8. If the distribution and/or use of the Program is restricted in |
| 236 | +certain countries either by patents or by copyrighted interfaces, the |
| 237 | +original copyright holder who places the Program under this License |
| 238 | +may add an explicit geographical distribution limitation excluding |
| 239 | +those countries, so that distribution is permitted only in or among |
| 240 | +countries not thus excluded. In such case, this License incorporates |
| 241 | +the limitation as if written in the body of this License. |
| 242 | + |
| 243 | + 9. The Free Software Foundation may publish revised and/or new versions |
| 244 | +of the General Public License from time to time. Such new versions will |
| 245 | +be similar in spirit to the present version, but may differ in detail to |
| 246 | +address new problems or concerns. |
| 247 | + |
| 248 | +Each version is given a distinguishing version number. If the Program |
| 249 | +specifies a version number of this License which applies to it and "any |
| 250 | +later version", you have the option of following the terms and conditions |
| 251 | +either of that version or of any later version published by the Free |
| 252 | +Software Foundation. If the Program does not specify a version number of |
| 253 | +this License, you may choose any version ever published by the Free Software |
| 254 | +Foundation. |
| 255 | + |
| 256 | + 10. If you wish to incorporate parts of the Program into other free |
| 257 | +programs whose distribution conditions are different, write to the author |
| 258 | +to ask for permission. For software which is copyrighted by the Free |
| 259 | +Software Foundation, write to the Free Software Foundation; we sometimes |
| 260 | +make exceptions for this. Our decision will be guided by the two goals |
| 261 | +of preserving the free status of all derivatives of our free software and |
| 262 | +of promoting the sharing and reuse of software generally. |
| 263 | + |
| 264 | + NO WARRANTY |
| 265 | + |
| 266 | + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
| 267 | +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
| 268 | +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
| 269 | +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
| 270 | +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| 271 | +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
| 272 | +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
| 273 | +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
| 274 | +REPAIR OR CORRECTION. |
| 275 | + |
| 276 | + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
| 277 | +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
| 278 | +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
| 279 | +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
| 280 | +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
| 281 | +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
| 282 | +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
| 283 | +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
| 284 | +POSSIBILITY OF SUCH DAMAGES. |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/COPYING |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 285 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/ParserFunctions.i18n.magic.php |
— | — | @@ -0,0 +1,431 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +$magicWords = array(); |
| 5 | + |
| 6 | +/** |
| 7 | + * English |
| 8 | + */ |
| 9 | + |
| 10 | +$magicWords = array(); |
| 11 | + |
| 12 | +/** English (English) */ |
| 13 | +$magicWords['en'] = array( |
| 14 | + 'expr' => array( 0, 'expr' ), |
| 15 | + 'if' => array( 0, 'if' ), |
| 16 | + 'ifeq' => array( 0, 'ifeq' ), |
| 17 | + 'ifexpr' => array( 0, 'ifexpr' ), |
| 18 | + 'iferror' => array( 0, 'iferror' ), |
| 19 | + 'switch' => array( 0, 'switch' ), |
| 20 | + 'default' => array( 0, '#default' ), |
| 21 | + 'ifexist' => array( 0, 'ifexist' ), |
| 22 | + 'time' => array( 0, 'time' ), |
| 23 | + 'timel' => array( 0, 'timel' ), |
| 24 | + 'rel2abs' => array( 0, 'rel2abs' ), |
| 25 | + 'titleparts' => array( 0, 'titleparts' ), |
| 26 | + 'len' => array( 0, 'len' ), |
| 27 | + 'pos' => array( 0, 'pos' ), |
| 28 | + 'rpos' => array( 0, 'rpos' ), |
| 29 | + 'sub' => array( 0, 'sub' ), |
| 30 | + 'count' => array( 0, 'count' ), |
| 31 | + 'replace' => array( 0, 'replace' ), |
| 32 | + 'explode' => array( 0, 'explode' ), |
| 33 | + 'urldecode' => array( 0, 'urldecode' ), |
| 34 | +); |
| 35 | + |
| 36 | +/** Arabic (العربية) */ |
| 37 | +$magicWords['ar'] = array( |
| 38 | + 'expr' => array( 0, 'تعبير', 'expr' ), |
| 39 | + 'if' => array( 0, 'لو', 'if' ), |
| 40 | + 'ifeq' => array( 0, 'لومعادلة', 'ifeq' ), |
| 41 | + 'ifexpr' => array( 0, 'لوتعبير', 'ifexpr' ), |
| 42 | + 'iferror' => array( 0, 'لوخطأ', 'iferror' ), |
| 43 | + 'switch' => array( 0, 'تبديل', 'switch' ), |
| 44 | + 'default' => array( 0, '#افتراضي', '#default' ), |
| 45 | + 'ifexist' => array( 0, 'لوموجود', 'ifexist' ), |
| 46 | + 'time' => array( 0, 'وقت', 'time' ), |
| 47 | + 'timel' => array( 0, 'تيمل', 'timel' ), |
| 48 | + 'rel2abs' => array( 0, 'ريلتوآبس', 'rel2abs' ), |
| 49 | + 'titleparts' => array( 0, 'أجزاء_العنوان', 'titleparts' ), |
| 50 | + 'len' => array( 0, 'لين', 'len' ), |
| 51 | + 'pos' => array( 0, 'بوس', 'pos' ), |
| 52 | + 'rpos' => array( 0, 'آربوس', 'rpos' ), |
| 53 | + 'sub' => array( 0, 'متفرع', 'sub' ), |
| 54 | + 'count' => array( 0, 'عدد', 'count' ), |
| 55 | + 'replace' => array( 0, 'استبدال', 'replace' ), |
| 56 | + 'explode' => array( 0, 'انفجار', 'explode' ), |
| 57 | + 'urldecode' => array( 0, 'فك_مسار', 'urldecode' ), |
| 58 | +); |
| 59 | + |
| 60 | +/** Egyptian Spoken Arabic (مصرى) */ |
| 61 | +$magicWords['arz'] = array( |
| 62 | + 'expr' => array( 0, 'تعبير', 'expr' ), |
| 63 | + 'if' => array( 0, 'لو', 'if' ), |
| 64 | + 'ifeq' => array( 0, 'لومعادلة', 'ifeq' ), |
| 65 | + 'ifexpr' => array( 0, 'لوتعبير', 'ifexpr' ), |
| 66 | + 'iferror' => array( 0, 'لوخطأ', 'iferror' ), |
| 67 | + 'switch' => array( 0, 'تبديل', 'switch' ), |
| 68 | + 'default' => array( 0, '#افتراضي', '#default' ), |
| 69 | + 'ifexist' => array( 0, 'لوموجود', 'ifexist' ), |
| 70 | + 'time' => array( 0, 'وقت', 'time' ), |
| 71 | + 'timel' => array( 0, 'تيمل', 'timel' ), |
| 72 | + 'rel2abs' => array( 0, 'ريلتوآبس', 'rel2abs' ), |
| 73 | + 'titleparts' => array( 0, 'أجزاء_العنوان', 'titleparts' ), |
| 74 | + 'len' => array( 0, 'لين', 'len' ), |
| 75 | + 'pos' => array( 0, 'بوس', 'pos' ), |
| 76 | + 'rpos' => array( 0, 'آربوس', 'rpos' ), |
| 77 | + 'sub' => array( 0, 'متفرع', 'sub' ), |
| 78 | + 'count' => array( 0, 'عدد', 'count' ), |
| 79 | + 'replace' => array( 0, 'استبدال', 'replace' ), |
| 80 | + 'explode' => array( 0, 'انفجار', 'explode' ), |
| 81 | +); |
| 82 | + |
| 83 | +/** Chechen (Нохчийн) */ |
| 84 | +$magicWords['ce'] = array( |
| 85 | + 'time' => array( 0, 'хан', 'time' ), |
| 86 | + 'replace' => array( 0, 'хийцарна', 'замена', 'replace' ), |
| 87 | +); |
| 88 | + |
| 89 | +/** Czech (Česky) */ |
| 90 | +$magicWords['cs'] = array( |
| 91 | + 'expr' => array( 0, 'výraz', 'expr' ), |
| 92 | + 'if' => array( 0, 'když', 'if' ), |
| 93 | + 'ifexist' => array( 0, 'kdyžexist', 'ifexist' ), |
| 94 | + 'time' => array( 0, 'čas', 'time' ), |
| 95 | + 'len' => array( 0, 'délka', 'len' ), |
| 96 | + 'count' => array( 0, 'počet', 'count' ), |
| 97 | + 'replace' => array( 0, 'nahradit', 'replace' ), |
| 98 | +); |
| 99 | + |
| 100 | +/** Esperanto (Esperanto) */ |
| 101 | +$magicWords['eo'] = array( |
| 102 | + 'expr' => array( 0, 'espr', 'esprimo' ), |
| 103 | + 'if' => array( 0, 'se' ), |
| 104 | + 'ifeq' => array( 0, 'seekv', 'seekvacio' ), |
| 105 | + 'ifexpr' => array( 0, 'seespr', 'seeksprimo' ), |
| 106 | + 'iferror' => array( 0, 'seeraras' ), |
| 107 | + 'switch' => array( 0, 'ŝaltu', 'ŝalti', 'sxaltu', 'sxalti' ), |
| 108 | + 'default' => array( 0, '#defaŭlte', '#defauxlte' ), |
| 109 | + 'ifexist' => array( 0, 'seekzistas' ), |
| 110 | + 'time' => array( 0, 'tempo' ), |
| 111 | + 'timel' => array( 0, 'tempoo' ), |
| 112 | +); |
| 113 | + |
| 114 | +/** Spanish (Español) */ |
| 115 | +$magicWords['es'] = array( |
| 116 | + 'if' => array( 0, 'si', 'if' ), |
| 117 | + 'ifexpr' => array( 0, 'siexpr', 'ifexpr' ), |
| 118 | + 'iferror' => array( 0, 'sierror', 'iferror' ), |
| 119 | + 'switch' => array( 0, 'según', 'switch' ), |
| 120 | + 'ifexist' => array( 0, 'siexiste', 'ifexist' ), |
| 121 | + 'time' => array( 0, 'tiempo', 'time' ), |
| 122 | + 'len' => array( 0, 'long', 'longitud', 'len' ), |
| 123 | + 'replace' => array( 0, 'reemplazar', 'replace' ), |
| 124 | + 'explode' => array( 0, 'separar', 'explode' ), |
| 125 | +); |
| 126 | + |
| 127 | +/** Persian (فارسی) */ |
| 128 | +$magicWords['fa'] = array( |
| 129 | + 'expr' => array( 0, 'حساب' ), |
| 130 | + 'if' => array( 0, 'اگر' ), |
| 131 | + 'ifeq' => array( 0, 'اگرمساوی' ), |
| 132 | + 'ifexpr' => array( 0, 'اگرحساب' ), |
| 133 | + 'iferror' => array( 0, 'اگرخطا' ), |
| 134 | + 'switch' => array( 0, 'گزینه' ), |
| 135 | + 'default' => array( 0, '#پیشفرض' ), |
| 136 | + 'ifexist' => array( 0, 'اگرموجود' ), |
| 137 | + 'time' => array( 0, 'زمان' ), |
| 138 | + 'timel' => array( 0, 'زمانبلند' ), |
| 139 | + 'rel2abs' => array( 0, 'نسبیبهمطلق' ), |
| 140 | + 'titleparts' => array( 0, 'پارهعنوان' ), |
| 141 | + 'len' => array( 0, 'طول' ), |
| 142 | + 'pos' => array( 0, 'جا' ), |
| 143 | + 'rpos' => array( 0, 'جار' ), |
| 144 | + 'sub' => array( 0, 'تکه' ), |
| 145 | + 'count' => array( 0, 'شمار' ), |
| 146 | + 'replace' => array( 0, 'جایگزین' ), |
| 147 | + 'explode' => array( 0, 'گسترش' ), |
| 148 | + 'urldecode' => array( 0, 'نشانیبیکد' ), |
| 149 | +); |
| 150 | + |
| 151 | +/** Hebrew (עברית) */ |
| 152 | +$magicWords['he'] = array( |
| 153 | + 'expr' => array( 0, 'חשב', 'expr' ), |
| 154 | + 'if' => array( 0, 'תנאי', 'if' ), |
| 155 | + 'ifeq' => array( 0, 'שווה', 'ifeq' ), |
| 156 | + 'ifexpr' => array( 0, 'חשב תנאי', 'ifexpr' ), |
| 157 | + 'iferror' => array( 0, 'תנאי שגיאה', 'iferror' ), |
| 158 | + 'switch' => array( 0, 'בחר', 'switch' ), |
| 159 | + 'default' => array( 0, '#ברירת מחדל', '#default' ), |
| 160 | + 'ifexist' => array( 0, 'קיים', 'ifexist' ), |
| 161 | + 'time' => array( 0, 'זמן', 'time' ), |
| 162 | + 'timel' => array( 0, 'זמןמ', 'timel' ), |
| 163 | + 'rel2abs' => array( 0, 'יחסי למוחלט', 'rel2abs' ), |
| 164 | + 'titleparts' => array( 0, 'חלק בכותרת', 'titleparts' ), |
| 165 | +); |
| 166 | + |
| 167 | +/** Hungarian (Magyar) */ |
| 168 | +$magicWords['hu'] = array( |
| 169 | + 'expr' => array( 0, 'kif', 'expr' ), |
| 170 | + 'if' => array( 0, 'ha', 'if' ), |
| 171 | + 'ifeq' => array( 0, 'haegyenlő', 'ifeq' ), |
| 172 | + 'ifexpr' => array( 0, 'hakif', 'ifexpr' ), |
| 173 | + 'iferror' => array( 0, 'hahibás', 'iferror' ), |
| 174 | + 'default' => array( 0, '#alapértelmezett', '#default' ), |
| 175 | + 'ifexist' => array( 0, 'halétezik', 'ifexist' ), |
| 176 | + 'time' => array( 0, 'idő', 'time' ), |
| 177 | + 'len' => array( 0, 'hossz', 'len' ), |
| 178 | + 'pos' => array( 0, 'pozíció', 'pos' ), |
| 179 | + 'rpos' => array( 0, 'jpozíció', 'rpos' ), |
| 180 | +); |
| 181 | + |
| 182 | +/** Indonesian (Bahasa Indonesia) */ |
| 183 | +$magicWords['id'] = array( |
| 184 | + 'expr' => array( 0, 'hitung', 'expr' ), |
| 185 | + 'if' => array( 0, 'jika', 'if' ), |
| 186 | + 'ifeq' => array( 0, 'jikasama', 'ifeq' ), |
| 187 | + 'ifexpr' => array( 0, 'jikahitung', 'ifexpr' ), |
| 188 | + 'iferror' => array( 0, 'jikasalah', 'iferror' ), |
| 189 | + 'switch' => array( 0, 'pilih', 'switch' ), |
| 190 | + 'default' => array( 0, '#baku', '#default' ), |
| 191 | + 'ifexist' => array( 0, 'jikaada', 'ifexist' ), |
| 192 | + 'time' => array( 0, 'waktu', 'time' ), |
| 193 | + 'timel' => array( 0, 'waktu1', 'timel' ), |
| 194 | + 'titleparts' => array( 0, 'bagianjudul', 'titleparts' ), |
| 195 | +); |
| 196 | + |
| 197 | +/** Igbo (Igbo) */ |
| 198 | +$magicWords['ig'] = array( |
| 199 | + 'if' => array( 0, 'ȯ_bú', 'if' ), |
| 200 | + 'time' => array( 0, 'ógè', 'time' ), |
| 201 | + 'timel' => array( 0, 'ógèl', 'timel' ), |
| 202 | +); |
| 203 | + |
| 204 | +/** Italian (Italiano) */ |
| 205 | +$magicWords['it'] = array( |
| 206 | + 'ifexist' => array( 0, 'ifexists' ), |
| 207 | +); |
| 208 | + |
| 209 | +/** Japanese (日本語) */ |
| 210 | +$magicWords['ja'] = array( |
| 211 | + 'expr' => array( 0, '式' ), |
| 212 | + 'if' => array( 0, 'もし' ), |
| 213 | + 'ifeq' => array( 0, 'もし等しい' ), |
| 214 | + 'ifexpr' => array( 0, 'もし式' ), |
| 215 | + 'iferror' => array( 0, 'もしエラー' ), |
| 216 | + 'switch' => array( 0, '切り替え' ), |
| 217 | + 'default' => array( 0, '#既定' ), |
| 218 | + 'ifexist' => array( 0, 'もし存在' ), |
| 219 | + 'time' => array( 0, '時間' ), |
| 220 | + 'timel' => array( 0, '時間地方' ), |
| 221 | + 'rel2abs' => array( 0, '参照から絶対' ), |
| 222 | + 'titleparts' => array( 0, 'タイトル部分' ), |
| 223 | + 'len' => array( 0, '長さ' ), |
| 224 | + 'pos' => array( 0, '位置' ), |
| 225 | + 'rpos' => array( 0, '最後の位置' ), |
| 226 | + 'sub' => array( 0, '切り取り' ), |
| 227 | + 'count' => array( 0, '回数' ), |
| 228 | + 'replace' => array( 0, '置き換え' ), |
| 229 | + 'explode' => array( 0, '分割' ), |
| 230 | + 'urldecode' => array( 0, 'URLデコード' ), |
| 231 | +); |
| 232 | + |
| 233 | +/** Korean (한국어) */ |
| 234 | +$magicWords['ko'] = array( |
| 235 | + 'expr' => array( 0, '수식' ), |
| 236 | + 'switch' => array( 0, '스위치' ), |
| 237 | + 'default' => array( 0, '#기본값' ), |
| 238 | + 'time' => array( 0, '시간' ), |
| 239 | + 'timel' => array( 0, '지역시간' ), |
| 240 | + 'len' => array( 0, '길이' ), |
| 241 | + 'count' => array( 0, '개수' ), |
| 242 | + 'replace' => array( 0, '교체' ), |
| 243 | + 'explode' => array( 0, '분리' ), |
| 244 | + 'urldecode' => array( 0, '주소디코딩:' ), |
| 245 | +); |
| 246 | + |
| 247 | +/** Ladino (Ladino) */ |
| 248 | +$magicWords['lad'] = array( |
| 249 | + 'switch' => array( 0, 'asegún', 'según', 'switch' ), |
| 250 | +); |
| 251 | + |
| 252 | +/** Malagasy (Malagasy) */ |
| 253 | +$magicWords['mg'] = array( |
| 254 | + 'if' => array( 0, 'raha', 'if' ), |
| 255 | + 'ifeq' => array( 0, 'rahamitovy', 'ifeq' ), |
| 256 | + 'ifexpr' => array( 0, 'rahamarina', 'ifexpr' ), |
| 257 | + 'iferror' => array( 0, 'rahadiso', 'iferror' ), |
| 258 | + 'default' => array( 0, '#tsipalotra', '#default' ), |
| 259 | + 'ifexist' => array( 0, 'rahamisy', 'ifexist' ), |
| 260 | + 'time' => array( 0, 'lera', 'time' ), |
| 261 | +); |
| 262 | + |
| 263 | +/** Malayalam (മലയാളം) */ |
| 264 | +$magicWords['ml'] = array( |
| 265 | + 'if' => array( 0, 'എങ്കിൽ' ), |
| 266 | + 'ifeq' => array( 0, 'സമെമെങ്കിൽ' ), |
| 267 | + 'ifexpr' => array( 0, 'എക്സ്പ്രെഷനെങ്കിൽ' ), |
| 268 | + 'iferror' => array( 0, 'പിഴവെങ്കിൽ' ), |
| 269 | + 'switch' => array( 0, 'മാറ്റുക' ), |
| 270 | + 'default' => array( 0, '#സ്വതവേ' ), |
| 271 | + 'ifexist' => array( 0, 'ഉണ്ടെങ്കിൽ' ), |
| 272 | + 'time' => array( 0, 'സമയം' ), |
| 273 | + 'timel' => array( 0, 'സമയം|' ), |
| 274 | + 'sub' => array( 0, 'ഉപം' ), |
| 275 | + 'count' => array( 0, 'എണ്ണുക' ), |
| 276 | + 'replace' => array( 0, 'മാറ്റിച്ചേർക്കുക' ), |
| 277 | + 'explode' => array( 0, 'വിസ്ഫോടനം' ), |
| 278 | +); |
| 279 | + |
| 280 | +/** Marathi (मराठी) */ |
| 281 | +$magicWords['mr'] = array( |
| 282 | + 'expr' => array( 0, 'करण', 'expr' ), |
| 283 | + 'if' => array( 0, 'जर', 'इफ', 'if' ), |
| 284 | + 'ifeq' => array( 0, 'जरसम', 'ifeq' ), |
| 285 | + 'ifexpr' => array( 0, 'जरकरण', 'ifexpr' ), |
| 286 | + 'iferror' => array( 0, 'जरत्रुटी', 'iferror' ), |
| 287 | + 'switch' => array( 0, 'कळ', 'सांगकळ', 'असेलतरसांग', 'असलेतरसांग', 'स्वीच', 'switch' ), |
| 288 | + 'default' => array( 0, '#अविचल', '#default' ), |
| 289 | + 'ifexist' => array( 0, 'जरअसेल', 'जरआहे', 'ifexist' ), |
| 290 | + 'time' => array( 0, 'वेळ', 'time' ), |
| 291 | + 'timel' => array( 0, 'वेळस्था', 'timel' ), |
| 292 | + 'titleparts' => array( 0, 'शीर्षकखंड', 'टाइटलपार्ट्स', 'titleparts' ), |
| 293 | + 'len' => array( 0, 'लांबी', 'len' ), |
| 294 | + 'pos' => array( 0, 'स्थशोध', 'pos' ), |
| 295 | + 'rpos' => array( 0, 'माग्चास्थशोध', 'rpos' ), |
| 296 | + 'sub' => array( 0, 'उप', 'sub' ), |
| 297 | + 'count' => array( 0, 'मोज', 'मोजा', 'count' ), |
| 298 | + 'replace' => array( 0, 'नेबदल', 'रिप्लेस', 'replace' ), |
| 299 | + 'explode' => array( 0, 'एकफोड', 'explode' ), |
| 300 | +); |
| 301 | + |
| 302 | +/** Nedersaksisch (Nedersaksisch) */ |
| 303 | +$magicWords['nds-nl'] = array( |
| 304 | + 'if' => array( 0, 'as', 'als', 'if' ), |
| 305 | + 'ifeq' => array( 0, 'asgelieke', 'alsgelijk', 'ifeq' ), |
| 306 | + 'ifexpr' => array( 0, 'asexpressie', 'alsexpressie', 'ifexpr' ), |
| 307 | + 'iferror' => array( 0, 'asfout', 'alsfout', 'iferror' ), |
| 308 | + 'default' => array( 0, '#standard', '#standaard', '#default' ), |
| 309 | + 'ifexist' => array( 0, 'asbesteet', 'alsbestaat', 'ifexist' ), |
| 310 | + 'time' => array( 0, 'tied', 'tijd', 'time' ), |
| 311 | + 'timel' => array( 0, 'tiedl', 'tijdl', 'timel' ), |
| 312 | + 'rel2abs' => array( 0, 'relatiefnaorabseluut', 'relatiefnaarabsoluut', 'rel2abs' ), |
| 313 | +); |
| 314 | + |
| 315 | +/** Dutch (Nederlands) */ |
| 316 | +$magicWords['nl'] = array( |
| 317 | + 'expr' => array( 0, 'expressie' ), |
| 318 | + 'if' => array( 0, 'als' ), |
| 319 | + 'ifeq' => array( 0, 'alsgelijk' ), |
| 320 | + 'ifexpr' => array( 0, 'alsexpressie' ), |
| 321 | + 'iferror' => array( 0, 'alsfout' ), |
| 322 | + 'switch' => array( 0, 'schakelen' ), |
| 323 | + 'default' => array( 0, '#standaard' ), |
| 324 | + 'ifexist' => array( 0, 'alsbestaat' ), |
| 325 | + 'time' => array( 0, 'tijd' ), |
| 326 | + 'timel' => array( 0, 'tijdl' ), |
| 327 | + 'rel2abs' => array( 0, 'relatiefnaarabsoluut' ), |
| 328 | + 'titleparts' => array( 0, 'paginanaamdelen' ), |
| 329 | + 'count' => array( 0, 'telling' ), |
| 330 | + 'replace' => array( 0, 'vervangen' ), |
| 331 | + 'explode' => array( 0, 'exploderen' ), |
| 332 | +); |
| 333 | + |
| 334 | +/** Norwegian Nynorsk (Norsk (nynorsk)) */ |
| 335 | +$magicWords['nn'] = array( |
| 336 | + 'expr' => array( 0, 'uttrykk', 'expr' ), |
| 337 | + 'if' => array( 0, 'om', 'if' ), |
| 338 | + 'ifeq' => array( 0, 'omlik', 'ifeq' ), |
| 339 | + 'ifexpr' => array( 0, 'omuttrykk', 'ifexpr' ), |
| 340 | + 'iferror' => array( 0, 'omfeil', 'iferror' ), |
| 341 | + 'switch' => array( 0, 'byt', 'switch' ), |
| 342 | + 'ifexist' => array( 0, 'omfinst', 'ifexist' ), |
| 343 | + 'time' => array( 0, 'tid', 'time' ), |
| 344 | + 'timel' => array( 0, 'tidl', 'timel' ), |
| 345 | + 'rel2abs' => array( 0, 'reltilabs', 'rel2abs' ), |
| 346 | + 'titleparts' => array( 0, 'titteldelar', 'titleparts' ), |
| 347 | + 'len' => array( 0, 'lengd', 'len' ), |
| 348 | + 'replace' => array( 0, 'erstatt', 'replace' ), |
| 349 | +); |
| 350 | + |
| 351 | +/** Pashto (پښتو) */ |
| 352 | +$magicWords['ps'] = array( |
| 353 | + 'if' => array( 0, 'که', 'if' ), |
| 354 | + 'time' => array( 0, 'وخت', 'time' ), |
| 355 | + 'count' => array( 0, 'شمېرل', 'count' ), |
| 356 | +); |
| 357 | + |
| 358 | +/** Portuguese (Português) */ |
| 359 | +$magicWords['pt'] = array( |
| 360 | + 'if' => array( 0, 'se', 'if' ), |
| 361 | + 'ifeq' => array( 0, 'seigual', 'ifeq' ), |
| 362 | + 'ifexpr' => array( 0, 'seexpr', 'ifexpr' ), |
| 363 | + 'iferror' => array( 0, 'seerro', 'iferror' ), |
| 364 | + 'default' => array( 0, '#padrão', '#padrao', '#default' ), |
| 365 | + 'ifexist' => array( 0, 'seexiste', 'ifexist' ), |
| 366 | + 'titleparts' => array( 0, 'partesdotítulo', 'partesdotitulo', 'titleparts' ), |
| 367 | + 'len' => array( 0, 'comprimento', 'len' ), |
| 368 | +); |
| 369 | + |
| 370 | +/** Russian (Русский) */ |
| 371 | +$magicWords['ru'] = array( |
| 372 | + 'replace' => array( 0, 'замена', 'replace' ), |
| 373 | +); |
| 374 | + |
| 375 | +/** Swedish (Svenska) */ |
| 376 | +$magicWords['sv'] = array( |
| 377 | + 'expr' => array( 0, 'utr', 'expr' ), |
| 378 | + 'if' => array( 0, 'om', 'if' ), |
| 379 | + 'ifeq' => array( 0, 'omlika', 'ifeq' ), |
| 380 | + 'ifexpr' => array( 0, 'omutr', 'ifexpr' ), |
| 381 | + 'iferror' => array( 0, 'omfel', 'iferror' ), |
| 382 | + 'switch' => array( 0, 'växel', 'switch' ), |
| 383 | + 'default' => array( 0, '#standard', '#default' ), |
| 384 | + 'ifexist' => array( 0, 'omfinns', 'ifexist' ), |
| 385 | + 'time' => array( 0, 'tid', 'time' ), |
| 386 | + 'timel' => array( 0, 'tidl', 'timel' ), |
| 387 | + 'replace' => array( 0, 'ersätt', 'replace' ), |
| 388 | + 'explode' => array( 0, 'explodera', 'explode' ), |
| 389 | +); |
| 390 | + |
| 391 | +/** Tamil (தமிழ்) */ |
| 392 | +$magicWords['ta'] = array( |
| 393 | + 'count' => array( 0, 'எண்ணிக்கை' ), |
| 394 | +); |
| 395 | + |
| 396 | +/** Turkish (Türkçe) */ |
| 397 | +$magicWords['tr'] = array( |
| 398 | + 'expr' => array( 0, 'işlem', 'expr' ), |
| 399 | + 'if' => array( 0, 'eğer', 'if' ), |
| 400 | + 'switch' => array( 0, 'değiştir', 'switch' ), |
| 401 | + 'default' => array( 0, '#vas', '#default' ), |
| 402 | +); |
| 403 | + |
| 404 | +/** Ukrainian (Українська) */ |
| 405 | +$magicWords['uk'] = array( |
| 406 | + 'expr' => array( 0, 'вираз', 'expr' ), |
| 407 | + 'if' => array( 0, 'якщо', 'if' ), |
| 408 | + 'ifeq' => array( 0, 'якщорівні', 'рівні', 'ifeq' ), |
| 409 | + 'ifexpr' => array( 0, 'якщовираз', 'ifexpr' ), |
| 410 | + 'iferror' => array( 0, 'якщопомилка', 'iferror' ), |
| 411 | + 'switch' => array( 0, 'вибірка', 'switch' ), |
| 412 | + 'default' => array( 0, '#інакше', '#default' ), |
| 413 | + 'ifexist' => array( 0, 'якщоіснує', 'ifexist' ), |
| 414 | +); |
| 415 | + |
| 416 | +/** Vietnamese (Tiếng Việt) */ |
| 417 | +$magicWords['vi'] = array( |
| 418 | + 'expr' => array( 0, 'côngthức' ), |
| 419 | +); |
| 420 | + |
| 421 | +/** Yiddish (ייִדיש) */ |
| 422 | +$magicWords['yi'] = array( |
| 423 | + 'expr' => array( 0, 'רעכן', 'חשב' ), |
| 424 | + 'if' => array( 0, 'תנאי' ), |
| 425 | + 'ifeq' => array( 0, 'גלייך', 'שווה' ), |
| 426 | + 'ifexpr' => array( 0, 'אויברעכן', 'חשב_תנאי' ), |
| 427 | + 'switch' => array( 0, 'קלייב', 'בחר' ), |
| 428 | + 'default' => array( 0, '#גרונט', '#ברירת_מחדל' ), |
| 429 | + 'ifexist' => array( 0, 'עקזיסט', 'קיים' ), |
| 430 | + 'time' => array( 0, 'צייט', 'זמן' ), |
| 431 | + 'timel' => array( 0, 'צייטל', 'זמןמ' ), |
| 432 | +); |
\ No newline at end of file |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/ParserFunctions.i18n.magic.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 433 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/ParserFunctions_body.php |
— | — | @@ -0,0 +1,781 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class ExtParserFunctions { |
| 5 | + var $mExprParser; |
| 6 | + var $mTimeCache = array(); |
| 7 | + var $mTimeChars = 0; |
| 8 | + var $mMaxTimeChars = 6000; # ~10 seconds |
| 9 | + |
| 10 | + function clearState( $parser ) { |
| 11 | + $this->mTimeChars = 0; |
| 12 | + $parser->pf_ifexist_breakdown = array(); |
| 13 | + $parser->pf_markerRegex = null; |
| 14 | + return true; |
| 15 | + } |
| 16 | + |
| 17 | + /** |
| 18 | + * Get the marker regex. Cached. |
| 19 | + */ |
| 20 | + function getMarkerRegex( $parser ) { |
| 21 | + if ( isset( $parser->pf_markerRegex ) ) { |
| 22 | + return $parser->pf_markerRegex; |
| 23 | + } |
| 24 | + |
| 25 | + wfProfileIn( __METHOD__ ); |
| 26 | + |
| 27 | + $prefix = preg_quote( $parser->uniqPrefix(), '/' ); |
| 28 | + |
| 29 | + // The first line represents Parser from release 1.12 forward. |
| 30 | + // subsequent lines are hacks to accomodate old Mediawiki versions. |
| 31 | + if ( defined( 'Parser::MARKER_SUFFIX' ) ) |
| 32 | + $suffix = preg_quote( Parser::MARKER_SUFFIX, '/' ); |
| 33 | + elseif ( isset( $parser->mMarkerSuffix ) ) |
| 34 | + $suffix = preg_quote( $parser->mMarkerSuffix, '/' ); |
| 35 | + elseif ( defined( 'MW_PARSER_VERSION' ) && |
| 36 | + strcmp( MW_PARSER_VERSION, '1.6.1' ) > 0 ) |
| 37 | + $suffix = "QINU\x07"; |
| 38 | + else $suffix = 'QINU'; |
| 39 | + |
| 40 | + $parser->pf_markerRegex = '/' . $prefix . '(?:(?!' . $suffix . ').)*' . $suffix . '/us'; |
| 41 | + |
| 42 | + wfProfileOut( __METHOD__ ); |
| 43 | + return $parser->pf_markerRegex; |
| 44 | + } |
| 45 | + |
| 46 | + // Removes unique markers from passed parameters, used by string functions. |
| 47 | + private function killMarkers ( $parser, $text ) { |
| 48 | + return preg_replace( $this->getMarkerRegex( $parser ), '' , $text ); |
| 49 | + } |
| 50 | + |
| 51 | + function &getExprParser() { |
| 52 | + if ( !isset( $this->mExprParser ) ) { |
| 53 | + if ( !class_exists( 'ExprParser' ) ) { |
| 54 | + require( dirname( __FILE__ ) . '/Expr.php' ); |
| 55 | + } |
| 56 | + $this->mExprParser = new ExprParser; |
| 57 | + } |
| 58 | + return $this->mExprParser; |
| 59 | + } |
| 60 | + |
| 61 | + function expr( $parser, $expr = '' ) { |
| 62 | + try { |
| 63 | + return $this->getExprParser()->doExpression( $expr ); |
| 64 | + } catch ( ExprError $e ) { |
| 65 | + return $e->getMessage(); |
| 66 | + } |
| 67 | + } |
| 68 | + |
| 69 | + function ifexpr( $parser, $expr = '', $then = '', $else = '' ) { |
| 70 | + try { |
| 71 | + $ret = $this->getExprParser()->doExpression( $expr ); |
| 72 | + if ( is_numeric( $ret ) ) { |
| 73 | + $ret = floatval( $ret ); |
| 74 | + } |
| 75 | + if ( $ret ) { |
| 76 | + return $then; |
| 77 | + } else { |
| 78 | + return $else; |
| 79 | + } |
| 80 | + } catch ( ExprError $e ) { |
| 81 | + return $e->getMessage(); |
| 82 | + } |
| 83 | + } |
| 84 | + |
| 85 | + function ifexprObj( $parser, $frame, $args ) { |
| 86 | + $expr = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : ''; |
| 87 | + $then = isset( $args[1] ) ? $args[1] : ''; |
| 88 | + $else = isset( $args[2] ) ? $args[2] : ''; |
| 89 | + $result = $this->ifexpr( $parser, $expr, $then, $else ); |
| 90 | + if ( is_object( $result ) ) { |
| 91 | + $result = trim( $frame->expand( $result ) ); |
| 92 | + } |
| 93 | + return $result; |
| 94 | + } |
| 95 | + |
| 96 | + function ifHook( $parser, $test = '', $then = '', $else = '' ) { |
| 97 | + if ( $test !== '' ) { |
| 98 | + return $then; |
| 99 | + } else { |
| 100 | + return $else; |
| 101 | + } |
| 102 | + } |
| 103 | + |
| 104 | + function ifObj( $parser, $frame, $args ) { |
| 105 | + $test = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : ''; |
| 106 | + if ( $test !== '' ) { |
| 107 | + return isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : ''; |
| 108 | + } else { |
| 109 | + return isset( $args[2] ) ? trim( $frame->expand( $args[2] ) ) : ''; |
| 110 | + } |
| 111 | + } |
| 112 | + |
| 113 | + function ifeq( $parser, $left = '', $right = '', $then = '', $else = '' ) { |
| 114 | + if ( $left == $right ) { |
| 115 | + return $then; |
| 116 | + } else { |
| 117 | + return $else; |
| 118 | + } |
| 119 | + } |
| 120 | + |
| 121 | + function ifeqObj( $parser, $frame, $args ) { |
| 122 | + $left = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : ''; |
| 123 | + $right = isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : ''; |
| 124 | + if ( $left == $right ) { |
| 125 | + return isset( $args[2] ) ? trim( $frame->expand( $args[2] ) ) : ''; |
| 126 | + } else { |
| 127 | + return isset( $args[3] ) ? trim( $frame->expand( $args[3] ) ) : ''; |
| 128 | + } |
| 129 | + } |
| 130 | + |
| 131 | + function iferror( $parser, $test = '', $then = '', $else = false ) { |
| 132 | + if ( preg_match( '/<(?:strong|span|p|div)\s(?:[^\s>]*\s+)*?class="(?:[^"\s>]*\s+)*?error(?:\s[^">]*)?"/', $test ) ) { |
| 133 | + return $then; |
| 134 | + } elseif ( $else === false ) { |
| 135 | + return $test; |
| 136 | + } else { |
| 137 | + return $else; |
| 138 | + } |
| 139 | + } |
| 140 | + |
| 141 | + function iferrorObj( $parser, $frame, $args ) { |
| 142 | + $test = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : ''; |
| 143 | + $then = isset( $args[1] ) ? $args[1] : false; |
| 144 | + $else = isset( $args[2] ) ? $args[2] : false; |
| 145 | + $result = $this->iferror( $parser, $test, $then, $else ); |
| 146 | + if ( $result === false ) { |
| 147 | + return ''; |
| 148 | + } else { |
| 149 | + return trim( $frame->expand( $result ) ); |
| 150 | + } |
| 151 | + } |
| 152 | + |
| 153 | + function switchHook( $parser /*,...*/ ) { |
| 154 | + $args = func_get_args(); |
| 155 | + array_shift( $args ); |
| 156 | + $primary = trim( array_shift( $args ) ); |
| 157 | + $found = $defaultFound = false; |
| 158 | + $parts = null; |
| 159 | + $default = null; |
| 160 | + $mwDefault =& MagicWord::get( 'default' ); |
| 161 | + foreach ( $args as $arg ) { |
| 162 | + $parts = array_map( 'trim', explode( '=', $arg, 2 ) ); |
| 163 | + if ( count( $parts ) == 2 ) { |
| 164 | + # Found "=" |
| 165 | + if ( $found || $parts[0] == $primary ) { |
| 166 | + # Found a match, return now |
| 167 | + return $parts[1]; |
| 168 | + } elseif ( $defaultFound || $mwDefault->matchStartAndRemove( $parts[0] ) ) { |
| 169 | + $default = $parts[1]; |
| 170 | + } # else wrong case, continue |
| 171 | + } elseif ( count( $parts ) == 1 ) { |
| 172 | + # Multiple input, single output |
| 173 | + # If the value matches, set a flag and continue |
| 174 | + if ( $parts[0] == $primary ) { |
| 175 | + $found = true; |
| 176 | + } elseif ( $mwDefault->matchStartAndRemove( $parts[0] ) ) { |
| 177 | + $defaultFound = true; |
| 178 | + } |
| 179 | + } # else RAM corruption due to cosmic ray? |
| 180 | + } |
| 181 | + # Default case |
| 182 | + # Check if the last item had no = sign, thus specifying the default case |
| 183 | + if ( count( $parts ) == 1 ) { |
| 184 | + return $parts[0]; |
| 185 | + } elseif ( !is_null( $default ) ) { |
| 186 | + return $default; |
| 187 | + } else { |
| 188 | + return ''; |
| 189 | + } |
| 190 | + } |
| 191 | + |
| 192 | + function switchObj( $parser, $frame, $args ) { |
| 193 | + if ( count( $args ) == 0 ) { |
| 194 | + return ''; |
| 195 | + } |
| 196 | + $primary = trim( $frame->expand( array_shift( $args ) ) ); |
| 197 | + $found = $defaultFound = false; |
| 198 | + $default = null; |
| 199 | + $lastItemHadNoEquals = false; |
| 200 | + $mwDefault =& MagicWord::get( 'default' ); |
| 201 | + foreach ( $args as $arg ) { |
| 202 | + $bits = $arg->splitArg(); |
| 203 | + $nameNode = $bits['name']; |
| 204 | + $index = $bits['index']; |
| 205 | + $valueNode = $bits['value']; |
| 206 | + |
| 207 | + if ( $index === '' ) { |
| 208 | + # Found "=" |
| 209 | + $lastItemHadNoEquals = false; |
| 210 | + if ( $found ) { |
| 211 | + # Multiple input match |
| 212 | + return trim( $frame->expand( $valueNode ) ); |
| 213 | + } else { |
| 214 | + $test = trim( $frame->expand( $nameNode ) ); |
| 215 | + if ( $test == $primary ) { |
| 216 | + # Found a match, return now |
| 217 | + return trim( $frame->expand( $valueNode ) ); |
| 218 | + } elseif ( $defaultFound || $mwDefault->matchStartAndRemove( $test ) ) { |
| 219 | + $default = $valueNode; |
| 220 | + } # else wrong case, continue |
| 221 | + } |
| 222 | + } else { |
| 223 | + # Multiple input, single output |
| 224 | + # If the value matches, set a flag and continue |
| 225 | + $lastItemHadNoEquals = true; |
| 226 | + $test = trim( $frame->expand( $valueNode ) ); |
| 227 | + if ( $test == $primary ) { |
| 228 | + $found = true; |
| 229 | + } elseif ( $mwDefault->matchStartAndRemove( $test ) ) { |
| 230 | + $defaultFound = true; |
| 231 | + } |
| 232 | + } |
| 233 | + } |
| 234 | + # Default case |
| 235 | + # Check if the last item had no = sign, thus specifying the default case |
| 236 | + if ( $lastItemHadNoEquals ) { |
| 237 | + return $test; |
| 238 | + } elseif ( !is_null( $default ) ) { |
| 239 | + return trim( $frame->expand( $default ) ); |
| 240 | + } else { |
| 241 | + return ''; |
| 242 | + } |
| 243 | + } |
| 244 | + |
| 245 | + /** |
| 246 | + * Returns the absolute path to a subpage, relative to the current article |
| 247 | + * title. Treats titles as slash-separated paths. |
| 248 | + * |
| 249 | + * Following subpage link syntax instead of standard path syntax, an |
| 250 | + * initial slash is treated as a relative path, and vice versa. |
| 251 | + */ |
| 252 | + public function rel2abs( $parser , $to = '' , $from = '' ) { |
| 253 | + |
| 254 | + $from = trim( $from ); |
| 255 | + if ( $from == '' ) { |
| 256 | + $from = $parser->getTitle()->getPrefixedText(); |
| 257 | + } |
| 258 | + |
| 259 | + $to = rtrim( $to , ' /' ); |
| 260 | + |
| 261 | + // if we have an empty path, or just one containing a dot |
| 262 | + if ( $to == '' || $to == '.' ) { |
| 263 | + return $from; |
| 264 | + } |
| 265 | + |
| 266 | + // if the path isn't relative |
| 267 | + if ( substr( $to , 0 , 1 ) != '/' && |
| 268 | + substr( $to , 0 , 2 ) != './' && |
| 269 | + substr( $to , 0 , 3 ) != '../' && |
| 270 | + $to != '..' ) |
| 271 | + { |
| 272 | + $from = ''; |
| 273 | + } |
| 274 | + // Make a long path, containing both, enclose it in /.../ |
| 275 | + $fullPath = '/' . $from . '/' . $to . '/'; |
| 276 | + |
| 277 | + // remove redundant current path dots |
| 278 | + $fullPath = preg_replace( '!/(\./)+!', '/', $fullPath ); |
| 279 | + |
| 280 | + // remove double slashes |
| 281 | + $fullPath = preg_replace( '!/{2,}!', '/', $fullPath ); |
| 282 | + |
| 283 | + // remove the enclosing slashes now |
| 284 | + $fullPath = trim( $fullPath , '/' ); |
| 285 | + $exploded = explode ( '/' , $fullPath ); |
| 286 | + $newExploded = array(); |
| 287 | + |
| 288 | + foreach ( $exploded as $current ) { |
| 289 | + if ( $current == '..' ) { // removing one level |
| 290 | + if ( !count( $newExploded ) ) { |
| 291 | + // attempted to access a node above root node |
| 292 | + return '<strong class="error">' . wfMsgForContent( 'pfunc_rel2abs_invalid_depth', $fullPath ) . '</strong>'; |
| 293 | + } |
| 294 | + // remove last level from the stack |
| 295 | + array_pop( $newExploded ); |
| 296 | + } else { |
| 297 | + // add the current level to the stack |
| 298 | + $newExploded[] = $current; |
| 299 | + } |
| 300 | + } |
| 301 | + |
| 302 | + // we can now join it again |
| 303 | + return implode( '/' , $newExploded ); |
| 304 | + } |
| 305 | + |
| 306 | + function incrementIfexistCount( $parser, $frame ) { |
| 307 | + // Don't let this be called more than a certain number of times. It tends to make the database explode. |
| 308 | + global $wgExpensiveParserFunctionLimit; |
| 309 | + $parser->mExpensiveFunctionCount++; |
| 310 | + if ( $frame ) { |
| 311 | + $pdbk = $frame->getPDBK( 1 ); |
| 312 | + if ( !isset( $parser->pf_ifexist_breakdown[$pdbk] ) ) { |
| 313 | + $parser->pf_ifexist_breakdown[$pdbk] = 0; |
| 314 | + } |
| 315 | + $parser->pf_ifexist_breakdown[$pdbk] ++; |
| 316 | + } |
| 317 | + return $parser->mExpensiveFunctionCount <= $wgExpensiveParserFunctionLimit; |
| 318 | + } |
| 319 | + |
| 320 | + function ifexist( $parser, $title = '', $then = '', $else = '' ) { |
| 321 | + return $this->ifexistCommon( $parser, false, $title, $then, $else ); |
| 322 | + } |
| 323 | + |
| 324 | + function ifexistCommon( $parser, $frame, $titletext = '', $then = '', $else = '' ) { |
| 325 | + global $wgContLang; |
| 326 | + $title = Title::newFromText( $titletext ); |
| 327 | + $wgContLang->findVariantLink( $titletext, $title, true ); |
| 328 | + if ( $title ) { |
| 329 | + if ( $title->getNamespace() == NS_MEDIA ) { |
| 330 | + /* If namespace is specified as NS_MEDIA, then we want to |
| 331 | + * check the physical file, not the "description" page. |
| 332 | + */ |
| 333 | + if ( !$this->incrementIfexistCount( $parser, $frame ) ) { |
| 334 | + return $else; |
| 335 | + } |
| 336 | + $file = wfFindFile( $title ); |
| 337 | + if ( !$file ) { |
| 338 | + return $else; |
| 339 | + } |
| 340 | + $parser->mOutput->addImage( $file->getName() ); |
| 341 | + return $file->exists() ? $then : $else; |
| 342 | + } elseif ( $title->getNamespace() == NS_SPECIAL ) { |
| 343 | + /* Don't bother with the count for special pages, |
| 344 | + * since their existence can be checked without |
| 345 | + * accessing the database. |
| 346 | + */ |
| 347 | + return SpecialPage::exists( $title->getDBkey() ) ? $then : $else; |
| 348 | + } elseif ( $title->isExternal() ) { |
| 349 | + /* Can't check the existence of pages on other sites, |
| 350 | + * so just return $else. Makes a sort of sense, since |
| 351 | + * they don't exist _locally_. |
| 352 | + */ |
| 353 | + return $else; |
| 354 | + } else { |
| 355 | + $pdbk = $title->getPrefixedDBkey(); |
| 356 | + $lc = LinkCache::singleton(); |
| 357 | + if ( !$this->incrementIfexistCount( $parser, $frame ) ) { |
| 358 | + return $else; |
| 359 | + } |
| 360 | + if ( 0 != ( $id = $lc->getGoodLinkID( $pdbk ) ) ) { |
| 361 | + $parser->mOutput->addLink( $title, $id ); |
| 362 | + return $then; |
| 363 | + } elseif ( $lc->isBadLink( $pdbk ) ) { |
| 364 | + $parser->mOutput->addLink( $title, 0 ); |
| 365 | + return $else; |
| 366 | + } |
| 367 | + $id = $title->getArticleID(); |
| 368 | + $parser->mOutput->addLink( $title, $id ); |
| 369 | + if ( $id ) { |
| 370 | + return $then; |
| 371 | + } |
| 372 | + } |
| 373 | + } |
| 374 | + return $else; |
| 375 | + } |
| 376 | + |
| 377 | + function ifexistObj( $parser, $frame, $args ) { |
| 378 | + $title = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : ''; |
| 379 | + $then = isset( $args[1] ) ? $args[1] : null; |
| 380 | + $else = isset( $args[2] ) ? $args[2] : null; |
| 381 | + |
| 382 | + $result = $this->ifexistCommon( $parser, $frame, $title, $then, $else ); |
| 383 | + if ( $result === null ) { |
| 384 | + return ''; |
| 385 | + } else { |
| 386 | + return trim( $frame->expand( $result ) ); |
| 387 | + } |
| 388 | + } |
| 389 | + |
| 390 | + function time( $parser, $format = '', $date = '', $local = false ) { |
| 391 | + global $wgContLang, $wgLocaltimezone; |
| 392 | + if ( isset( $this->mTimeCache[$format][$date][$local] ) ) { |
| 393 | + return $this->mTimeCache[$format][$date][$local]; |
| 394 | + } |
| 395 | + |
| 396 | + # compute the timestamp string $ts |
| 397 | + # PHP >= 5.2 can handle dates before 1970 or after 2038 using the DateTime object |
| 398 | + # PHP < 5.2 is limited to dates between 1970 and 2038 |
| 399 | + |
| 400 | + $invalidTime = false; |
| 401 | + |
| 402 | + if ( class_exists( 'DateTime' ) ) { # PHP >= 5.2 |
| 403 | + # the DateTime constructor must be used because it throws exceptions |
| 404 | + # when errors occur, whereas date_create appears to just output a warning |
| 405 | + # that can't really be detected from within the code |
| 406 | + try { |
| 407 | + # Determine timezone |
| 408 | + if ( $local ) { |
| 409 | + # convert to MediaWiki local timezone if set |
| 410 | + if ( isset( $wgLocaltimezone ) ) { |
| 411 | + $tz = new DateTimeZone( $wgLocaltimezone ); |
| 412 | + } else { |
| 413 | + $tz = new DateTimeZone( date_default_timezone_get() ); |
| 414 | + } |
| 415 | + } else { |
| 416 | + # if local time was not requested, convert to UTC |
| 417 | + $tz = new DateTimeZone( 'UTC' ); |
| 418 | + } |
| 419 | + |
| 420 | + # Correct for DateTime interpreting 'XXXX' as XX:XX o'clock |
| 421 | + if ( preg_match( '/^[0-9]{4}$/', $date ) ) { |
| 422 | + $date = '00:00 '.$date; |
| 423 | + } |
| 424 | + |
| 425 | + # Parse date |
| 426 | + if ( $date !== '' ) { |
| 427 | + $dateObject = new DateTime( $date, $tz ); |
| 428 | + } else { |
| 429 | + # use current date and time |
| 430 | + $dateObject = new DateTime( 'now', $tz ); |
| 431 | + } |
| 432 | + |
| 433 | + # Generate timestamp |
| 434 | + $ts = $dateObject->format( 'YmdHis' ); |
| 435 | + } catch ( Exception $ex ) { |
| 436 | + $invalidTime = true; |
| 437 | + } |
| 438 | + } else { # PHP < 5.2 |
| 439 | + if ( $date !== '' ) { |
| 440 | + $unix = @strtotime( $date ); |
| 441 | + } else { |
| 442 | + $unix = time(); |
| 443 | + } |
| 444 | + |
| 445 | + if ( $unix == -1 || $unix == false ) { |
| 446 | + $invalidTime = true; |
| 447 | + } else { |
| 448 | + if ( $local ) { |
| 449 | + # Use the time zone |
| 450 | + if ( isset( $wgLocaltimezone ) ) { |
| 451 | + $oldtz = getenv( 'TZ' ); |
| 452 | + putenv( 'TZ=' . $wgLocaltimezone ); |
| 453 | + } |
| 454 | + wfSuppressWarnings(); // E_STRICT system time bitching |
| 455 | + $ts = date( 'YmdHis', $unix ); |
| 456 | + wfRestoreWarnings(); |
| 457 | + if ( isset( $wgLocaltimezone ) ) { |
| 458 | + putenv( 'TZ=' . $oldtz ); |
| 459 | + } |
| 460 | + } else { |
| 461 | + $ts = wfTimestamp( TS_MW, $unix ); |
| 462 | + } |
| 463 | + } |
| 464 | + } |
| 465 | + |
| 466 | + # format the timestamp and return the result |
| 467 | + if ( $invalidTime ) { |
| 468 | + $result = '<strong class="error">' . wfMsgForContent( 'pfunc_time_error' ) . '</strong>'; |
| 469 | + } else { |
| 470 | + $this->mTimeChars += strlen( $format ); |
| 471 | + if ( $this->mTimeChars > $this->mMaxTimeChars ) { |
| 472 | + return '<strong class="error">' . wfMsgForContent( 'pfunc_time_too_long' ) . '</strong>'; |
| 473 | + } else { |
| 474 | + $result = $wgContLang->sprintfDate( $format, $ts ); |
| 475 | + } |
| 476 | + } |
| 477 | + $this->mTimeCache[$format][$date][$local] = $result; |
| 478 | + return $result; |
| 479 | + } |
| 480 | + |
| 481 | + function localTime( $parser, $format = '', $date = '' ) { |
| 482 | + return $this->time( $parser, $format, $date, true ); |
| 483 | + } |
| 484 | + |
| 485 | + /** |
| 486 | + * Obtain a specified number of slash-separated parts of a title, |
| 487 | + * e.g. {{#titleparts:Hello/World|1}} => "Hello" |
| 488 | + * |
| 489 | + * @param Parser $parser Parent parser |
| 490 | + * @param string $title Title to split |
| 491 | + * @param int $parts Number of parts to keep |
| 492 | + * @param int $offset Offset starting at 1 |
| 493 | + * @return string |
| 494 | + */ |
| 495 | + public function titleparts( $parser, $title = '', $parts = 0, $offset = 0 ) { |
| 496 | + $parts = intval( $parts ); |
| 497 | + $offset = intval( $offset ); |
| 498 | + $ntitle = Title::newFromText( $title ); |
| 499 | + if ( $ntitle instanceof Title ) { |
| 500 | + $bits = explode( '/', $ntitle->getPrefixedText(), 25 ); |
| 501 | + if ( count( $bits ) <= 0 ) { |
| 502 | + return $ntitle->getPrefixedText(); |
| 503 | + } else { |
| 504 | + if ( $offset > 0 ) { |
| 505 | + --$offset; |
| 506 | + } |
| 507 | + if ( $parts == 0 ) { |
| 508 | + return implode( '/', array_slice( $bits, $offset ) ); |
| 509 | + } else { |
| 510 | + return implode( '/', array_slice( $bits, $offset, $parts ) ); |
| 511 | + } |
| 512 | + } |
| 513 | + } else { |
| 514 | + return $title; |
| 515 | + } |
| 516 | + } |
| 517 | + |
| 518 | + // Verifies parameter is less than max string length. |
| 519 | + private function checkLength( $text ) { |
| 520 | + global $wgPFStringLengthLimit; |
| 521 | + return ( mb_strlen( $text ) < $wgPFStringLengthLimit ); |
| 522 | + } |
| 523 | + |
| 524 | + // Generates error message. Called when string is too long. |
| 525 | + private function tooLongError() { |
| 526 | + global $wgPFStringLengthLimit, $wgContLang; |
| 527 | + return '<strong class="error">' . |
| 528 | + wfMsgExt( 'pfunc_string_too_long', |
| 529 | + array( 'escape', 'parsemag', 'content' ), |
| 530 | + $wgContLang->formatNum( $wgPFStringLengthLimit ) ) . |
| 531 | + '</strong>'; |
| 532 | + } |
| 533 | + |
| 534 | + /** |
| 535 | + * {{#len:string}} |
| 536 | + * |
| 537 | + * Reports number of characters in string. |
| 538 | + */ |
| 539 | + function runLen ( $parser, $inStr = '' ) { |
| 540 | + wfProfileIn( __METHOD__ ); |
| 541 | + |
| 542 | + $inStr = $this->killMarkers( $parser, (string)$inStr ); |
| 543 | + $len = mb_strlen( $inStr ); |
| 544 | + |
| 545 | + wfProfileOut( __METHOD__ ); |
| 546 | + return $len; |
| 547 | + } |
| 548 | + |
| 549 | + /** |
| 550 | + * {{#pos: string | needle | offset}} |
| 551 | + * |
| 552 | + * Finds first occurrence of "needle" in "string" starting at "offset". |
| 553 | + * |
| 554 | + * Note: If the needle is an empty string, single space is used instead. |
| 555 | + * Note: If the needle is not found, empty string is returned. |
| 556 | + */ |
| 557 | + function runPos ( $parser, $inStr = '', $inNeedle = '', $inOffset = 0 ) { |
| 558 | + wfProfileIn( __METHOD__ ); |
| 559 | + |
| 560 | + $inStr = $this->killMarkers( $parser, (string)$inStr ); |
| 561 | + $inNeedle = $this->killMarkers( $parser, (string)$inNeedle ); |
| 562 | + |
| 563 | + if ( !$this->checkLength( $inStr ) || |
| 564 | + !$this->checkLength( $inNeedle ) ) { |
| 565 | + wfProfileOut( __METHOD__ ); |
| 566 | + return $this->tooLongError(); |
| 567 | + } |
| 568 | + |
| 569 | + if ( $inNeedle == '' ) { $inNeedle = ' '; } |
| 570 | + |
| 571 | + $pos = mb_strpos( $inStr, $inNeedle, $inOffset ); |
| 572 | + if ( $pos === false ) { $pos = ""; } |
| 573 | + |
| 574 | + wfProfileOut( __METHOD__ ); |
| 575 | + return $pos; |
| 576 | + } |
| 577 | + |
| 578 | + /** |
| 579 | + * {{#rpos: string | needle}} |
| 580 | + * |
| 581 | + * Finds last occurrence of "needle" in "string". |
| 582 | + * |
| 583 | + * Note: If the needle is an empty string, single space is used instead. |
| 584 | + * Note: If the needle is not found, -1 is returned. |
| 585 | + */ |
| 586 | + function runRPos ( $parser, $inStr = '', $inNeedle = '' ) { |
| 587 | + wfProfileIn( __METHOD__ ); |
| 588 | + |
| 589 | + $inStr = $this->killMarkers( $parser, (string)$inStr ); |
| 590 | + $inNeedle = $this->killMarkers( $parser, (string)$inNeedle ); |
| 591 | + |
| 592 | + if ( !$this->checkLength( $inStr ) || |
| 593 | + !$this->checkLength( $inNeedle ) ) { |
| 594 | + wfProfileOut( __METHOD__ ); |
| 595 | + return $this->tooLongError(); |
| 596 | + } |
| 597 | + |
| 598 | + if ( $inNeedle == '' ) { $inNeedle = ' '; } |
| 599 | + |
| 600 | + $pos = mb_strrpos( $inStr, $inNeedle ); |
| 601 | + if ( $pos === false ) { $pos = -1; } |
| 602 | + |
| 603 | + wfProfileOut( __METHOD__ ); |
| 604 | + return $pos; |
| 605 | + } |
| 606 | + |
| 607 | + /** |
| 608 | + * {{#sub: string | start | length }} |
| 609 | + * |
| 610 | + * Returns substring of "string" starting at "start" and having |
| 611 | + * "length" characters. |
| 612 | + * |
| 613 | + * Note: If length is zero, the rest of the input is returned. |
| 614 | + * Note: A negative value for "start" operates from the end of the |
| 615 | + * "string". |
| 616 | + * Note: A negative value for "length" returns a string reduced in |
| 617 | + * length by that amount. |
| 618 | + */ |
| 619 | + function runSub ( $parser, $inStr = '', $inStart = 0, $inLength = 0 ) { |
| 620 | + wfProfileIn( __METHOD__ ); |
| 621 | + |
| 622 | + $inStr = $this->killMarkers( $parser, (string)$inStr ); |
| 623 | + |
| 624 | + if ( !$this->checkLength( $inStr ) ) { |
| 625 | + wfProfileOut( __METHOD__ ); |
| 626 | + return $this->tooLongError(); |
| 627 | + } |
| 628 | + |
| 629 | + if ( intval( $inLength ) == 0 ) { |
| 630 | + $result = mb_substr( $inStr, $inStart ); |
| 631 | + } else { |
| 632 | + $result = mb_substr( $inStr, $inStart, $inLength ); |
| 633 | + } |
| 634 | + |
| 635 | + wfProfileOut( __METHOD__ ); |
| 636 | + return $result; |
| 637 | + } |
| 638 | + |
| 639 | + /** |
| 640 | + * {{#count: string | substr }} |
| 641 | + * |
| 642 | + * Returns number of occurrences of "substr" in "string". |
| 643 | + * |
| 644 | + * Note: If "substr" is empty, a single space is used. |
| 645 | + */ |
| 646 | + function runCount ( $parser, $inStr = '', $inSubStr = '' ) { |
| 647 | + wfProfileIn( __METHOD__ ); |
| 648 | + |
| 649 | + $inStr = $this->killMarkers( $parser, (string)$inStr ); |
| 650 | + $inSubStr = $this->killMarkers( $parser, (string)$inSubStr ); |
| 651 | + |
| 652 | + if ( !$this->checkLength( $inStr ) || |
| 653 | + !$this->checkLength( $inSubStr ) ) { |
| 654 | + wfProfileOut( __METHOD__ ); |
| 655 | + return $this->tooLongError(); |
| 656 | + } |
| 657 | + |
| 658 | + if ( $inSubStr == '' ) { $inSubStr = ' '; } |
| 659 | + |
| 660 | + $result = mb_substr_count( $inStr, $inSubStr ); |
| 661 | + |
| 662 | + wfProfileOut( __METHOD__ ); |
| 663 | + return $result; |
| 664 | + } |
| 665 | + |
| 666 | + /** |
| 667 | + * {{#replace:string | from | to | limit }} |
| 668 | + * |
| 669 | + * Replaces each occurrence of "from" in "string" with "to". |
| 670 | + * At most "limit" replacements are performed. |
| 671 | + * |
| 672 | + * Note: Armored against replacements that would generate huge strings. |
| 673 | + * Note: If "from" is an empty string, single space is used instead. |
| 674 | + */ |
| 675 | + function runReplace( $parser, $inStr = '', |
| 676 | + $inReplaceFrom = '', $inReplaceTo = '', $inLimit = -1 ) { |
| 677 | + global $wgPFStringLengthLimit; |
| 678 | + wfProfileIn( __METHOD__ ); |
| 679 | + |
| 680 | + $inStr = $this->killMarkers( $parser, (string)$inStr ); |
| 681 | + $inReplaceFrom = $this->killMarkers( $parser, (string)$inReplaceFrom ); |
| 682 | + $inReplaceTo = $this->killMarkers( $parser, (string)$inReplaceTo ); |
| 683 | + |
| 684 | + if ( !$this->checkLength( $inStr ) || |
| 685 | + !$this->checkLength( $inReplaceFrom ) || |
| 686 | + !$this->checkLength( $inReplaceTo ) ) { |
| 687 | + wfProfileOut( __METHOD__ ); |
| 688 | + return $this->tooLongError(); |
| 689 | + } |
| 690 | + |
| 691 | + if ( $inReplaceFrom == '' ) { $inReplaceFrom = ' '; } |
| 692 | + |
| 693 | + // Precompute limit to avoid generating enormous string: |
| 694 | + $diff = mb_strlen( $inReplaceTo ) - mb_strlen( $inReplaceFrom ); |
| 695 | + if ( $diff > 0 ) { |
| 696 | + $limit = ( ( $wgPFStringLengthLimit - mb_strlen( $inStr ) ) / $diff ) + 1; |
| 697 | + } else { |
| 698 | + $limit = -1; |
| 699 | + } |
| 700 | + |
| 701 | + $inLimit = intval( $inLimit ); |
| 702 | + if ( $inLimit >= 0 ) { |
| 703 | + if ( $limit > $inLimit || $limit == -1 ) { $limit = $inLimit; } |
| 704 | + } |
| 705 | + |
| 706 | + // Use regex to allow limit and handle UTF-8 correctly. |
| 707 | + $inReplaceFrom = preg_quote( $inReplaceFrom, '/' ); |
| 708 | + $inReplaceTo = StringUtils::escapeRegexReplacement( $inReplaceTo ); |
| 709 | + |
| 710 | + $result = preg_replace( '/' . $inReplaceFrom . '/u', |
| 711 | + $inReplaceTo, $inStr, $limit ); |
| 712 | + |
| 713 | + if ( !$this->checkLength( $result ) ) { |
| 714 | + wfProfileOut( __METHOD__ ); |
| 715 | + return $this->tooLongError(); |
| 716 | + } |
| 717 | + |
| 718 | + wfProfileOut( __METHOD__ ); |
| 719 | + return $result; |
| 720 | + } |
| 721 | + |
| 722 | + |
| 723 | + /** |
| 724 | + * {{#explode:string | delimiter | position | limit}} |
| 725 | + * |
| 726 | + * Breaks "string" into chunks separated by "delimiter" and returns the |
| 727 | + * chunk identified by "position". |
| 728 | + * |
| 729 | + * Note: Negative position can be used to specify tokens from the end. |
| 730 | + * Note: If the divider is an empty string, single space is used instead. |
| 731 | + * Note: Empty string is returned if there are not enough exploded chunks. |
| 732 | + */ |
| 733 | + function runExplode ( $parser, $inStr = '', $inDiv = '', $inPos = 0, $inLim = null ) { |
| 734 | + wfProfileIn( __METHOD__ ); |
| 735 | + |
| 736 | + $inStr = $this->killMarkers( $parser, (string)$inStr ); |
| 737 | + $inDiv = $this->killMarkers( $parser, (string)$inDiv ); |
| 738 | + |
| 739 | + if ( $inDiv == '' ) { $inDiv = ' '; } |
| 740 | + |
| 741 | + if ( !$this->checkLength( $inStr ) || |
| 742 | + !$this->checkLength( $inDiv ) ) { |
| 743 | + wfProfileOut( __METHOD__ ); |
| 744 | + return $this->tooLongError(); |
| 745 | + } |
| 746 | + |
| 747 | + $inDiv = preg_quote( $inDiv, '/' ); |
| 748 | + |
| 749 | + $matches = preg_split( '/' . $inDiv . '/u', $inStr, $inLim ); |
| 750 | + |
| 751 | + if ( $inPos >= 0 && isset( $matches[$inPos] ) ) { |
| 752 | + $result = $matches[$inPos]; |
| 753 | + } elseif ( $inPos < 0 && isset( $matches[count( $matches ) + $inPos] ) ) { |
| 754 | + $result = $matches[count( $matches ) + $inPos]; |
| 755 | + } else { |
| 756 | + $result = ''; |
| 757 | + } |
| 758 | + |
| 759 | + wfProfileOut( __METHOD__ ); |
| 760 | + return $result; |
| 761 | + } |
| 762 | + |
| 763 | + /** |
| 764 | + * {{#urldecode:string}} |
| 765 | + * |
| 766 | + * Decodes URL-encoded (like%20that) strings. |
| 767 | + */ |
| 768 | + function runUrlDecode( $parser, $inStr = '' ) { |
| 769 | + wfProfileIn( __METHOD__ ); |
| 770 | + |
| 771 | + $inStr = $this->killMarkers( $parser, (string)$inStr ); |
| 772 | + if ( !$this->checkLength( $inStr ) ) { |
| 773 | + wfProfileOut( __METHOD__ ); |
| 774 | + return $this->tooLongError(); |
| 775 | + } |
| 776 | + |
| 777 | + $result = urldecode( $inStr ); |
| 778 | + |
| 779 | + wfProfileOut( __METHOD__ ); |
| 780 | + return $result; |
| 781 | + } |
| 782 | +} |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/ParserFunctions_body.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 783 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/ParserFunctions.i18n.php |
— | — | @@ -0,0 +1,2355 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Internationalisation file for extension ParserFunctions. |
| 5 | + * |
| 6 | + * @file |
| 7 | + * @ingroup Extensions |
| 8 | + */ |
| 9 | + |
| 10 | +$messages = array(); |
| 11 | + |
| 12 | +$messages['en'] = array( |
| 13 | + 'pfunc_desc' => 'Enhance parser with logical functions', |
| 14 | + 'pfunc_time_error' => 'Error: invalid time', |
| 15 | + 'pfunc_time_too_long' => 'Error: too many #time calls', |
| 16 | + 'pfunc_rel2abs_invalid_depth' => 'Error: Invalid depth in path: "$1" (tried to access a node above the root node)', |
| 17 | + 'pfunc_expr_stack_exhausted' => 'Expression error: Stack exhausted', |
| 18 | + 'pfunc_expr_unexpected_number' => 'Expression error: Unexpected number', |
| 19 | + 'pfunc_expr_preg_match_failure' => 'Expression error: Unexpected preg_match failure', |
| 20 | + 'pfunc_expr_unrecognised_word' => 'Expression error: Unrecognised word "$1"', |
| 21 | + 'pfunc_expr_unexpected_operator' => 'Expression error: Unexpected $1 operator', |
| 22 | + 'pfunc_expr_missing_operand' => 'Expression error: Missing operand for $1', |
| 23 | + 'pfunc_expr_unexpected_closing_bracket' => 'Expression error: Unexpected closing bracket', |
| 24 | + 'pfunc_expr_unrecognised_punctuation' => 'Expression error: Unrecognised punctuation character "$1"', |
| 25 | + 'pfunc_expr_unclosed_bracket' => 'Expression error: Unclosed bracket', |
| 26 | + 'pfunc_expr_division_by_zero' => 'Division by zero', |
| 27 | + 'pfunc_expr_invalid_argument' => 'Invalid argument for $1: < -1 or > 1', |
| 28 | + 'pfunc_expr_invalid_argument_ln' => 'Invalid argument for ln: <= 0', |
| 29 | + 'pfunc_expr_unknown_error' => 'Expression error: Unknown error ($1)', |
| 30 | + 'pfunc_expr_not_a_number' => 'In $1: result is not a number', |
| 31 | + 'pfunc_string_too_long' => 'Error: String exceeds $1 character limit', |
| 32 | +); |
| 33 | + |
| 34 | +/** Message documentation (Message documentation) |
| 35 | + * @author Jon Harald Søby |
| 36 | + * @author Meno25 |
| 37 | + * @author Siebrand |
| 38 | + * @author The Evil IP address |
| 39 | + */ |
| 40 | +$messages['qqq'] = array( |
| 41 | + 'pfunc_desc' => '{{desc}}', |
| 42 | + 'pfunc_expr_division_by_zero' => '{{Identical|Divizion by zero}}', |
| 43 | + 'pfunc_string_too_long' => 'PLURAL is supported for $1.', |
| 44 | +); |
| 45 | + |
| 46 | +/** Afrikaans (Afrikaans) |
| 47 | + * @author Naudefj |
| 48 | + */ |
| 49 | +$messages['af'] = array( |
| 50 | + 'pfunc_desc' => 'Verryk die ontleder met logiese funksies', |
| 51 | + 'pfunc_time_error' => 'Fout: ongeldige tyd', |
| 52 | + 'pfunc_time_too_long' => 'Fout: #time te veel kere geroep', |
| 53 | + 'pfunc_rel2abs_invalid_depth' => 'Fout: Ongeldige diepte in pad: "$1" (probeer \'n node bo die wortelnode te roep)', |
| 54 | + 'pfunc_expr_stack_exhausted' => 'Fout in uitdrukking: stack uitgeput', |
| 55 | + 'pfunc_expr_unexpected_number' => 'Fout in uitdrukking: onverwagte getal', |
| 56 | + 'pfunc_expr_preg_match_failure' => 'Fout in uitdrukking: onverwagte faling van preg_match', |
| 57 | + 'pfunc_expr_unrecognised_word' => 'Fout in uitdrukking: woord "$1" nie herken', |
| 58 | + 'pfunc_expr_unexpected_operator' => 'Fout in uitdrukking: onverwagte operateur $1', |
| 59 | + 'pfunc_expr_missing_operand' => 'Fout in uitdrukking: geen operand vir $1', |
| 60 | + 'pfunc_expr_unexpected_closing_bracket' => 'Fout in uitdrukking: hakkie onverwags gesluit', |
| 61 | + 'pfunc_expr_unrecognised_punctuation' => 'Fout in uitdrukking: onbekende leesteken "$1"', |
| 62 | + 'pfunc_expr_unclosed_bracket' => 'Fout in uitdrukking: hakkie nie gesluit nie', |
| 63 | + 'pfunc_expr_division_by_zero' => 'Deling deur nul', |
| 64 | + 'pfunc_expr_invalid_argument' => 'Ongeldige argument vir $1: < -1 of > 1', |
| 65 | + 'pfunc_expr_invalid_argument_ln' => 'Ongeldige argument vir ln: <= 0', |
| 66 | + 'pfunc_expr_unknown_error' => 'Fout in uitdrukking: onbekende fout ($1)', |
| 67 | + 'pfunc_expr_not_a_number' => "In $1: resultaat is nie 'n getal nie", |
| 68 | + 'pfunc_string_too_long' => 'Fout: String oorskry $1 karakter limiet', |
| 69 | +); |
| 70 | + |
| 71 | +/** Gheg Albanian (Gegë) |
| 72 | + * @author Mdupont |
| 73 | + */ |
| 74 | +$messages['aln'] = array( |
| 75 | + 'pfunc_desc' => 'Enhance parser me funksione logjike', |
| 76 | + 'pfunc_time_error' => 'Gabim: koha e pavlefshme', |
| 77 | + 'pfunc_time_too_long' => 'Gabim: kohë shumë # thirrjet', |
| 78 | + 'pfunc_rel2abs_invalid_depth' => 'Gabim: thellësia e pavlefshme në rrugën: "$1" (u përpoq për të hyrë në një nyjë mbi nyjen e rrënjë)', |
| 79 | + 'pfunc_expr_stack_exhausted' => 'gabim Shprehja: qipi rraskapitur', |
| 80 | + 'pfunc_expr_unexpected_number' => 'gabim Shprehja: Numri i papritur', |
| 81 | +); |
| 82 | + |
| 83 | +/** Aragonese (Aragonés) |
| 84 | + * @author Juanpabl |
| 85 | + */ |
| 86 | +$messages['an'] = array( |
| 87 | + 'pfunc_desc' => 'Amillorar o parseyador con funcions lochicas', |
| 88 | + 'pfunc_time_error' => 'Error: tiempo incorreuto', |
| 89 | + 'pfunc_time_too_long' => 'Error: masiadas cridas #time', |
| 90 | + 'pfunc_rel2abs_invalid_depth' => 'Error: Fondura incorreuta en o camín: "$1" (ha prebato d\'acceder ta un nodo por dencima d\'o nodo radiz)', |
| 91 | + 'pfunc_expr_stack_exhausted' => "Error d'expresión: Pila acotolada", |
| 92 | + 'pfunc_expr_unexpected_number' => "Error d'expresión: numero no asperato", |
| 93 | + 'pfunc_expr_preg_match_failure' => "Error d'expresión: fallo de preg_match no asperato", |
| 94 | + 'pfunc_expr_unrecognised_word' => 'Error d\'expresión: parola "$1" no reconoixita', |
| 95 | + 'pfunc_expr_unexpected_operator' => "Error d'expresión: operador $1 no asperato", |
| 96 | + 'pfunc_expr_missing_operand' => "Error d'expresión: a $1 li falta un operando", |
| 97 | + 'pfunc_expr_unexpected_closing_bracket' => "Error d'expresión: zarradura d'o gafet no asperata", |
| 98 | + 'pfunc_expr_unrecognised_punctuation' => 'Error d\'expresión: carácter de puntuación "$1" no reconoixito', |
| 99 | + 'pfunc_expr_unclosed_bracket' => "Error d'expresión: gafet sin zarrar", |
| 100 | + 'pfunc_expr_division_by_zero' => 'División por zero', |
| 101 | + 'pfunc_expr_invalid_argument' => 'Argumento no conforme ta $1: < -1 u > 1', |
| 102 | + 'pfunc_expr_invalid_argument_ln' => 'Argumento no conforme ta ln: <=0', |
| 103 | + 'pfunc_expr_unknown_error' => "Error d'expresión: error esconoixito ($1)", |
| 104 | + 'pfunc_expr_not_a_number' => 'En $1: o resultau no ye un numero', |
| 105 | +); |
| 106 | + |
| 107 | +/** Arabic (العربية) |
| 108 | + * @author Meno25 |
| 109 | + */ |
| 110 | +$messages['ar'] = array( |
| 111 | + 'pfunc_desc' => 'محلل ممدد بدوال منطقية', |
| 112 | + 'pfunc_time_error' => 'خطأ: زمن غير صحيح', |
| 113 | + 'pfunc_time_too_long' => 'خطأ: استدعاءات #time كثيرة جدا', |
| 114 | + 'pfunc_rel2abs_invalid_depth' => 'خطأ: عمق غير صحيح في المسار: "$1" (حاول دخول عقدة فوق العقدة الجذرية)', |
| 115 | + 'pfunc_expr_stack_exhausted' => 'خطأ في التعبير: ستاك مجهد', |
| 116 | + 'pfunc_expr_unexpected_number' => 'خطأ في التعبير: رقم غير متوقع', |
| 117 | + 'pfunc_expr_preg_match_failure' => 'خطأ في التعبير: فشل preg_match غير متوقع', |
| 118 | + 'pfunc_expr_unrecognised_word' => 'خطأ في التعبير: كلمة غير متعرف عليها "$1"', |
| 119 | + 'pfunc_expr_unexpected_operator' => 'خطأ في التعبير: عامل $1 غير متوقع', |
| 120 | + 'pfunc_expr_missing_operand' => 'خطأ في التعبير: operand مفقود ل$1', |
| 121 | + 'pfunc_expr_unexpected_closing_bracket' => 'خطأ في التعبير: قوس إغلاق غير متوقع', |
| 122 | + 'pfunc_expr_unrecognised_punctuation' => 'خطأ في التعبير: علامة ترقيم غير متعرف عليها "$1"', |
| 123 | + 'pfunc_expr_unclosed_bracket' => 'خطأ في التعبير: قوس غير مغلق', |
| 124 | + 'pfunc_expr_division_by_zero' => 'القسمة على صفر', |
| 125 | + 'pfunc_expr_invalid_argument' => 'مدخلة غير صحيحة ل $1: < -1 أو > 1', |
| 126 | + 'pfunc_expr_invalid_argument_ln' => 'مدخلة غير صحيحة ل ln: <= 0', |
| 127 | + 'pfunc_expr_unknown_error' => 'خطأ في التعبير: خطأ غير معروف ($1)', |
| 128 | + 'pfunc_expr_not_a_number' => 'في $1: النتيجة ليست رقما', |
| 129 | + 'pfunc_string_too_long' => 'خطأ: السلسلة تتجاوز الحد $1 حرف', |
| 130 | +); |
| 131 | + |
| 132 | +/** Aramaic (ܐܪܡܝܐ) |
| 133 | + * @author Basharh |
| 134 | + */ |
| 135 | +$messages['arc'] = array( |
| 136 | + 'pfunc_time_error' => 'ܦܘܕܐ: ܥܕܢܐ ܠܐ ܬܪܝܨܬܐ', |
| 137 | +); |
| 138 | + |
| 139 | +/** Egyptian Spoken Arabic (مصرى) |
| 140 | + * @author Ghaly |
| 141 | + * @author Meno25 |
| 142 | + * @author Ramsis II |
| 143 | + */ |
| 144 | +$messages['arz'] = array( |
| 145 | + 'pfunc_desc' => 'محلل متدعم ب دوال منطقية', |
| 146 | + 'pfunc_time_error' => 'غلطه:وقت مش صحيح', |
| 147 | + 'pfunc_time_too_long' => 'غلط: استدعاءات #time كتيرة قوى', |
| 148 | + 'pfunc_rel2abs_invalid_depth' => 'غلط: عمق مش صحيح فى المسار: "$1" (حاول دخول عقدة فوق العقدة الجزرية)', |
| 149 | + 'pfunc_expr_stack_exhausted' => 'غلط فى التعبير: ستاك مجهد', |
| 150 | + 'pfunc_expr_unexpected_number' => 'غلط فى التعبير: رقم مش متوقع', |
| 151 | + 'pfunc_expr_preg_match_failure' => 'غلط تعبيري: فشل مش متوقع فى preg_match', |
| 152 | + 'pfunc_expr_unrecognised_word' => 'غلط تعبيري: كلمة مش متعرف عليها "$1"', |
| 153 | + 'pfunc_expr_unexpected_operator' => 'غلط تعبيري: عامل $1 مش متوقع', |
| 154 | + 'pfunc_expr_missing_operand' => 'غلط تعبيري: operand بتاع $1 ضايع', |
| 155 | + 'pfunc_expr_unexpected_closing_bracket' => 'غلط تعبيري:قوس قفل مش متوقع', |
| 156 | + 'pfunc_expr_unrecognised_punctuation' => 'غلط تعبيري:علامة الترقيم "$1" مش متعرف عليها', |
| 157 | + 'pfunc_expr_unclosed_bracket' => 'غلط تعبيري:قوس مش مقفول', |
| 158 | + 'pfunc_expr_division_by_zero' => 'القسمه على صفر', |
| 159 | + 'pfunc_expr_invalid_argument' => 'مدخلة مش صحيحة لـ $1: < -1 or > 1', |
| 160 | + 'pfunc_expr_invalid_argument_ln' => 'مدخلة مش صحيحة لـ ln: <= 0', |
| 161 | + 'pfunc_expr_unknown_error' => '($1)غلط تعبيري: غلط مش معروف', |
| 162 | + 'pfunc_expr_not_a_number' => 'فى $1: النتيجه مش رقم', |
| 163 | +); |
| 164 | + |
| 165 | +/** Assamese (অসমীয়া) |
| 166 | + * @author Rajuonline |
| 167 | + */ |
| 168 | +$messages['as'] = array( |
| 169 | + 'pfunc_time_error' => 'ভুল: অযোগ্য সময়', |
| 170 | +); |
| 171 | + |
| 172 | +/** Asturian (Asturianu) |
| 173 | + * @author Esbardu |
| 174 | + */ |
| 175 | +$messages['ast'] = array( |
| 176 | + 'pfunc_desc' => "Ameyora l'análisis sintáuticu con funciones llóxiques", |
| 177 | + 'pfunc_time_error' => 'Error: tiempu non válidu', |
| 178 | + 'pfunc_time_too_long' => 'Error: demasiaes llamaes #time', |
| 179 | + 'pfunc_rel2abs_invalid_depth' => 'Error: Nivel de subdireutoriu non válidu: "$1" (intentu d\'accesu penriba del direutoriu raíz)', |
| 180 | + 'pfunc_expr_stack_exhausted' => "Error d'espresión: Pila escosada", |
| 181 | + 'pfunc_expr_unexpected_number' => "Error d'espresión: Númberu inesperáu", |
| 182 | + 'pfunc_expr_preg_match_failure' => "Error d'espresión: Fallu inesperáu de preg_match", |
| 183 | + 'pfunc_expr_unrecognised_word' => 'Error d\'espresión: Pallabra "$1" non reconocida', |
| 184 | + 'pfunc_expr_unexpected_operator' => "Error d'espresión: Operador $1 inesperáu", |
| 185 | + 'pfunc_expr_missing_operand' => "Error d'espresión: Falta operador en $1", |
| 186 | + 'pfunc_expr_unexpected_closing_bracket' => "Error d'espresión: Paréntesis final inesperáu", |
| 187 | + 'pfunc_expr_unrecognised_punctuation' => 'Error d\'espresión: Caráuter de puntuación "$1" non reconocíu', |
| 188 | + 'pfunc_expr_unclosed_bracket' => "Error d'espresión: Paréntesis non zarráu", |
| 189 | + 'pfunc_expr_division_by_zero' => 'División por cero', |
| 190 | + 'pfunc_expr_invalid_argument' => 'Argumentu non válidu pa $1: < -1 o > 1', |
| 191 | + 'pfunc_expr_invalid_argument_ln' => 'Argumentu non válidu pa ln: <= 0', |
| 192 | + 'pfunc_expr_unknown_error' => "Error d'espresión: Error desconocíu ($1)", |
| 193 | + 'pfunc_expr_not_a_number' => 'En $1: el resultáu nun ye un númberu', |
| 194 | +); |
| 195 | + |
| 196 | +/** Bashkir (Башҡорт) |
| 197 | + * @author Assele |
| 198 | + */ |
| 199 | +$messages['ba'] = array( |
| 200 | + 'pfunc_desc' => 'Логик функциялар менән яҡшыртылған уҡыу ҡоралы', |
| 201 | + 'pfunc_time_error' => 'Хата: ваҡыт дөрөҫ түгел', |
| 202 | + 'pfunc_time_too_long' => 'Хата: #time функцияһы бигерәк күп саҡырылған', |
| 203 | + 'pfunc_rel2abs_invalid_depth' => 'Хата: "$1" юлының тәрәнлеге дөрөҫ түгел (тәүге төйөндән өҫтәрәк торған төйөндө асырға тырышыу)', |
| 204 | + 'pfunc_expr_stack_exhausted' => 'Аңлатма хатаһы: Стек тулған', |
| 205 | + 'pfunc_expr_unexpected_number' => 'Аңлатма хатаһы: Көтөлмәгән һан', |
| 206 | + 'pfunc_expr_preg_match_failure' => 'Аңлатма хатаһы: Көтөлмәгән preg_match хатаһы', |
| 207 | + 'pfunc_expr_unrecognised_word' => 'Аңлатма хатаһы: Танылмаған "$1" һүҙе', |
| 208 | + 'pfunc_expr_unexpected_operator' => 'Аңлатма хатаһы: Көтөлмәгән $1 операторы', |
| 209 | + 'pfunc_expr_missing_operand' => 'Аңлатма хатаһы: $1 аңлатмаһы өсөн операнд етмәй', |
| 210 | + 'pfunc_expr_unexpected_closing_bracket' => 'Аңлатма хатаһы: Көтөлмәгән ябыу йәйәһе', |
| 211 | + 'pfunc_expr_unrecognised_punctuation' => 'Аңлатма хатаһы: Танылмаған "$1" тыныш билдәһе', |
| 212 | + 'pfunc_expr_unclosed_bracket' => 'Аңлатма хатаһы: Ябылмаған йәйә', |
| 213 | + 'pfunc_expr_division_by_zero' => 'Нулгә бүлеү хатаһы', |
| 214 | + 'pfunc_expr_invalid_argument' => '$1 өсөн аргумент дөрөҫ түгел: < -1 йәки > 1', |
| 215 | + 'pfunc_expr_invalid_argument_ln' => 'ln өсөн аргумент дөрөҫ түгел: <= 0', |
| 216 | + 'pfunc_expr_unknown_error' => 'Аңлатма хатаһы: Билдәһеҙ хата ($1)', |
| 217 | + 'pfunc_expr_not_a_number' => '$1: һөҙөмтә — һан түгел', |
| 218 | + 'pfunc_string_too_long' => 'Хата: Юл оҙонлоғо билдәләнгән сиктән — $1 хәрефтән — ашҡан', |
| 219 | +); |
| 220 | + |
| 221 | +/** Southern Balochi (بلوچی مکرانی) |
| 222 | + * @author Mostafadaneshvar |
| 223 | + */ |
| 224 | +$messages['bcc'] = array( |
| 225 | + 'pfunc_desc' => 'تجزیه کنوکء بهتر کن گون عملگر آن منطقی', |
| 226 | + 'pfunc_time_error' => 'حطا: نامعتبر وهد', |
| 227 | + 'pfunc_time_too_long' => 'حطا: بازگین #زمان سوج', |
| 228 | + 'pfunc_rel2abs_invalid_depth' => 'حطا: نامعتبر عمق ته مسیر: "$1"(سعی کتن په یک بالادی گرهنی چه ریشگی گرهنانا برسیت)', |
| 229 | + 'pfunc_expr_stack_exhausted' => 'حطا اصطلاح: توده حالیک', |
| 230 | + 'pfunc_expr_unexpected_number' => 'حطا اصطلاح: غیر منظرین شماره', |
| 231 | + 'pfunc_expr_preg_match_failure' => 'حطا اصطلاح: غیرمنتظره این preg_ همسانی پروش وارت', |
| 232 | + 'pfunc_expr_unrecognised_word' => 'حطا اصطلاح: نا شناسین کلمه "$1"', |
| 233 | + 'pfunc_expr_unexpected_operator' => 'حطا اصطلاح:نه لوٹتین $1 اپراتور', |
| 234 | + 'pfunc_expr_missing_operand' => 'حطا اصطلاح: گارین عملوند په $1', |
| 235 | + 'pfunc_expr_unexpected_closing_bracket' => 'حطا اصطلاح: نه لوٹتگین براکت بندگ', |
| 236 | + 'pfunc_expr_unrecognised_punctuation' => 'حطا اصطلاح: ناشناسین کاراکتر نشانه هلگی "$1"', |
| 237 | + 'pfunc_expr_unclosed_bracket' => 'حطا اصطلاح: نه بسته گین براکت', |
| 238 | + 'pfunc_expr_division_by_zero' => 'تقسیم بر صفر', |
| 239 | + 'pfunc_expr_invalid_argument' => 'نامعتبر آرگومان په $1: < -1 یا > 1', |
| 240 | + 'pfunc_expr_invalid_argument_ln' => 'نامعتبر آرگومان ته شی : <= 0', |
| 241 | + 'pfunc_expr_unknown_error' => 'حطا اصطلاح :ناشناسین حطا ($1)', |
| 242 | + 'pfunc_expr_not_a_number' => 'ته $1: نتیجه یک عددی نهنت', |
| 243 | +); |
| 244 | + |
| 245 | +/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) |
| 246 | + * @author EugeneZelenko |
| 247 | + * @author Jim-by |
| 248 | + * @author Red Winged Duck |
| 249 | + */ |
| 250 | +$messages['be-tarask'] = array( |
| 251 | + 'pfunc_desc' => 'Палепшаны парсэр зь лягічнымі функцыямі', |
| 252 | + 'pfunc_time_error' => 'Памылка: няслушны час', |
| 253 | + 'pfunc_time_too_long' => 'Памылка: зашмат выклікаў функцыі #time', |
| 254 | + 'pfunc_rel2abs_invalid_depth' => 'Памылка: няслушная глыбіня шляху: «$1» (спроба доступу да вузла, які знаходзіцца вышэй карэннага)', |
| 255 | + 'pfunc_expr_stack_exhausted' => 'Памылка выразу: стэк перапоўнены', |
| 256 | + 'pfunc_expr_unexpected_number' => 'Памылка выразу: нечаканая лічба', |
| 257 | + 'pfunc_expr_preg_match_failure' => 'Памылка выразу: нечаканая памылка preg_match', |
| 258 | + 'pfunc_expr_unrecognised_word' => 'Памылка выразу: нераспазнанае слова «$1»', |
| 259 | + 'pfunc_expr_unexpected_operator' => 'Памылка выразу: нечаканы апэратар $1', |
| 260 | + 'pfunc_expr_missing_operand' => 'Памылка выразу: няма апэранду $1', |
| 261 | + 'pfunc_expr_unexpected_closing_bracket' => 'Памылка выразу: нечаканая закрываючая дужка', |
| 262 | + 'pfunc_expr_unrecognised_punctuation' => 'Памылка выразу: нераспазнаны сымбаль пунктуацыі «$1»', |
| 263 | + 'pfunc_expr_unclosed_bracket' => 'Памылка выразу: незакрытая дужка', |
| 264 | + 'pfunc_expr_division_by_zero' => 'Дзяленьне на нуль', |
| 265 | + 'pfunc_expr_invalid_argument' => 'Памылковы аргумэнт для $1: < -1 ці > 1', |
| 266 | + 'pfunc_expr_invalid_argument_ln' => 'Памылковы аргумэнт для ln: <= 0', |
| 267 | + 'pfunc_expr_unknown_error' => 'Памылка выразу: невядомая памылка ($1)', |
| 268 | + 'pfunc_expr_not_a_number' => 'У $1: вынік не зьяўляецца лічбай', |
| 269 | + 'pfunc_string_too_long' => 'Памылка: у радку перавышаны ліміт $1 {{PLURAL:$1|сымбаль|сымбалі|сымбаляў}}', |
| 270 | +); |
| 271 | + |
| 272 | +/** Bulgarian (Български) |
| 273 | + * @author DCLXVI |
| 274 | + * @author Spiritia |
| 275 | + */ |
| 276 | +$messages['bg'] = array( |
| 277 | + 'pfunc_desc' => 'Подобрвяване на парсера с логически функции', |
| 278 | + 'pfunc_time_error' => 'Грешка: невалидно време', |
| 279 | + 'pfunc_time_too_long' => 'Грешка: Твърде много извиквания на #time', |
| 280 | + 'pfunc_rel2abs_invalid_depth' => 'Грешка: Невалидна дълбочина в път: "$1" (опит за достъп на възел над корена)', |
| 281 | + 'pfunc_expr_stack_exhausted' => 'Грешка в записа: Стекът е изчерпан', |
| 282 | + 'pfunc_expr_unexpected_number' => 'Грешка в записа: Неочаквано число', |
| 283 | + 'pfunc_expr_preg_match_failure' => 'Грешка в израза: Неочакван проблем с preg_match', |
| 284 | + 'pfunc_expr_unrecognised_word' => 'Грешка в записа: Неразпозната дума "$1"', |
| 285 | + 'pfunc_expr_unexpected_operator' => 'Грешка в записа: Неочакван оператор $1', |
| 286 | + 'pfunc_expr_missing_operand' => 'Грешка в записа: Липсващ операнд в $1', |
| 287 | + 'pfunc_expr_unexpected_closing_bracket' => 'Грешка в записа: Една затваряща скоба в повече', |
| 288 | + 'pfunc_expr_unrecognised_punctuation' => 'Грешка в записа: Неразпознат пунктуационен знак "$1"', |
| 289 | + 'pfunc_expr_unclosed_bracket' => 'Грешка в записа: Незатворена скоба', |
| 290 | + 'pfunc_expr_division_by_zero' => 'Деление на нула', |
| 291 | + 'pfunc_expr_invalid_argument' => 'Невалиден аргумент за $1: < -1 или > 1', |
| 292 | + 'pfunc_expr_invalid_argument_ln' => 'Невалиден аргумент за ln: <= 0', |
| 293 | + 'pfunc_expr_unknown_error' => 'Грешка в записа: Неразпозната грешка ($1)', |
| 294 | + 'pfunc_expr_not_a_number' => 'В $1: резултатът не е число', |
| 295 | + 'pfunc_string_too_long' => 'Грешка: Низът превишава лимита от $1 знака', |
| 296 | +); |
| 297 | + |
| 298 | +/** Bengali (বাংলা) |
| 299 | + * @author Bellayet |
| 300 | + * @author Zaheen |
| 301 | + */ |
| 302 | +$messages['bn'] = array( |
| 303 | + 'pfunc_desc' => 'লজিকাল ফাংশন দিয়ে পার্সারকে উন্নত করুন', |
| 304 | + 'pfunc_time_error' => 'ত্রুটি: অবৈধ সময়', |
| 305 | + 'pfunc_time_too_long' => 'ত্রুটি: অত্যধিক সংখ্যক #time কল', |
| 306 | + 'pfunc_rel2abs_invalid_depth' => 'ত্রুটি: পাথে অবৈধ গভীরতা: "$1" (মূল নোডের উপরের একটি নোড অ্যাক্সেস করতে চেষ্টা করেছিল)', |
| 307 | + 'pfunc_expr_stack_exhausted' => 'এক্সপ্রেশন ত্রুটি: স্ট্যাক শেষ হয়ে গেছে', |
| 308 | + 'pfunc_expr_unexpected_number' => 'এক্সপ্রেশন ত্রুটি: অযাচিত সংখ্যা', |
| 309 | + 'pfunc_expr_preg_match_failure' => 'এক্সপ্রেশন ত্রুটি: অযাচিত preg_match ব্যর্থতা', |
| 310 | + 'pfunc_expr_unrecognised_word' => 'এক্সপ্রেশন ত্রুটি: অপরিচিত শব্দ "$1"', |
| 311 | + 'pfunc_expr_unexpected_operator' => 'এক্সপ্রেশন ত্রুটি: অযাচিত $1 অপারেটর', |
| 312 | + 'pfunc_expr_missing_operand' => 'এক্সপ্রেশন ত্রুটি: $1-এর জন্য অপারেন্ড নেই।', |
| 313 | + 'pfunc_expr_unexpected_closing_bracket' => 'এক্সপ্রেশন ত্রুটি: অযাচিত সমাপ্তকারী বন্ধনী', |
| 314 | + 'pfunc_expr_unrecognised_punctuation' => 'এক্সপ্রেশন ত্রুটি: অপরিচিত বিরামচিহ্ন ক্যারেক্টার "$1"', |
| 315 | + 'pfunc_expr_unclosed_bracket' => 'এক্সপ্রেশন ত্রুটি: উন্মুক্ত বন্ধনী', |
| 316 | + 'pfunc_expr_division_by_zero' => 'শূন্য দ্বারা ভাগ করা হয়েছে', |
| 317 | + 'pfunc_expr_invalid_argument' => '$1 এর জন্য ভুল শর্ত: < -1 অথবা > 1', |
| 318 | + 'pfunc_expr_invalid_argument_ln' => 'ln এর জন্য অসিদ্ধ শর্ত: <= 0', |
| 319 | + 'pfunc_expr_unknown_error' => 'এক্সপ্রেশন ত্রুটি: অজানা ত্রুটি ($1)', |
| 320 | + 'pfunc_expr_not_a_number' => '$1: এ ফলাফল কোন সংখ্যা নয়', |
| 321 | +); |
| 322 | + |
| 323 | +/** Breton (Brezhoneg) |
| 324 | + * @author Fulup |
| 325 | + */ |
| 326 | +$messages['br'] = array( |
| 327 | + 'pfunc_desc' => "Gwellaat a ra ar parser gant arc'hwelioù poellek", |
| 328 | + 'pfunc_time_error' => 'Fazi : pad direizh', |
| 329 | + 'pfunc_time_too_long' => 'Fazi : betek re eo bet galvet #time', |
| 330 | + 'pfunc_rel2abs_invalid_depth' => "Fazi : Donder direizh evit an hent : \"\$1\" (klasket ez eus bet mont d'ul live a-us d'ar c'havlec'h-mamm)", |
| 331 | + 'pfunc_expr_stack_exhausted' => 'Kemennad faziek : pil riñset', |
| 332 | + 'pfunc_expr_unexpected_number' => "Kemennad faziek : niver dic'hortoz", |
| 333 | + 'pfunc_expr_preg_match_failure' => "Kemennad faziek : c'hwitadenn dic'hortoz evit <code>preg_match</code>", |
| 334 | + 'pfunc_expr_unrecognised_word' => 'Kemennad faziek : Ger dianav "$1"', |
| 335 | + 'pfunc_expr_unexpected_operator' => 'Kemennad faziek : Oberier $1 dianav', |
| 336 | + 'pfunc_expr_missing_operand' => 'Kemennad faziek : Dianav eo operand $1', |
| 337 | + 'pfunc_expr_unexpected_closing_bracket' => "Kemennad faziek : Krommell zehoù dic'hortoz", |
| 338 | + 'pfunc_expr_unrecognised_punctuation' => 'Kemennad faziek : arouezenn boentadouiñ dianav "$1"', |
| 339 | + 'pfunc_expr_unclosed_bracket' => 'Kemennad faziek : Krommell zigor', |
| 340 | + 'pfunc_expr_division_by_zero' => 'Rannañ dre mann', |
| 341 | + 'pfunc_expr_invalid_argument' => 'Talvoudenn direizh evit $1: < -1 pe > 1', |
| 342 | + 'pfunc_expr_invalid_argument_ln' => 'Talvoudenn direizh evit ln: <= 0', |
| 343 | + 'pfunc_expr_unknown_error' => 'Kemennad faziek : Fazi dianav ($1)', |
| 344 | + 'pfunc_expr_not_a_number' => "E $1: An disoc'h n'eo ket un niver", |
| 345 | + 'pfunc_string_too_long' => "Fazi : Dreist d'ar vevenn uhelañ a $1 arouezenn eo an neudennad", |
| 346 | +); |
| 347 | + |
| 348 | +/** Bosnian (Bosanski) |
| 349 | + * @author CERminator |
| 350 | + * @author Seha |
| 351 | + */ |
| 352 | +$messages['bs'] = array( |
| 353 | + 'pfunc_desc' => 'Povisi parser sa logičnim funkcijama', |
| 354 | + 'pfunc_time_error' => 'Greška: vrijeme nije valjano', |
| 355 | + 'pfunc_time_too_long' => 'Greška: previše poziva funkcije #time', |
| 356 | + 'pfunc_rel2abs_invalid_depth' => 'Graška: Nevrijedeća dubina u putu: "$1" (pokušaj dolaska na nula tačku iza korijenske nula tačke)', |
| 357 | + 'pfunc_expr_stack_exhausted' => 'Greška izraza: Stok potrošen', |
| 358 | + 'pfunc_expr_unexpected_number' => 'Greška izraza: Neočekivani broj', |
| 359 | + 'pfunc_expr_preg_match_failure' => 'Razvojna greška: Neočekivana greška preg-pogotka', |
| 360 | + 'pfunc_expr_unrecognised_word' => 'Greška izraza: Nepoznata riječ "$1"', |
| 361 | + 'pfunc_expr_unexpected_operator' => 'Greška izraza: Neočekivani $1 operator', |
| 362 | + 'pfunc_expr_missing_operand' => 'Greška izraza: Nedostaje operator za $1', |
| 363 | + 'pfunc_expr_unexpected_closing_bracket' => 'Greška izraza: Neočekivana zagrada zatvaranja', |
| 364 | + 'pfunc_expr_unrecognised_punctuation' => 'Razvojna greška: Nije prepoznat karakter punktacije "$1"', |
| 365 | + 'pfunc_expr_unclosed_bracket' => 'Greška izraza: Nezatvorena zagrada', |
| 366 | + 'pfunc_expr_division_by_zero' => 'Dijeljenje s nulom', |
| 367 | + 'pfunc_expr_invalid_argument' => 'Nevažeći argument za $1: : < -1 ili > 1', |
| 368 | + 'pfunc_expr_invalid_argument_ln' => 'Nevažeći argument za ln: <= 0', |
| 369 | + 'pfunc_expr_unknown_error' => 'Razvojna greška: Nepoznata greška ($1)', |
| 370 | + 'pfunc_expr_not_a_number' => 'u $1: rezultat nije broj', |
| 371 | + 'pfunc_string_too_long' => 'Greška: Niz prelazi limit od $1 znakova', |
| 372 | +); |
| 373 | + |
| 374 | +/** Catalan (Català) |
| 375 | + * @author Jordi Roqué |
| 376 | + * @author Qllach |
| 377 | + * @author SMP |
| 378 | + */ |
| 379 | +$messages['ca'] = array( |
| 380 | + 'pfunc_desc' => 'Millora el processat amb funcions lògiques', |
| 381 | + 'pfunc_time_error' => 'Error: temps invàlid', |
| 382 | + 'pfunc_time_too_long' => 'Error: massa crides #time', |
| 383 | + 'pfunc_rel2abs_invalid_depth' => "Error: Adreça invàlida al directori: «$1» (s'intentava accedir a un node superior de l'arrel)", |
| 384 | + 'pfunc_expr_stack_exhausted' => "Error de l'expressió: Pila exhaurida", |
| 385 | + 'pfunc_expr_unexpected_number' => "Error de l'expressió: Nombre inesperat", |
| 386 | + 'pfunc_expr_preg_match_failure' => "Error de l'expressió: Error de funció no compresa i inesperada", |
| 387 | + 'pfunc_expr_unrecognised_word' => 'Error de l\'expressió: Paraula no reconeguda "$1"', |
| 388 | + 'pfunc_expr_unexpected_operator' => "Error de l'expressió: Operador $1 inesperat", |
| 389 | + 'pfunc_expr_missing_operand' => "Error de l'expressió: Falta l'operand de $1", |
| 390 | + 'pfunc_expr_unexpected_closing_bracket' => "Error de l'expressió: Parèntesi inesperat", |
| 391 | + 'pfunc_expr_unrecognised_punctuation' => 'Error de l\'expressió: Signe de puntuació no reconegut "$1"', |
| 392 | + 'pfunc_expr_unclosed_bracket' => "Error de l'expressió: Parèntesi no tancat", |
| 393 | + 'pfunc_expr_division_by_zero' => 'Divisió entre zero', |
| 394 | + 'pfunc_expr_invalid_argument' => 'Valor no vàlid per a $1: < -1 ó > 1', |
| 395 | + 'pfunc_expr_invalid_argument_ln' => 'Valor no vàlid per a ln: <= 0', |
| 396 | + 'pfunc_expr_unknown_error' => "Error de l'expressió: Desconegut ($1)", |
| 397 | + 'pfunc_expr_not_a_number' => 'A $1: el resultat no és un nombre', |
| 398 | + 'pfunc_string_too_long' => 'Error: La cadena és $1 caràcters massa llarga', |
| 399 | +); |
| 400 | + |
| 401 | +/** Chechen (Нохчийн) |
| 402 | + * @author Sasan700 |
| 403 | + */ |
| 404 | +$messages['ce'] = array( |
| 405 | + 'pfunc_expr_stack_exhausted' => 'Яздарехь гlалат ду: хьаладуьззина татол', |
| 406 | + 'pfunc_expr_unrecognised_word' => 'Яздарехь гlалат ду: дойзуш доцу дош «$1»', |
| 407 | +); |
| 408 | + |
| 409 | +/** Czech (Česky) |
| 410 | + * @author Danny B. |
| 411 | + * @author Li-sung |
| 412 | + * @author Matěj Grabovský |
| 413 | + * @author Mormegil |
| 414 | + * @author Sp5uhe |
| 415 | + */ |
| 416 | +$messages['cs'] = array( |
| 417 | + 'pfunc_desc' => 'Rozšíření parseru o logické funkce', |
| 418 | + 'pfunc_time_error' => 'Chyba: neplatný čas', |
| 419 | + 'pfunc_time_too_long' => 'Chyba: příliš mnoho volání #time', |
| 420 | + 'pfunc_rel2abs_invalid_depth' => 'Chyba: Neplatná hloubka v cestě: "$1" (pokus o přístup do uzlu vyššího než kořen)', |
| 421 | + 'pfunc_expr_stack_exhausted' => 'Chyba ve výrazu: Zásobník plně obsazen', |
| 422 | + 'pfunc_expr_unexpected_number' => 'Chyba ve výrazu: Očekáváno číslo', |
| 423 | + 'pfunc_expr_preg_match_failure' => 'Chyba ve výrazu: Neočekávaná chyba funkce preg_match', |
| 424 | + 'pfunc_expr_unrecognised_word' => 'Chyba ve výrazu: Nerozpoznané slovo „$1“', |
| 425 | + 'pfunc_expr_unexpected_operator' => 'Chyba ve výrazu: Neočekávaný operátor $1', |
| 426 | + 'pfunc_expr_missing_operand' => 'Chyba ve výrazu: Chybí operand pro $1', |
| 427 | + 'pfunc_expr_unexpected_closing_bracket' => 'Chyba ve výrazu: Neočekávaná uzavírací závorka', |
| 428 | + 'pfunc_expr_unrecognised_punctuation' => 'Chyba ve výrazu: Nerozpoznaný interpunkční znak „$1“', |
| 429 | + 'pfunc_expr_unclosed_bracket' => 'Chyba ve výrazu: Neuzavřené závorky', |
| 430 | + 'pfunc_expr_division_by_zero' => 'Dělení nulou', |
| 431 | + 'pfunc_expr_invalid_argument' => 'Neplatný argument pro $1: < -1 nebo > 1', |
| 432 | + 'pfunc_expr_invalid_argument_ln' => 'Neplatný argument pro ln: <= 0', |
| 433 | + 'pfunc_expr_unknown_error' => 'Chyba ve výrazu: Neznámá chyba ($1)', |
| 434 | + 'pfunc_expr_not_a_number' => 'V $1: výsledkem není číslo', |
| 435 | + 'pfunc_string_too_long' => 'Chyba: Řetězec je delší než $1 {{PLURAL:$1|znak|znaky|znaků}}, což je limit', |
| 436 | +); |
| 437 | + |
| 438 | +/** Danish (Dansk) |
| 439 | + * @author Byrial |
| 440 | + * @author Morten LJ |
| 441 | + */ |
| 442 | +$messages['da'] = array( |
| 443 | + 'pfunc_desc' => 'Udvider parser med logiske funktioner', |
| 444 | + 'pfunc_time_error' => 'Fejl: Ugyldig tid', |
| 445 | + 'pfunc_time_too_long' => 'Felj: for mange kald af #time', |
| 446 | + 'pfunc_rel2abs_invalid_depth' => 'Fejl: Ugyldig dybde i sti: "$1" (prøvede at tilgå en knude over rodknuden)', |
| 447 | + 'pfunc_expr_stack_exhausted' => 'Udtryksfejl: Stak tømt', |
| 448 | + 'pfunc_expr_unexpected_number' => 'Fejl: Uventet tal', |
| 449 | + 'pfunc_expr_preg_match_failure' => 'Udtryksfejl: Uventet fejl i preg_match', |
| 450 | + 'pfunc_expr_unrecognised_word' => 'Udtryksfejl: Uventet ord "$1"', |
| 451 | + 'pfunc_expr_unexpected_operator' => 'Udtryksfejl: Uventet "$1"-operator', |
| 452 | + 'pfunc_expr_missing_operand' => 'Udtryksfejl: Manglende operand til $1', |
| 453 | + 'pfunc_expr_unexpected_closing_bracket' => 'Udtryksfejl: Uventet lukkende parentes', |
| 454 | + 'pfunc_expr_unrecognised_punctuation' => 'Udtryksfejl: Uventet tegnsætning-tegn: "$1"', |
| 455 | + 'pfunc_expr_unclosed_bracket' => 'Udtryksfejl: Uafsluttet kantet parantes', |
| 456 | + 'pfunc_expr_division_by_zero' => 'Division med nul', |
| 457 | + 'pfunc_expr_invalid_argument' => 'Ugyldigt argument for $1: < -1 eller > 1', |
| 458 | + 'pfunc_expr_invalid_argument_ln' => 'Ugyldigt argument for ln: <= 0', |
| 459 | + 'pfunc_expr_unknown_error' => 'Udtryksfejl: Ukendt fejl ($1)', |
| 460 | + 'pfunc_expr_not_a_number' => 'I $1: Resultatet er ikke et tal', |
| 461 | + 'pfunc_string_too_long' => 'Feil: Strengen overskrider grænsen på $1 tegn', |
| 462 | +); |
| 463 | + |
| 464 | +/** German (Deutsch) |
| 465 | + * @author LWChris |
| 466 | + * @author Metalhead64 |
| 467 | + * @author Raimond Spekking |
| 468 | + */ |
| 469 | +$messages['de'] = array( |
| 470 | + 'pfunc_desc' => 'Erweitert den Parser um logische Funktionen', |
| 471 | + 'pfunc_time_error' => 'Fehler: ungültige Zeitangabe', |
| 472 | + 'pfunc_time_too_long' => 'Fehler: zu viele #time-Aufrufe', |
| 473 | + 'pfunc_rel2abs_invalid_depth' => 'Fehler: ungültige Tiefe in Pfad: „$1“ (Versuch, auf einen Knotenpunkt oberhalb des Hauptknotenpunktes zuzugreifen)', |
| 474 | + 'pfunc_expr_stack_exhausted' => 'Expression-Fehler: Stacküberlauf', |
| 475 | + 'pfunc_expr_unexpected_number' => 'Expression-Fehler: Unerwartete Zahl', |
| 476 | + 'pfunc_expr_preg_match_failure' => 'Expression-Fehler: Unerwartete „preg_match“-Fehlfunktion', |
| 477 | + 'pfunc_expr_unrecognised_word' => 'Expression-Fehler: Unerkanntes Wort „$1“', |
| 478 | + 'pfunc_expr_unexpected_operator' => 'Expression-Fehler: Unerwarteter Operator <tt>$1</tt>', |
| 479 | + 'pfunc_expr_missing_operand' => 'Expression-Fehler: Fehlender Operand für <tt>$1</tt>', |
| 480 | + 'pfunc_expr_unexpected_closing_bracket' => 'Expression-Fehler: Unerwartete schließende eckige Klammer', |
| 481 | + 'pfunc_expr_unrecognised_punctuation' => 'Expression-Fehler: Unerkanntes Satzzeichen „$1“', |
| 482 | + 'pfunc_expr_unclosed_bracket' => 'Expression-Fehler: Nicht geschlossene eckige Klammer', |
| 483 | + 'pfunc_expr_division_by_zero' => 'Division durch Null', |
| 484 | + 'pfunc_expr_invalid_argument' => 'Ungültiges Argument für $1: < -1 oder > 1', |
| 485 | + 'pfunc_expr_invalid_argument_ln' => 'Ungültiges Argument für ln: <= 0', |
| 486 | + 'pfunc_expr_unknown_error' => 'Expression-Fehler: Unbekannter Fehler ($1)', |
| 487 | + 'pfunc_expr_not_a_number' => 'In $1: Ergebnis ist keine Zahl', |
| 488 | + 'pfunc_string_too_long' => 'Fehler: Zeichenkette überschreitet Zeichenlimit von $1', |
| 489 | +); |
| 490 | + |
| 491 | +/** Swiss High German (Schweizer Hochdeutsch) |
| 492 | + * @author MichaelFrey |
| 493 | + */ |
| 494 | +$messages['de-ch'] = array( |
| 495 | + 'pfunc_expr_unexpected_closing_bracket' => 'Expression-Fehler: Unerwartete schliessende eckige Klammer', |
| 496 | +); |
| 497 | + |
| 498 | +/** Zazaki (Zazaki) |
| 499 | + * @author Aspar |
| 500 | + */ |
| 501 | +$messages['diq'] = array( |
| 502 | + 'pfunc_desc' => 'Enhance parser with logical functions', |
| 503 | + 'pfunc_time_error' => 'xeta: zemano nemeqbul', |
| 504 | + 'pfunc_time_too_long' => 'xeta:zaf zêd mesajê #timeyi', |
| 505 | + 'pfunc_rel2abs_invalid_depth' => 'Hata: Yolda geçersiz derinlik: "$1" (kök düğümünün üstünde bir düğüme erişmeye çalıştı)', |
| 506 | + 'pfunc_expr_stack_exhausted' => 'xetaya ifadeyi: stack qediya', |
| 507 | + 'pfunc_expr_unexpected_number' => 'xetaya ifadeyi: amaro bêtexmin', |
| 508 | + 'pfunc_expr_preg_match_failure' => 'xetaya ifadeyi: arızaya preg_matchi yo bêtexmin', |
| 509 | + 'pfunc_expr_unrecognised_word' => 'xetaya ifadeyi: çekuya "$1"i nêşinasiyeno', |
| 510 | + 'pfunc_expr_unexpected_operator' => 'xetaya ifadeyi: operatorê $1i yo bêtexmin', |
| 511 | + 'pfunc_expr_missing_operand' => 'xetaya ifadeyi: qey $1i termo kêm', |
| 512 | + 'pfunc_expr_unexpected_closing_bracket' => 'xetaya ifadeyi: parantez bıqefelno bêtexmin', |
| 513 | + 'pfunc_expr_unrecognised_punctuation' => 'xetaya ifadeyi: karakterê noqtakerdışê "$1"i yo ke nêşınasiyeno', |
| 514 | + 'pfunc_expr_unclosed_bracket' => 'xetaya ifadeyi: parantezo nêqefelnaye', |
| 515 | + 'pfunc_expr_division_by_zero' => 'pê sıfır teqsim ker', |
| 516 | + 'pfunc_expr_invalid_argument' => 'Invalid argument for $1: < -1 or > 1', |
| 517 | + 'pfunc_expr_invalid_argument_ln' => 'Invalid argument for ln: <= 0', |
| 518 | + 'pfunc_expr_unknown_error' => 'xetaya ifadeyi: neticeya ke nêzaniyena ($1)', |
| 519 | + 'pfunc_expr_not_a_number' => '$1 de: netice yew amar niyo', |
| 520 | + 'pfunc_string_too_long' => 'xeta: rêze heddê karakteri yo $1i veciyaya', |
| 521 | +); |
| 522 | + |
| 523 | +/** Lower Sorbian (Dolnoserbski) |
| 524 | + * @author Michawiki |
| 525 | + */ |
| 526 | +$messages['dsb'] = array( |
| 527 | + 'pfunc_desc' => 'Rozšyrja parser wó logiske funkcije', |
| 528 | + 'pfunc_time_error' => 'Zmólka: njepłaśiwy cas', |
| 529 | + 'pfunc_time_too_long' => 'Zmólka: pśewjele zawołanjow #time', |
| 530 | + 'pfunc_rel2abs_invalid_depth' => 'Zmólka: Njepłaśiwy dłym w sćažce: "$1" (wopyt na suk pśistup měś, kótaryž jo wušej kórjenjowego suka)', |
| 531 | + 'pfunc_expr_stack_exhausted' => 'Wurazowa zmólka: Stack wupócerany', |
| 532 | + 'pfunc_expr_unexpected_number' => 'Wurazowa zmólka: Njewócakana licba', |
| 533 | + 'pfunc_expr_preg_match_failure' => 'Wurazowa zmólka: Njewócakana zmólkata funkcija preg_match', |
| 534 | + 'pfunc_expr_unrecognised_word' => 'Wurazowa zmólka: Njespóznane słowo "$1"', |
| 535 | + 'pfunc_expr_unexpected_operator' => 'Wurazowa zmólka: Njewócakany opeator $1', |
| 536 | + 'pfunc_expr_missing_operand' => 'Wurazowa zmólka: Felujucy operand za $1', |
| 537 | + 'pfunc_expr_unexpected_closing_bracket' => 'Wurazowa zmólka: Njewócakana kóńcajuca rožkata spinka', |
| 538 | + 'pfunc_expr_unrecognised_punctuation' => 'Wurazowa zmólka: Njespóznane interpunkciske znamuško "$1"', |
| 539 | + 'pfunc_expr_unclosed_bracket' => 'Wurazowa zmólka: Žedna kóńcajuca spinka', |
| 540 | + 'pfunc_expr_division_by_zero' => 'Diwizija pśez nul', |
| 541 | + 'pfunc_expr_invalid_argument' => 'Njepłaśiwy argument $1: < -1 abo > 1', |
| 542 | + 'pfunc_expr_invalid_argument_ln' => 'Njepłaśiwy argument za ln: <= 0', |
| 543 | + 'pfunc_expr_unknown_error' => 'Wurazowa zmólka: Njeznata zmólka ($1)', |
| 544 | + 'pfunc_expr_not_a_number' => 'W $1: wuslědk njejo licba', |
| 545 | + 'pfunc_string_too_long' => 'Zmólka: Znamješkowy rěd pśekčaca limit $1 znamješkow', |
| 546 | +); |
| 547 | + |
| 548 | +/** Greek (Ελληνικά) |
| 549 | + * @author Consta |
| 550 | + * @author Dead3y3 |
| 551 | + * @author Omnipaedista |
| 552 | + * @author Απεργός |
| 553 | + */ |
| 554 | +$messages['el'] = array( |
| 555 | + 'pfunc_desc' => 'Βελτιώνει το συντακτικό αναλυτή με λογικές συναρτήσεις', |
| 556 | + 'pfunc_time_error' => 'Σφάλμα: άκυρος χρόνος', |
| 557 | + 'pfunc_time_too_long' => 'Σφάλμα: πάρα πολλές κλήσεις της #time', |
| 558 | + 'pfunc_rel2abs_invalid_depth' => 'Σφάλμα: Άκυρο βάθος στη διαδρομή: «$1» (έγινε προσπάθεια για πρόσβαση σε έναν κόμβο πάνω από τον ριζικό κόμβο)', |
| 559 | + 'pfunc_expr_stack_exhausted' => 'Σφάλμα έκφρασης: Η στοίβα εξαντλήθηκε', |
| 560 | + 'pfunc_expr_unexpected_number' => 'Σφάλμα έκφρασης: Μη αναμενόμενος αριθμός', |
| 561 | + 'pfunc_expr_preg_match_failure' => 'Σφάλμα έκφρασης: Μη αναμενόμενη αποτυχία preg_match', |
| 562 | + 'pfunc_expr_unrecognised_word' => 'Σφάλμα έκφρασης: Μη αναγνωρίσιμη λέξη "$1"', |
| 563 | + 'pfunc_expr_unexpected_operator' => 'Σφάλμα έκφρασης: Μη αναμενόμενος τελεστής $1', |
| 564 | + 'pfunc_expr_missing_operand' => 'Σφάλμα έκφρασης: Λείπει ο τελεστέος για την έκφραση $1', |
| 565 | + 'pfunc_expr_unexpected_closing_bracket' => 'Σφάλμα έκφρασης: Μη αναμενόμενη αγκύλη κλεισίματος', |
| 566 | + 'pfunc_expr_unrecognised_punctuation' => 'Σφάλμα έκφρασης: Μη αναγνρίσμος χαρακτήρας στίξης "$1"', |
| 567 | + 'pfunc_expr_unclosed_bracket' => 'Σφάλμα έκφρασης: Αγκύλη χωρίς κλείσιμο', |
| 568 | + 'pfunc_expr_division_by_zero' => 'Διαίρεση με το μηδέν', |
| 569 | + 'pfunc_expr_invalid_argument' => 'Άκυρη παράμετρος για το $1: < -1 ή > 1', |
| 570 | + 'pfunc_expr_invalid_argument_ln' => 'Άκυρη παράμετρος για το ln: <= 0', |
| 571 | + 'pfunc_expr_unknown_error' => 'Σφάλμα έκφρασης: Άγνωστο σφάλμα ($1)', |
| 572 | + 'pfunc_expr_not_a_number' => 'Στο $1: το αποτέλεσμα δεν είναι αριθμός', |
| 573 | + 'pfunc_string_too_long' => 'Σφάλμα: ο ορμαθός υπερβαίνει $1 το όριο χαρακτήρων', |
| 574 | +); |
| 575 | + |
| 576 | +/** Esperanto (Esperanto) |
| 577 | + * @author Yekrats |
| 578 | + */ |
| 579 | +$messages['eo'] = array( |
| 580 | + 'pfunc_desc' => 'Etendi sintaksan analizilon kun logikaj funkcioj', |
| 581 | + 'pfunc_time_error' => 'Eraro: malvalida tempo', |
| 582 | + 'pfunc_time_too_long' => "Eraro: tro da vokoj ''#time''", |
| 583 | + 'pfunc_rel2abs_invalid_depth' => 'Eraro: Malvalida profundo en vojo: "$1" (provis atingi nodon super la radika nodo)', |
| 584 | + 'pfunc_expr_stack_exhausted' => 'Esprima eraro: Stako estis malplenigita', |
| 585 | + 'pfunc_expr_unexpected_number' => 'Esprima eraro: Neatendita numeralo', |
| 586 | + 'pfunc_expr_preg_match_failure' => 'Esprima eraro: Neatendita preg_match malsukceso', |
| 587 | + 'pfunc_expr_unrecognised_word' => 'Esprima eraro: Nekonata vorto "$1"', |
| 588 | + 'pfunc_expr_unexpected_operator' => 'Esprima eraro: Neatendita operacisimbolo $1', |
| 589 | + 'pfunc_expr_missing_operand' => 'Esprima eraro: Mankas operando por $1', |
| 590 | + 'pfunc_expr_unexpected_closing_bracket' => 'Esprima eraro: Neatendita ferma krampo', |
| 591 | + 'pfunc_expr_unrecognised_punctuation' => 'Esprima eraro: Nekonata interpunkcia simbolo "$1"', |
| 592 | + 'pfunc_expr_unclosed_bracket' => 'Esprima eraro: Malferma krampo', |
| 593 | + 'pfunc_expr_division_by_zero' => 'Divido per nulo', |
| 594 | + 'pfunc_expr_invalid_argument' => 'Malvalida argumento por $1: < -1 or > 1', |
| 595 | + 'pfunc_expr_invalid_argument_ln' => 'Malvalida argumento por ln: <= 0', |
| 596 | + 'pfunc_expr_unknown_error' => 'Esprima eraro: Nekonata eraro ($1)', |
| 597 | + 'pfunc_expr_not_a_number' => 'En $1: rezulto ne estas nombro', |
| 598 | + 'pfunc_string_too_long' => 'Eraro: Ĉeno preterpasas signo-limon $1', |
| 599 | +); |
| 600 | + |
| 601 | +/** Spanish (Español) |
| 602 | + * @author Crazymadlover |
| 603 | + * @author Muro de Aguas |
| 604 | + * @author Remember the dot |
| 605 | + * @author Sanbec |
| 606 | + */ |
| 607 | +$messages['es'] = array( |
| 608 | + 'pfunc_desc' => 'Mejora el analizador lógico con funciones.', |
| 609 | + 'pfunc_time_error' => 'Error con la expresión: Tiempo no válido', |
| 610 | + 'pfunc_time_too_long' => 'Error con la expresión: se están utilizando demasiados "#time"', |
| 611 | + 'pfunc_rel2abs_invalid_depth' => 'Error: Profundidad no válida en la ruta: «$1» (trataste de acceder a un nodo por encima de la raíz)', |
| 612 | + 'pfunc_expr_stack_exhausted' => 'Error de expresión: Pila agotada', |
| 613 | + 'pfunc_expr_unexpected_number' => 'Error con la expresión: Número no esperado', |
| 614 | + 'pfunc_expr_preg_match_failure' => 'Error de expresión: Fracaso preg_match no esperado', |
| 615 | + 'pfunc_expr_unrecognised_word' => 'Error con la expresión: La palabra "$1" no se reconoce', |
| 616 | + 'pfunc_expr_unexpected_operator' => 'Error con la expresión: Operador $1 no esperado', |
| 617 | + 'pfunc_expr_missing_operand' => 'Error con la expresión: Falta un operador para $1', |
| 618 | + 'pfunc_expr_unexpected_closing_bracket' => 'Error con la expresión: Paréntesis de cierre no esperado', |
| 619 | + 'pfunc_expr_unrecognised_punctuation' => 'Error con la expresión: Carácter de puntuación no reconocido "$1"', |
| 620 | + 'pfunc_expr_unclosed_bracket' => 'Error con la expresión: Paréntesis sin cerrar', |
| 621 | + 'pfunc_expr_division_by_zero' => 'División entre cero', |
| 622 | + 'pfunc_expr_invalid_argument' => 'Argumento incorrecto para $1: < -1 ó > 1', |
| 623 | + 'pfunc_expr_invalid_argument_ln' => 'Argumento incorrecto para ln: <= 0', |
| 624 | + 'pfunc_expr_unknown_error' => 'Error con la expresión: Error desconocido ($1)', |
| 625 | + 'pfunc_expr_not_a_number' => 'En $1: el resultado no es un número', |
| 626 | + 'pfunc_string_too_long' => 'Error: la cadena excede el límite de $1 caracteres', |
| 627 | +); |
| 628 | + |
| 629 | +/** Estonian (Eesti) |
| 630 | + * @author Pikne |
| 631 | + */ |
| 632 | +$messages['et'] = array( |
| 633 | + 'pfunc_desc' => 'Laiendab parserit loogiliste funktsioonidega.', |
| 634 | + 'pfunc_expr_division_by_zero' => 'Nulliga jagamine', |
| 635 | +); |
| 636 | + |
| 637 | +/** Basque (Euskara) |
| 638 | + * @author Kobazulo |
| 639 | + */ |
| 640 | +$messages['eu'] = array( |
| 641 | + 'pfunc_time_error' => 'Errorea: baliogabeko ordua', |
| 642 | + 'pfunc_time_too_long' => 'Errorea: #time dei gehiegi', |
| 643 | + 'pfunc_rel2abs_invalid_depth' => 'Errorea: Baliogabeko sakonera fitxategi bidean: "$1" (root puntutik gora sartzen saiatu da)', |
| 644 | + 'pfunc_expr_division_by_zero' => 'Zeroz zatitu', |
| 645 | +); |
| 646 | + |
| 647 | +/** Persian (فارسی) |
| 648 | + * @author Huji |
| 649 | + * @author Wayiran |
| 650 | + */ |
| 651 | +$messages['fa'] = array( |
| 652 | + 'pfunc_desc' => 'به تجزیهگر، دستورهای منطقی میافزاید', |
| 653 | + 'pfunc_time_error' => 'خطا: زمان غیرمجاز', |
| 654 | + 'pfunc_time_too_long' => 'خطا: فراخوانی بیش از حد #time', |
| 655 | + 'pfunc_rel2abs_invalid_depth' => 'خطا: عمق غیر مجاز در نشانی «$1» (تلاش برای دسترسی به یک نشانی فراتر از نشانی ریشه)', |
| 656 | + 'pfunc_expr_stack_exhausted' => 'خطای عبارت: پشته از دست رفته', |
| 657 | + 'pfunc_expr_unexpected_number' => 'خطای عبارت: عدد دور از انتظار', |
| 658 | + 'pfunc_expr_preg_match_failure' => 'خطای عبارت: خطای preg_match دور از انتظار', |
| 659 | + 'pfunc_expr_unrecognised_word' => 'خطای عبارت: کلمه ناشناخته «$1»', |
| 660 | + 'pfunc_expr_unexpected_operator' => 'خطای عبارت: عملگر $1 دور از انتظار', |
| 661 | + 'pfunc_expr_missing_operand' => 'خطای عبارت: عملگر گمشده برای $1', |
| 662 | + 'pfunc_expr_unexpected_closing_bracket' => 'خطای عبارت: پرانتز بسته اضافی', |
| 663 | + 'pfunc_expr_unrecognised_punctuation' => 'خطای عبارت: نویسه نقطهگذاری شناخته نشده «$1»', |
| 664 | + 'pfunc_expr_unclosed_bracket' => 'خطای عبارت: پرانتز بستهنشده', |
| 665 | + 'pfunc_expr_division_by_zero' => 'تقسیم بر صفر', |
| 666 | + 'pfunc_expr_invalid_argument' => 'پارامتر غیر مجاز برای $1: < -۱ یا > ۱', |
| 667 | + 'pfunc_expr_invalid_argument_ln' => 'پارامتر غیر مجاز برای لگاریتم طبیعی: <= صفر', |
| 668 | + 'pfunc_expr_unknown_error' => 'خطای عبارت: خطای ناشناخته ($1)', |
| 669 | + 'pfunc_expr_not_a_number' => 'در $1: نتیجه عدد نیست', |
| 670 | + 'pfunc_string_too_long' => 'خطا: رشته از محدودیت نویسهای $1 تجاوز میکند', |
| 671 | +); |
| 672 | + |
| 673 | +/** Finnish (Suomi) |
| 674 | + * @author Agony |
| 675 | + * @author Cimon Avaro |
| 676 | + * @author Nike |
| 677 | + */ |
| 678 | +$messages['fi'] = array( |
| 679 | + 'pfunc_desc' => 'Laajentaa jäsennintä loogisilla funktiolla.', |
| 680 | + 'pfunc_time_error' => 'Virhe: kelvoton aika', |
| 681 | + 'pfunc_time_too_long' => 'Virhe: liian monta #time-kutsua', |
| 682 | + 'pfunc_rel2abs_invalid_depth' => 'Virhe: Virheellinen syvyys polussa: $1 (ei juurisolmun sisällä)', |
| 683 | + 'pfunc_expr_stack_exhausted' => 'Virhe lausekkeessa: pino loppui', |
| 684 | + 'pfunc_expr_unexpected_number' => 'Virhe lausekkeessa: odottamaton numero', |
| 685 | + 'pfunc_expr_preg_match_failure' => 'Virhe lausekkeessa: <tt>preg_match</tt> palautti virheen', |
| 686 | + 'pfunc_expr_unrecognised_word' => 'Virhe lausekkeessa: tunnistamaton sana ”$1”', |
| 687 | + 'pfunc_expr_unexpected_operator' => 'Virhe lausekkeessa: odottamaton $1-operaattori', |
| 688 | + 'pfunc_expr_missing_operand' => 'Virhe lausekkeessa: operaattorin $1 edellyttämä operandi puuttuu', |
| 689 | + 'pfunc_expr_unexpected_closing_bracket' => 'Virhe lausekkeessa: odottamaton sulkeva sulkumerkki', |
| 690 | + 'pfunc_expr_unrecognised_punctuation' => 'Virhe lausekkeessa: tunnistamaton välimerkki ”$1”', |
| 691 | + 'pfunc_expr_unclosed_bracket' => 'Virhe ilmauksessa: sulkeva sulkumerkki puuttuu', |
| 692 | + 'pfunc_expr_division_by_zero' => 'Virhe: Jako nollalla', |
| 693 | + 'pfunc_expr_invalid_argument' => 'Virheellinen arvo $1: < -1 tai > 1', |
| 694 | + 'pfunc_expr_invalid_argument_ln' => 'Virheellinen arvo funktiolle ln: <= 0', |
| 695 | + 'pfunc_expr_unknown_error' => 'Virhe lausekkeessa: tuntematon virhe ($1)', |
| 696 | + 'pfunc_expr_not_a_number' => 'Lausekkeessa $1: tulos ei ole luku', |
| 697 | + 'pfunc_string_too_long' => 'Virhe: Merkkijono ylittää $1 merkin ylärajan', |
| 698 | +); |
| 699 | + |
| 700 | +/** French (Français) |
| 701 | + * @author Crochet.david |
| 702 | + * @author Grondin |
| 703 | + * @author IAlex |
| 704 | + * @author Sherbrooke |
| 705 | + * @author Urhixidur |
| 706 | + * @author Verdy p |
| 707 | + */ |
| 708 | +$messages['fr'] = array( |
| 709 | + 'pfunc_desc' => 'Améliore le parseur avec des fonctions logiques', |
| 710 | + 'pfunc_time_error' => 'Erreur : durée invalide', |
| 711 | + 'pfunc_time_too_long' => 'Erreur : appels trop nombreux à <code>#time</code>', |
| 712 | + 'pfunc_rel2abs_invalid_depth' => 'Erreur: profondeur invalide dans le chemin « $1 » (a essayé d’accéder à un niveau au-dessus du nœud racine)', |
| 713 | + 'pfunc_expr_stack_exhausted' => 'Erreur d’expression : pile épuisée', |
| 714 | + 'pfunc_expr_unexpected_number' => 'Erreur d’expression : nombre inattendu', |
| 715 | + 'pfunc_expr_preg_match_failure' => 'Erreur d’expression : échec inattendu de <code>preg_match</code>', |
| 716 | + 'pfunc_expr_unrecognised_word' => 'Erreur d’expression : mot « $1 » non reconnu', |
| 717 | + 'pfunc_expr_unexpected_operator' => "Erreur d’expression : opérateur '''$1''' inattendu", |
| 718 | + 'pfunc_expr_missing_operand' => "Erreur d’expression : opérande manquant pour '''$1'''", |
| 719 | + 'pfunc_expr_unexpected_closing_bracket' => 'Erreur d’expression : parenthèse fermante inattendue', |
| 720 | + 'pfunc_expr_unrecognised_punctuation' => 'Erreur d’expression : caractère de ponctuation « $1 » non reconnu', |
| 721 | + 'pfunc_expr_unclosed_bracket' => 'Erreur d’expression : parenthèse non fermée', |
| 722 | + 'pfunc_expr_division_by_zero' => 'Division par zéro', |
| 723 | + 'pfunc_expr_invalid_argument' => "Argument incorrect pour '''$1''' : < -1 ou > 1", |
| 724 | + 'pfunc_expr_invalid_argument_ln' => "Argument incorrect pour '''ln''' : ≤ 0", |
| 725 | + 'pfunc_expr_unknown_error' => 'Erreur d’expression : erreur inconnue ($1)', |
| 726 | + 'pfunc_expr_not_a_number' => 'Dans $1 : le résultat n’est pas un nombre', |
| 727 | + 'pfunc_string_too_long' => 'Erreur : La chaîne dépasse la limite maximale de $1 caractère{{PLURAL:$1||s}}', |
| 728 | +); |
| 729 | + |
| 730 | +/** Franco-Provençal (Arpetan) |
| 731 | + * @author ChrisPtDe |
| 732 | + */ |
| 733 | +$messages['frp'] = array( |
| 734 | + 'pfunc_desc' => 'Mèlyore lo parsor avouéc des fonccions logiques.', |
| 735 | + 'pfunc_time_error' => 'Èrror : temps envalido', |
| 736 | + 'pfunc_time_too_long' => 'Èrror : trop grant nombro d’apèls a <code>#time</code>', |
| 737 | + 'pfunc_rel2abs_invalid_depth' => 'Èrror : provondior envalida dens lo chemin « $1 » (at tâchiê d’arrevar a un nivél en-dessus du nuod racena)', |
| 738 | + 'pfunc_expr_stack_exhausted' => 'Èrror d’èxprèssion : pila èpouesiê', |
| 739 | + 'pfunc_expr_unexpected_number' => 'Èrror d’èxprèssion : nombro emprèvu', |
| 740 | + 'pfunc_expr_preg_match_failure' => 'Èrror d’èxprèssion : falyita emprèvua de <code>preg_match</code>', |
| 741 | + 'pfunc_expr_unrecognised_word' => 'Èrror d’èxprèssion : mot « $1 » pas recognu', |
| 742 | + 'pfunc_expr_unexpected_operator' => 'Èrror d’èxprèssion : opèrator « $1 » emprèvu', |
| 743 | + 'pfunc_expr_missing_operand' => 'Èrror d’èxprèssion : opèrando manquent por « $1 »', |
| 744 | + 'pfunc_expr_unexpected_closing_bracket' => 'Èrror d’èxprèssion : parentèsa cllosenta emprèvua', |
| 745 | + 'pfunc_expr_unrecognised_punctuation' => 'Èrror d’èxprèssion : caractèro de ponctuacion « $1 » pas recognu', |
| 746 | + 'pfunc_expr_unclosed_bracket' => 'Èrror d’èxprèssion : parentèsa pas cllôsa', |
| 747 | + 'pfunc_expr_division_by_zero' => 'Division per zérô', |
| 748 | + 'pfunc_expr_invalid_argument' => 'Argument fôx por « $1 » : < -1 ou ben > 1', |
| 749 | + 'pfunc_expr_invalid_argument_ln' => 'Argument fôx por « ln » : ≤ 0', |
| 750 | + 'pfunc_expr_unknown_error' => 'Èrror d’èxprèssion : èrror encognua ($1)', |
| 751 | + 'pfunc_expr_not_a_number' => 'Dens $1 : lo rèsultat est pas un nombro', |
| 752 | + 'pfunc_string_too_long' => 'Èrror : la chêna dèpâsse la limita d’amont de $1 caractèro{{PLURAL:$1||s}}', |
| 753 | +); |
| 754 | + |
| 755 | +/** Galician (Galego) |
| 756 | + * @author Alma |
| 757 | + * @author Toliño |
| 758 | + * @author Xosé |
| 759 | + */ |
| 760 | +$messages['gl'] = array( |
| 761 | + 'pfunc_desc' => 'Mellora o analizador con funcións lóxicas', |
| 762 | + 'pfunc_time_error' => 'Erro: hora non válida', |
| 763 | + 'pfunc_time_too_long' => 'Erro: demasiadas chamadas #time', |
| 764 | + 'pfunc_rel2abs_invalid_depth' => 'Erro: profundidade da ruta non válida: "$1" (tentouse acceder a un nodo por riba do nodo raíz)', |
| 765 | + 'pfunc_expr_stack_exhausted' => 'Erro de expresión: pila esgotada', |
| 766 | + 'pfunc_expr_unexpected_number' => 'Erro de expresión: número inesperado', |
| 767 | + 'pfunc_expr_preg_match_failure' => 'Erro de expresión: fallo de preg_match inesperado', |
| 768 | + 'pfunc_expr_unrecognised_word' => 'Erro de expresión: descoñécese a palabra "$1"', |
| 769 | + 'pfunc_expr_unexpected_operator' => 'Erro de expresión: operador "$1" inesperado', |
| 770 | + 'pfunc_expr_missing_operand' => 'Erro de expresión: falta un operador para $1', |
| 771 | + 'pfunc_expr_unexpected_closing_bracket' => 'Erro de expresión: corchete de peche inesperado', |
| 772 | + 'pfunc_expr_unrecognised_punctuation' => 'Erro de expresión: descoñécese o signo de puntuación "$1"', |
| 773 | + 'pfunc_expr_unclosed_bracket' => 'Erro de expresión: paréntese sen pechar', |
| 774 | + 'pfunc_expr_division_by_zero' => 'División por cero', |
| 775 | + 'pfunc_expr_invalid_argument' => 'Argumento inválido para $1: < -1 ou > 1', |
| 776 | + 'pfunc_expr_invalid_argument_ln' => 'Argumento inválido para ln: <= 0', |
| 777 | + 'pfunc_expr_unknown_error' => 'Erro de expresión: erro descoñecido ($1)', |
| 778 | + 'pfunc_expr_not_a_number' => 'En $1: o resultado non é un número', |
| 779 | + 'pfunc_string_too_long' => 'Erro: a cadea excede o límite de $1 caracteres', |
| 780 | +); |
| 781 | + |
| 782 | +/** Ancient Greek (Ἀρχαία ἑλληνικὴ) |
| 783 | + * @author Omnipaedista |
| 784 | + */ |
| 785 | +$messages['grc'] = array( |
| 786 | + 'pfunc_expr_division_by_zero' => 'Διαίρεσις διὰ τοῦ μηδενός', |
| 787 | +); |
| 788 | + |
| 789 | +/** Swiss German (Alemannisch) |
| 790 | + * @author Als-Holder |
| 791 | + */ |
| 792 | +$messages['gsw'] = array( |
| 793 | + 'pfunc_desc' => 'Erwyteret dr Parser um logischi Funktione', |
| 794 | + 'pfunc_time_error' => 'Fähler: uugiltigi Zytaagab', |
| 795 | + 'pfunc_time_too_long' => 'Fähler: z vyyl #time-Ufruef', |
| 796 | + 'pfunc_rel2abs_invalid_depth' => 'Fähler: uugültigi Tiefi im Pfad: „$1“ (Versuech, uf e Chnotepunkt oberhalb vum Hauptchnotepunkt zuezgryfe)', |
| 797 | + 'pfunc_expr_stack_exhausted' => 'Expression-Fähler: Stackiberlauf', |
| 798 | + 'pfunc_expr_unexpected_number' => 'Expression-Fähler: Nit erwarteti Zahl', |
| 799 | + 'pfunc_expr_preg_match_failure' => 'Expression-Fähler: Nit erwarteti „preg_match“-Fählfunktion', |
| 800 | + 'pfunc_expr_unrecognised_word' => 'Expression-Fähler: Nit erkannt Wort „$1“', |
| 801 | + 'pfunc_expr_unexpected_operator' => 'Expression-Fähler: Nit erwartete Operator: <tt>$1</tt>', |
| 802 | + 'pfunc_expr_missing_operand' => 'Expression-Fähler: Operand fir <tt>$1</tt> fählt', |
| 803 | + 'pfunc_expr_unexpected_closing_bracket' => 'Expression-Fähler: Nit erwarteti schließendi eckigi Chlammere', |
| 804 | + 'pfunc_expr_unrecognised_punctuation' => 'Expression-Fähler: Nit erkannt Satzzeiche „$1“', |
| 805 | + 'pfunc_expr_unclosed_bracket' => 'Expression-Fähler: Nit gschlosseni eckige Chlammere', |
| 806 | + 'pfunc_expr_division_by_zero' => 'Expression-Fähler: Division dur Null', |
| 807 | + 'pfunc_expr_invalid_argument' => 'Nit giltig Argument fir $1: < -1 oder > 1', |
| 808 | + 'pfunc_expr_invalid_argument_ln' => 'Nit giltig Argument fir ln: <= 0', |
| 809 | + 'pfunc_expr_unknown_error' => 'Expression-Fähler: Nit bekannte Fehler ($1)', |
| 810 | + 'pfunc_expr_not_a_number' => 'Expression-Fähler: In $1: Ergebnis isch kei Zahl', |
| 811 | + 'pfunc_string_too_long' => 'Fähler: d Zeichechette het meh wie di zuelässig Zahl vu $1 Zeiche', |
| 812 | +); |
| 813 | + |
| 814 | +/** Hebrew (עברית) */ |
| 815 | +$messages['he'] = array( |
| 816 | + 'pfunc_desc' => 'הוספת פונקציות לוגיות למפענח', |
| 817 | + 'pfunc_time_error' => 'שגיאה: זמן שגוי', |
| 818 | + 'pfunc_time_too_long' => 'שגיאה: שימוש ב"#זמן" פעמים רבות מדי', |
| 819 | + 'pfunc_rel2abs_invalid_depth' => 'שגיאה: עומק שגוי בנתיב: "$1" (ניסיון כניסה לצומת מעל צומת השורש)', |
| 820 | + 'pfunc_expr_stack_exhausted' => 'שגיאה בביטוי: המחסנית מלאה', |
| 821 | + 'pfunc_expr_unexpected_number' => 'שגיאה בביטוי: מספר בלתי צפוי', |
| 822 | + 'pfunc_expr_preg_match_failure' => 'שגיאה בביטוי: כישלון בלתי צפוי של התאמת ביטוי רגולרי', |
| 823 | + 'pfunc_expr_unrecognised_word' => 'שגיאה בביטוי: מילה בלתי מזוהה, "$1"', |
| 824 | + 'pfunc_expr_unexpected_operator' => 'שגיאה בביטוי: אופרנד $1 בלתי צפוי', |
| 825 | + 'pfunc_expr_missing_operand' => 'שגיאה בביטוי: חסר אופרנד ל־$1', |
| 826 | + 'pfunc_expr_unexpected_closing_bracket' => 'שגיאה בביטוי: סוגריים סוגרים בלתי צפויים', |
| 827 | + 'pfunc_expr_unrecognised_punctuation' => 'שגיאה בביטוי: תו פיסוק בלתי מזוהה, "$1"', |
| 828 | + 'pfunc_expr_unclosed_bracket' => 'שגיאה בביטוי: סוגריים בלתי סגורים', |
| 829 | + 'pfunc_expr_division_by_zero' => 'חלוקה באפס', |
| 830 | + 'pfunc_expr_invalid_argument' => 'ארגומנט בלתי תקין לפונקציה $1: < -1 או > 1', |
| 831 | + 'pfunc_expr_invalid_argument_ln' => 'ארגומנט בלתי תקין לפונקציה ln: <= 0', |
| 832 | + 'pfunc_expr_unknown_error' => 'שגיאה בביטוי: שגיאה בלתי ידועה ($1)', |
| 833 | + 'pfunc_expr_not_a_number' => 'התוצאה של $1 אינה מספר', |
| 834 | + 'pfunc_string_too_long' => 'שגיאה: המחרוזת עוברת את גבול התווים המותר, $1', |
| 835 | +); |
| 836 | + |
| 837 | +/** Hindi (हिन्दी) |
| 838 | + * @author Kaustubh |
| 839 | + * @author Shyam |
| 840 | + */ |
| 841 | +$messages['hi'] = array( |
| 842 | + 'pfunc_desc' => 'लॉजिकल कार्योंका इस्तेमाल करके पार्सर बढायें', |
| 843 | + 'pfunc_time_error' => 'गलती: गलत समय', |
| 844 | + 'pfunc_time_too_long' => 'गलती: बहुत सारे #time कॉल', |
| 845 | + 'pfunc_rel2abs_invalid_depth' => 'गलती: पाथ में गलत गहराई: "$1" (रूट नोडके उपर वाले नोड खोजने की कोशीश की)', |
| 846 | + 'pfunc_expr_stack_exhausted' => 'एक्स्प्रेशनमें गलती: स्टॅक खतम हो गया', |
| 847 | + 'pfunc_expr_unexpected_number' => 'एक्स्प्रेशनमें गलती: अनपेक्षित संख्या', |
| 848 | + 'pfunc_expr_preg_match_failure' => 'एक्स्प्रेशन गलती: अनपेक्षित preg_match रद्दीकरण', |
| 849 | + 'pfunc_expr_unrecognised_word' => 'एक्स्प्रेशन गलती: अनिश्चित शब्द "$1"', |
| 850 | + 'pfunc_expr_unexpected_operator' => 'एक्स्प्रेशन गलती: अनपेक्षित $1 ओपरेटर', |
| 851 | + 'pfunc_expr_missing_operand' => 'एक्स्प्रेशन गलती: $1 का घटक मिला नहीं', |
| 852 | + 'pfunc_expr_unexpected_closing_bracket' => 'एक्स्प्रेशन गलती: अनपेक्षित समाप्ति ब्रैकेट', |
| 853 | + 'pfunc_expr_unrecognised_punctuation' => 'एक्स्प्रेशन गलती: अनपेक्षित उद्गार चिन्ह "$1"', |
| 854 | + 'pfunc_expr_unclosed_bracket' => 'एक्स्प्रेशन गलती: ब्रैकेट बंद नहीं किया', |
| 855 | + 'pfunc_expr_division_by_zero' => 'शून्य से भाग', |
| 856 | + 'pfunc_expr_invalid_argument' => '$1: < -1 or > 1 के लिए अमान्य कथन', |
| 857 | + 'pfunc_expr_invalid_argument_ln' => 'ln: <= 0 के लिए अमान्य कथन', |
| 858 | + 'pfunc_expr_unknown_error' => 'एक्स्प्रेशन गलती: अज्ञात गलती ($1)', |
| 859 | + 'pfunc_expr_not_a_number' => '$1 में: रिज़ल्ट संख्यामें नहीं हैं', |
| 860 | +); |
| 861 | + |
| 862 | +/** Croatian (Hrvatski) |
| 863 | + * @author Dalibor Bosits |
| 864 | + * @author Dnik |
| 865 | + * @author Ex13 |
| 866 | + * @author SpeedyGonsales |
| 867 | + */ |
| 868 | +$messages['hr'] = array( |
| 869 | + 'pfunc_desc' => 'Mogućnost proširivanja parsera logičkim funkcijama', |
| 870 | + 'pfunc_time_error' => 'Greška: oblik vremena nije valjan', |
| 871 | + 'pfunc_time_too_long' => 'Greška: prevelik broj #time (vremenskih) poziva', |
| 872 | + 'pfunc_rel2abs_invalid_depth' => 'Greška: Nevaljana dubina putanje: "$1" (pokušaj pristupanja čvoru iznad korijenskog)', |
| 873 | + 'pfunc_expr_stack_exhausted' => 'Greška u predlošku: prepunjen stog', |
| 874 | + 'pfunc_expr_unexpected_number' => 'Greška u predlošku: Neočekivan broj', |
| 875 | + 'pfunc_expr_preg_match_failure' => 'Greška u predlošku: Neočekivana preg_match greška', |
| 876 | + 'pfunc_expr_unrecognised_word' => 'Greška u predlošku: Nepoznata riječ "$1"', |
| 877 | + 'pfunc_expr_unexpected_operator' => 'Greška u predlošku: Neočekivani operator $1', |
| 878 | + 'pfunc_expr_missing_operand' => 'Greška u predlošku: Operator $1 nedostaje', |
| 879 | + 'pfunc_expr_unexpected_closing_bracket' => 'Greška u predlošku: Neočekivana zatvorena zagrada', |
| 880 | + 'pfunc_expr_unrecognised_punctuation' => 'Greška u predlošku: Nepoznat interpunkcijski znak "$1"', |
| 881 | + 'pfunc_expr_unclosed_bracket' => 'Greška u predlošku: Nezatvorene zagrade', |
| 882 | + 'pfunc_expr_division_by_zero' => 'Dijeljenje s nulom', |
| 883 | + 'pfunc_expr_invalid_argument' => 'Nevaljani argumenti za $1: < -1 ili > 1', |
| 884 | + 'pfunc_expr_invalid_argument_ln' => 'Nevaljani argument za ln: <= 0', |
| 885 | + 'pfunc_expr_unknown_error' => 'Greška u predlošku: Nepoznata greška ($1)', |
| 886 | + 'pfunc_expr_not_a_number' => 'U $1: rezultat nije broj', |
| 887 | + 'pfunc_string_too_long' => 'Greška: Niz prelazi ograničenje od $1 znakova', |
| 888 | +); |
| 889 | + |
| 890 | +/** Upper Sorbian (Hornjoserbsce) |
| 891 | + * @author Michawiki |
| 892 | + */ |
| 893 | +$messages['hsb'] = array( |
| 894 | + 'pfunc_desc' => 'Parser wo logiske funkcije rozšěrić', |
| 895 | + 'pfunc_time_error' => 'Zmylk: njepłaćiwe časowe podaće', |
| 896 | + 'pfunc_time_too_long' => 'Zmylk: přewjele zawołanjow #time', |
| 897 | + 'pfunc_rel2abs_invalid_depth' => 'Zmylk: Njepłaćiwa hłubokosć w pućiku: "$1" (Pospyt, zo by na suk wyše hłowneho suka dohrabnyło)', |
| 898 | + 'pfunc_expr_stack_exhausted' => 'Wurazowy zmylk: Staplowy skład wučerpany', |
| 899 | + 'pfunc_expr_unexpected_number' => 'Wurazowy zmylk: Njewočakowana ličba', |
| 900 | + 'pfunc_expr_preg_match_failure' => 'Wurazowy zmylk: Njewočakowana zmylna funkcija "preg_match"', |
| 901 | + 'pfunc_expr_unrecognised_word' => 'Wurazowy zmylk: Njespóznate słowo "$1"', |
| 902 | + 'pfunc_expr_unexpected_operator' => 'Wurazowy zmylk: Njewočakowany operator $1', |
| 903 | + 'pfunc_expr_missing_operand' => 'Wurazowy zmylk: Falowacy operand za $1', |
| 904 | + 'pfunc_expr_unexpected_closing_bracket' => 'Wurazowy zmylk: Njewočakowana kónčna róžkata spinka', |
| 905 | + 'pfunc_expr_unrecognised_punctuation' => 'Wurazowy zmylk: Njespóznate interpunkciske znamješko "$1"', |
| 906 | + 'pfunc_expr_unclosed_bracket' => 'Wurazowy zmylk: Njewotzamknjena róžkata spinka', |
| 907 | + 'pfunc_expr_division_by_zero' => 'Diwizija přez nulu', |
| 908 | + 'pfunc_expr_invalid_argument' => 'Njepłaćiwy argument za $1: < -1 abo > 1', |
| 909 | + 'pfunc_expr_invalid_argument_ln' => 'Njepłaćiwy argument za ln: <= 0', |
| 910 | + 'pfunc_expr_unknown_error' => 'Wurazowy zmylk: Njeznaty zmylk ($1)', |
| 911 | + 'pfunc_expr_not_a_number' => 'W $1: Wuslědk ličba njeje', |
| 912 | + 'pfunc_string_too_long' => 'Zmylk: Znamješkowy slěd překročuje limit $1 znamješkow', |
| 913 | +); |
| 914 | + |
| 915 | +/** Hungarian (Magyar) |
| 916 | + * @author Dani |
| 917 | + */ |
| 918 | +$messages['hu'] = array( |
| 919 | + 'pfunc_desc' => 'Az értelmező kiegészítése logikai funkciókkal', |
| 920 | + 'pfunc_time_error' => 'Hiba: érvénytelen idő', |
| 921 | + 'pfunc_time_too_long' => 'Hiba: a #time túl sokszor lett meghívva', |
| 922 | + 'pfunc_rel2abs_invalid_depth' => 'Hiba: nem megfelelő a mélység az elérési útban: „$1” (egy olyan csomópontot akartál elérni, amely a gyökércsomópont felett van)', |
| 923 | + 'pfunc_expr_stack_exhausted' => 'Hiba a kifejezésben: a verem kiürült', |
| 924 | + 'pfunc_expr_unexpected_number' => 'Hiba a kifejezésben: nem várt szám', |
| 925 | + 'pfunc_expr_preg_match_failure' => 'Hiba a kifejezésben: a preg_match váratlanul hibát jelzett', |
| 926 | + 'pfunc_expr_unrecognised_word' => 'Hiba a kifejezésben: ismeretlen „$1” szó', |
| 927 | + 'pfunc_expr_unexpected_operator' => 'Hiba a kifejezésben: nem várt $1 operátor', |
| 928 | + 'pfunc_expr_missing_operand' => 'Hiba a kifejezésben: $1 egyik operandusa hiányzik', |
| 929 | + 'pfunc_expr_unexpected_closing_bracket' => 'Hiba a kifejezésben: nem várt zárójel', |
| 930 | + 'pfunc_expr_unrecognised_punctuation' => 'Hiba a kifejezésben: ismeretlen „$1” központozó karakter', |
| 931 | + 'pfunc_expr_unclosed_bracket' => 'Hiba a kifejezésben: lezáratlan zárójel', |
| 932 | + 'pfunc_expr_division_by_zero' => 'Nullával való osztás', |
| 933 | + 'pfunc_expr_invalid_argument' => '$1 érvénytelen paramétert kapott: < -1 vagy > 1', |
| 934 | + 'pfunc_expr_invalid_argument_ln' => 'Az ln érvénytelen paramétert kapott: <= 0', |
| 935 | + 'pfunc_expr_unknown_error' => 'Hiba a kifejezésben: ismeretlen hiba ($1)', |
| 936 | + 'pfunc_expr_not_a_number' => '$1: az eredmény nem szám', |
| 937 | + 'pfunc_string_too_long' => 'Hiba: a sztring túllépte a(z) $1 karakteres határt', |
| 938 | +); |
| 939 | + |
| 940 | +/** Interlingua (Interlingua) |
| 941 | + * @author McDutchie |
| 942 | + */ |
| 943 | +$messages['ia'] = array( |
| 944 | + 'pfunc_desc' => 'Meliorar le analysator syntactic con functiones logic', |
| 945 | + 'pfunc_time_error' => 'Error: tempore invalide', |
| 946 | + 'pfunc_time_too_long' => 'Error: troppo de appellos a #time', |
| 947 | + 'pfunc_rel2abs_invalid_depth' => 'Error: Profunditate invalide in cammino: "$1" (essayava acceder a un nodo superior al radice)', |
| 948 | + 'pfunc_expr_stack_exhausted' => 'Error in expression: Pila exhaurite', |
| 949 | + 'pfunc_expr_unexpected_number' => 'Error in expression: Numero non expectate', |
| 950 | + 'pfunc_expr_preg_match_failure' => 'Error in expression: Fallimento non expectate in preg_match', |
| 951 | + 'pfunc_expr_unrecognised_word' => 'Error in expression: Parola "$1" non recognoscite', |
| 952 | + 'pfunc_expr_unexpected_operator' => 'Error in expression: Operator $1 non expectate', |
| 953 | + 'pfunc_expr_missing_operand' => 'Error in expression: Manca un operando pro $1', |
| 954 | + 'pfunc_expr_unexpected_closing_bracket' => 'Error in expression: Accollada clause non expectate', |
| 955 | + 'pfunc_expr_unrecognised_punctuation' => 'Error in expression: Character de punctuation "$1" non recognoscite', |
| 956 | + 'pfunc_expr_unclosed_bracket' => 'Error in expression: Accollada non claudite', |
| 957 | + 'pfunc_expr_division_by_zero' => 'Division per zero', |
| 958 | + 'pfunc_expr_invalid_argument' => 'Argumento invalide pro $1: < -1 o > 1', |
| 959 | + 'pfunc_expr_invalid_argument_ln' => 'Argumento invalide pro ln: ≤ 0', |
| 960 | + 'pfunc_expr_unknown_error' => 'Error de expression: Error incognite ($1)', |
| 961 | + 'pfunc_expr_not_a_number' => 'In $1: le resultato non es un numero', |
| 962 | + 'pfunc_string_too_long' => 'Error: Le catena excede le limite de $1 {{PLURAL:$1|character|characteres}}', |
| 963 | +); |
| 964 | + |
| 965 | +/** Indonesian (Bahasa Indonesia) |
| 966 | + * @author IvanLanin |
| 967 | + * @author Meursault2004 |
| 968 | + * @author Rex |
| 969 | + */ |
| 970 | +$messages['id'] = array( |
| 971 | + 'pfunc_desc' => 'Mengembangkan parser dengan fungsi logis', |
| 972 | + 'pfunc_time_error' => 'Kesalahan: waktu tidak valid', |
| 973 | + 'pfunc_time_too_long' => 'Kesalahan: Pemanggilan #time terlalu banyak', |
| 974 | + 'pfunc_rel2abs_invalid_depth' => 'Kesalahan: Kedalaman path tidak valid: "$1" (mencoba mengakses simpul di atas simpul akar)', |
| 975 | + 'pfunc_expr_stack_exhausted' => 'Kesalahan ekspresi: Stack habis', |
| 976 | + 'pfunc_expr_unexpected_number' => 'Kesalahan ekspresi: Angka yang tak terduga', |
| 977 | + 'pfunc_expr_preg_match_failure' => 'Kesalahan ekspresi: Kegagalan preg_match tak terduga', |
| 978 | + 'pfunc_expr_unrecognised_word' => 'Kesalahan ekspresi: Kata "$1" tak dikenal', |
| 979 | + 'pfunc_expr_unexpected_operator' => 'Kesalahan ekspresi: Operator $1 tak terduga', |
| 980 | + 'pfunc_expr_missing_operand' => 'Kesalahan ekspresi: Operand tak ditemukan untuk $1', |
| 981 | + 'pfunc_expr_unexpected_closing_bracket' => 'Kesalahan ekspresi: Kurung tutup tak terduga', |
| 982 | + 'pfunc_expr_unrecognised_punctuation' => 'Kesalahan ekspresi: Karakter tanda baca "$1" tak dikenali', |
| 983 | + 'pfunc_expr_unclosed_bracket' => 'Kesalahan ekspresi: Kurung tanpa tutup', |
| 984 | + 'pfunc_expr_division_by_zero' => 'Pembagian oleh nol', |
| 985 | + 'pfunc_expr_invalid_argument' => 'Argumen tidak berlaku untuk $1: < -1 or > 1', |
| 986 | + 'pfunc_expr_invalid_argument_ln' => 'Argumen tidak berlaku untuk ln: <= 0', |
| 987 | + 'pfunc_expr_unknown_error' => 'Kesalahan ekspresi: Kesalahan tak dikenal ($1)', |
| 988 | + 'pfunc_expr_not_a_number' => 'Pada $1: hasilnya bukan angka', |
| 989 | + 'pfunc_string_too_long' => 'Kesalahan: String melebihi limit $1 karakter', |
| 990 | +); |
| 991 | + |
| 992 | +/** Ido (Ido) |
| 993 | + * @author Malafaya |
| 994 | + */ |
| 995 | +$messages['io'] = array( |
| 996 | + 'pfunc_time_error' => 'Eroro: ne-valida tempo', |
| 997 | + 'pfunc_expr_division_by_zero' => 'Divido per zero', |
| 998 | +); |
| 999 | + |
| 1000 | +/** Italian (Italiano) |
| 1001 | + * @author BrokenArrow |
| 1002 | + * @author Darth Kule |
| 1003 | + * @author Pietrodn |
| 1004 | + */ |
| 1005 | +$messages['it'] = array( |
| 1006 | + 'pfunc_desc' => 'Aggiunge al parser una serie di funzioni logiche', |
| 1007 | + 'pfunc_time_error' => 'Errore: orario non valido', |
| 1008 | + 'pfunc_time_too_long' => 'Errore: troppe chiamate a #time', |
| 1009 | + 'pfunc_rel2abs_invalid_depth' => 'Errore: profondità non valida nel percorso "$1" (si è tentato di accedere a un nodo superiore alla radice)', |
| 1010 | + 'pfunc_expr_stack_exhausted' => "Errore nell'espressione: stack esaurito", |
| 1011 | + 'pfunc_expr_unexpected_number' => "Errore nell'espressione: numero inatteso", |
| 1012 | + 'pfunc_expr_preg_match_failure' => "Errore nell'espressione: errore inatteso in preg_match", |
| 1013 | + 'pfunc_expr_unrecognised_word' => 'Errore nell\'espressione: parola "$1" non riconosciuta', |
| 1014 | + 'pfunc_expr_unexpected_operator' => "Errore nell'espressione: operatore $1 inatteso", |
| 1015 | + 'pfunc_expr_missing_operand' => "Errore nell'espressione: operando mancante per $1", |
| 1016 | + 'pfunc_expr_unexpected_closing_bracket' => "Errore nell'espressione: parentesi chiusa inattesa", |
| 1017 | + 'pfunc_expr_unrecognised_punctuation' => 'Errore nell\'espressione: carattere di punteggiatura "$1" non riconosciuto', |
| 1018 | + 'pfunc_expr_unclosed_bracket' => "Errore nell'espressione: parentesi non chiusa", |
| 1019 | + 'pfunc_expr_division_by_zero' => 'Divisione per zero', |
| 1020 | + 'pfunc_expr_invalid_argument' => 'Argomento non valido per $1: < -1 o > 1', |
| 1021 | + 'pfunc_expr_invalid_argument_ln' => 'Argomento non valido per ln: <= 0', |
| 1022 | + 'pfunc_expr_unknown_error' => "Errore nell'espressione: errore sconosciuto ($1)", |
| 1023 | + 'pfunc_expr_not_a_number' => 'In $1: il risultato non è un numero', |
| 1024 | + 'pfunc_string_too_long' => 'Errore: la stringa supera il limite di $1 {{PLURAL:$1|carattere|caratteri}}', |
| 1025 | +); |
| 1026 | + |
| 1027 | +/** Japanese (日本語) |
| 1028 | + * @author Aotake |
| 1029 | + * @author Fryed-peach |
| 1030 | + * @author JtFuruhata |
| 1031 | + * @author 青子守歌 |
| 1032 | + */ |
| 1033 | +$messages['ja'] = array( |
| 1034 | + 'pfunc_desc' => 'パーサーに論理関数を追加して拡張する', |
| 1035 | + 'pfunc_time_error' => 'エラー: 時刻が不正です', |
| 1036 | + 'pfunc_time_too_long' => 'エラー: #time 呼び出しが多すぎます', |
| 1037 | + 'pfunc_rel2abs_invalid_depth' => 'エラー: パス "$1" の階層が不正です(ルート階層からのアクセスをお試しください)', |
| 1038 | + 'pfunc_expr_stack_exhausted' => '構文エラー: スタックが空です', |
| 1039 | + 'pfunc_expr_unexpected_number' => '構文エラー: 予期せぬ数字です', |
| 1040 | + 'pfunc_expr_preg_match_failure' => '構文エラー: 予期せぬ形で preg_match に失敗しました', |
| 1041 | + 'pfunc_expr_unrecognised_word' => '構文エラー: "$1" は認識できません', |
| 1042 | + 'pfunc_expr_unexpected_operator' => '構文エラー: 予期せぬ演算子 $1 があります', |
| 1043 | + 'pfunc_expr_missing_operand' => '構文エラー: $1 の演算対象がありません', |
| 1044 | + 'pfunc_expr_unexpected_closing_bracket' => '構文エラー: 予期せぬ閉じ括弧です', |
| 1045 | + 'pfunc_expr_unrecognised_punctuation' => '構文エラー: 認識できない区切り文字 "$1" があります', |
| 1046 | + 'pfunc_expr_unclosed_bracket' => '構文エラー: 括弧が閉じられていません', |
| 1047 | + 'pfunc_expr_division_by_zero' => '0で除算しました', |
| 1048 | + 'pfunc_expr_invalid_argument' => '$1の引数が無効です: < -1 または > 1', |
| 1049 | + 'pfunc_expr_invalid_argument_ln' => 'ln の引数が無効です: <= 0', |
| 1050 | + 'pfunc_expr_unknown_error' => '構文エラー: 予期せぬエラー($1)', |
| 1051 | + 'pfunc_expr_not_a_number' => '$1: 結果が数字ではありません', |
| 1052 | + 'pfunc_string_too_long' => 'エラー: 文字列が文字数制限 $1 を超えました', |
| 1053 | +); |
| 1054 | + |
| 1055 | +/** Javanese (Basa Jawa) |
| 1056 | + * @author Meursault2004 |
| 1057 | + */ |
| 1058 | +$messages['jv'] = array( |
| 1059 | + 'pfunc_desc' => 'Kembangna parser mawa fungsi logis', |
| 1060 | + 'pfunc_time_error' => 'Kaluputan: wektu ora absah', |
| 1061 | + 'pfunc_time_too_long' => 'Kaluputan: Olèhé nyeluk #time kakèhan', |
| 1062 | + 'pfunc_rel2abs_invalid_depth' => 'Kaluputan: Kajeroané path ora absah: "$1" (nyoba ngakses simpul sadhuwuring simpul oyot)', |
| 1063 | + 'pfunc_expr_stack_exhausted' => 'Kaluputan èksprèsi: Stack entèk', |
| 1064 | + 'pfunc_expr_unexpected_number' => 'Kaluputan èksprèsi: Angka ora kaduga', |
| 1065 | + 'pfunc_expr_preg_match_failure' => 'Kaluputan èksprèsi: Kaluputan preg_match sing ora kaduga', |
| 1066 | + 'pfunc_expr_unrecognised_word' => 'Kaluputan èksprèsi: Tembung "$1" ora ditepungi', |
| 1067 | + 'pfunc_expr_unexpected_operator' => 'Kaluputan èksprèsi: Operator $1 ora kaduga', |
| 1068 | + 'pfunc_expr_missing_operand' => 'Kaluputan èksprèsi: Operand ora ditemokaké kanggo $1', |
| 1069 | + 'pfunc_expr_unexpected_closing_bracket' => 'Kaluputan èksprèsi: Kurung tutup ora kaduga', |
| 1070 | + 'pfunc_expr_unrecognised_punctuation' => 'Kaluputan èksprèsi: Karakter tandha wacan "$1" ora ditepungi', |
| 1071 | + 'pfunc_expr_unclosed_bracket' => 'Kaluputan èksprèsi: Kurung tanpa tutup', |
| 1072 | + 'pfunc_expr_division_by_zero' => 'Dipara karo das (nol)', |
| 1073 | + 'pfunc_expr_invalid_argument' => 'Argumèn ora absah kanggo $1: < -1 utawa > 1', |
| 1074 | + 'pfunc_expr_invalid_argument_ln' => 'Argumèn ora absah kanggo ln: <= 0', |
| 1075 | + 'pfunc_expr_unknown_error' => 'Kaluputan èksprèsi: Kaluputan ora ditepungi ($1)', |
| 1076 | + 'pfunc_expr_not_a_number' => 'Ing $1: pituwasé dudu angka', |
| 1077 | +); |
| 1078 | + |
| 1079 | +/** Georgian (ქართული) |
| 1080 | + * @author BRUTE |
| 1081 | + */ |
| 1082 | +$messages['ka'] = array( |
| 1083 | + 'pfunc_time_error' => 'შეცდომა: არასწორი დრო', |
| 1084 | + 'pfunc_expr_invalid_argument' => 'მცდარი არგუმენტი $1: < -1 ან > 1', |
| 1085 | + 'pfunc_expr_invalid_argument_ln' => 'მცდარი არგუმენტი ln: <= 0', |
| 1086 | +); |
| 1087 | + |
| 1088 | +/** Kazakh (Arabic script) (قازاقشا (تٴوتە)) */ |
| 1089 | +$messages['kk-arab'] = array( |
| 1090 | + 'pfunc_time_error' => 'قاتە: جارامسىز ۋاقىت', |
| 1091 | + 'pfunc_time_too_long' => 'قاتە: #time شاقىرۋى تىم كوپ', |
| 1092 | + 'pfunc_rel2abs_invalid_depth' => 'قاتە: مىنا جولدىڭ جارامسىز تەرەندىگى «$1» (تامىر ٴتۇيىننىڭ ۇستىندەگى تۇيىنگە قاتىناۋ تالابى)', |
| 1093 | + 'pfunc_expr_stack_exhausted' => 'ايتىلىم قاتەسى: ستەك سارقىلدى', |
| 1094 | + 'pfunc_expr_unexpected_number' => 'ايتىلىم قاتەسى: كۇتىلمەگەن سان', |
| 1095 | + 'pfunc_expr_preg_match_failure' => 'ايتىلىم قاتەسى: كۇتىلمەگەن preg_match ساتسىزدىگى', |
| 1096 | + 'pfunc_expr_unrecognised_word' => 'ايتىلىم قاتەسى: تانىلماعان ٴسوز «$1»', |
| 1097 | + 'pfunc_expr_unexpected_operator' => 'ايتىلىم قاتەسى: كۇتىلمەگەن وپەراتور $1', |
| 1098 | + 'pfunc_expr_missing_operand' => 'ايتىلىم قاتەسى: $1 ٴۇشىن جوعالعان وپەراند', |
| 1099 | + 'pfunc_expr_unexpected_closing_bracket' => 'ايتىلىم قاتەسى: كۇتىلمەگەن جاباتىن جاقشا', |
| 1100 | + 'pfunc_expr_unrecognised_punctuation' => 'ايتىلىم قاتەسى: تانىلماعان تىنىس بەلگىسى «$1»', |
| 1101 | + 'pfunc_expr_unclosed_bracket' => 'ايتىلىم قاتەسى: جابىلماعان جاقشا', |
| 1102 | + 'pfunc_expr_division_by_zero' => 'نولگە ٴبولىنۋى', |
| 1103 | + 'pfunc_expr_unknown_error' => 'ايتىلىم قاتەسى: بەلگىسىز قاتە ($1)', |
| 1104 | + 'pfunc_expr_not_a_number' => '$1 دەگەندە: ناتىيجە سان ەمەس', |
| 1105 | +); |
| 1106 | + |
| 1107 | +/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */ |
| 1108 | +$messages['kk-cyrl'] = array( |
| 1109 | + 'pfunc_time_error' => 'Қате: жарамсыз уақыт', |
| 1110 | + 'pfunc_time_too_long' => 'Қате: #time шақыруы тым көп', |
| 1111 | + 'pfunc_rel2abs_invalid_depth' => 'Қате: Мына жолдың жарамсыз терендігі «$1» (тамыр түйіннің үстіндегі түйінге қатынау талабы)', |
| 1112 | + 'pfunc_expr_stack_exhausted' => 'Айтылым қатесі: Стек сарқылды', |
| 1113 | + 'pfunc_expr_unexpected_number' => 'Айтылым қатесі: Күтілмеген сан', |
| 1114 | + 'pfunc_expr_preg_match_failure' => 'Айтылым қатесі: Күтілмеген preg_match сәтсіздігі', |
| 1115 | + 'pfunc_expr_unrecognised_word' => 'Айтылым қатесі: Танылмаған сөз «$1»', |
| 1116 | + 'pfunc_expr_unexpected_operator' => 'Айтылым қатесі: Күтілмеген оператор $1', |
| 1117 | + 'pfunc_expr_missing_operand' => 'Айтылым қатесі: $1 үшін жоғалған операнд', |
| 1118 | + 'pfunc_expr_unexpected_closing_bracket' => 'Айтылым қатесі: Күтілмеген жабатын жақша', |
| 1119 | + 'pfunc_expr_unrecognised_punctuation' => 'Айтылым қатесі: Танылмаған тыныс белгісі «$1»', |
| 1120 | + 'pfunc_expr_unclosed_bracket' => 'Айтылым қатесі: Жабылмаған жақша', |
| 1121 | + 'pfunc_expr_division_by_zero' => 'Нөлге бөлінуі', |
| 1122 | + 'pfunc_expr_unknown_error' => 'Айтылым қатесі: Белгісіз қате ($1)', |
| 1123 | + 'pfunc_expr_not_a_number' => '$1 дегенде: нәтиже сан емес', |
| 1124 | +); |
| 1125 | + |
| 1126 | +/** Kazakh (Latin) (Қазақша (Latin)) */ |
| 1127 | +$messages['kk-latn'] = array( |
| 1128 | + 'pfunc_time_error' => 'Qate: jaramsız waqıt', |
| 1129 | + 'pfunc_time_too_long' => 'Qate: #time şaqırwı tım köp', |
| 1130 | + 'pfunc_rel2abs_invalid_depth' => 'Qate: Mına joldıñ jaramsız terendigi «$1» (tamır tüýinniñ üstindegi tüýinge qatınaw talabı)', |
| 1131 | + 'pfunc_expr_stack_exhausted' => 'Aýtılım qatesi: Stek sarqıldı', |
| 1132 | + 'pfunc_expr_unexpected_number' => 'Aýtılım qatesi: Kütilmegen san', |
| 1133 | + 'pfunc_expr_preg_match_failure' => 'Aýtılım qatesi: Kütilmegen preg_match sätsizdigi', |
| 1134 | + 'pfunc_expr_unrecognised_word' => 'Aýtılım qatesi: Tanılmağan söz «$1»', |
| 1135 | + 'pfunc_expr_unexpected_operator' => 'Aýtılım qatesi: Kütilmegen operator $1', |
| 1136 | + 'pfunc_expr_missing_operand' => 'Aýtılım qatesi: $1 üşin joğalğan operand', |
| 1137 | + 'pfunc_expr_unexpected_closing_bracket' => 'Aýtılım qatesi: Kütilmegen jabatın jaqşa', |
| 1138 | + 'pfunc_expr_unrecognised_punctuation' => 'Aýtılım qatesi: Tanılmağan tınıs belgisi «$1»', |
| 1139 | + 'pfunc_expr_unclosed_bracket' => 'Aýtılım qatesi: Jabılmağan jaqşa', |
| 1140 | + 'pfunc_expr_division_by_zero' => 'Nölge bölinwi', |
| 1141 | + 'pfunc_expr_unknown_error' => 'Aýtılım qatesi: Belgisiz qate ($1)', |
| 1142 | + 'pfunc_expr_not_a_number' => '$1 degende: nätïje san emes', |
| 1143 | +); |
| 1144 | + |
| 1145 | +/** Khmer (ភាសាខ្មែរ) |
| 1146 | + * @author Lovekhmer |
| 1147 | + * @author Thearith |
| 1148 | + * @author គីមស៊្រុន |
| 1149 | + */ |
| 1150 | +$messages['km'] = array( |
| 1151 | + 'pfunc_time_error' => 'កំហុស៖ ពេលវេលាមិនត្រឹមត្រូវ', |
| 1152 | + 'pfunc_expr_division_by_zero' => 'ចែកនឹងសូន្យ', |
| 1153 | + 'pfunc_expr_not_a_number' => 'ក្នុង $1: លទ្ធផលមិនមែនជាលេខទេ', |
| 1154 | +); |
| 1155 | + |
| 1156 | +/** Korean (한국어) |
| 1157 | + * @author Klutzy |
| 1158 | + * @author Kwj2772 |
| 1159 | + * @author ToePeu |
| 1160 | + * @author Yknok29 |
| 1161 | + */ |
| 1162 | +$messages['ko'] = array( |
| 1163 | + 'pfunc_desc' => '파서에 논리 함수를 추가', |
| 1164 | + 'pfunc_time_error' => '오류: 시간이 잘못되었습니다.', |
| 1165 | + 'pfunc_time_too_long' => '오류: #time을 너무 많이 썼습니다.', |
| 1166 | + 'pfunc_rel2abs_invalid_depth' => '오류: 경로 구조가 잘못되었습니다: "$1" (루트 노드 위의 노드에 접속을 시도했습니다)', |
| 1167 | + 'pfunc_expr_stack_exhausted' => '표현 오류: 스택이 비어 있습니다.', |
| 1168 | + 'pfunc_expr_unexpected_number' => '표현식 오류: 예상치 못한 값', |
| 1169 | + 'pfunc_expr_preg_match_failure' => '표현식 오류: 예상치 못한 preg_match 오류', |
| 1170 | + 'pfunc_expr_unrecognised_word' => '표현식 오류: 알 수 없는 단어 ‘$1’', |
| 1171 | + 'pfunc_expr_unexpected_operator' => '표현 오류: 잘못된 $1 연산자', |
| 1172 | + 'pfunc_expr_missing_operand' => '표현 오류: $1의 피연산자가 없습니다.', |
| 1173 | + 'pfunc_expr_unexpected_closing_bracket' => '표현 오류: 예상치 못한 괄호 닫기', |
| 1174 | + 'pfunc_expr_unrecognised_punctuation' => '표현 오류: 알 수 없는 문자 "$1"', |
| 1175 | + 'pfunc_expr_unclosed_bracket' => '표현 오류: 괄호를 닫지 않았습니다.', |
| 1176 | + 'pfunc_expr_division_by_zero' => '0으로 나눔', |
| 1177 | + 'pfunc_expr_invalid_argument' => '$1 함수의 변수가 잘못되었습니다: < -1 또는 > 1', |
| 1178 | + 'pfunc_expr_invalid_argument_ln' => '자연로그의 진수가 잘못되었습니다: <= 0', |
| 1179 | + 'pfunc_expr_unknown_error' => '표현 오류: 알려지지 않은 오류 ($1)', |
| 1180 | + 'pfunc_expr_not_a_number' => '$1: 결과가 숫자가 아닙니다.', |
| 1181 | + 'pfunc_string_too_long' => '오류: $1자 제한을 초과하였습니다.', |
| 1182 | +); |
| 1183 | + |
| 1184 | +/** Colognian (Ripoarisch) |
| 1185 | + * @author Purodha |
| 1186 | + */ |
| 1187 | +$messages['ksh'] = array( |
| 1188 | + 'pfunc_desc' => 'Deit em Wiki Funxione för Entscheidunge un esu dobei.', |
| 1189 | + 'pfunc_time_error' => 'Fähler: Onjöltijje Zick.', |
| 1190 | + 'pfunc_time_too_long' => 'Fähler: <code>#time</code> weed zo öff jebruch.', |
| 1191 | + 'pfunc_rel2abs_invalid_depth' => 'Fähler: Zo fill „retuur“ em Pahdt „$1“ — mer wöre wigger wi för der Aanfang zeröck jejange.', |
| 1192 | + 'pfunc_expr_stack_exhausted' => 'Fähler en enem Ußdrock: Dä löht der <i lang="en">stack</i> övverloufe.', |
| 1193 | + 'pfunc_expr_unexpected_number' => 'Fähler en enem Ußdrock: En Zahl dom_mer nit äwaade.', |
| 1194 | + 'pfunc_expr_preg_match_failure' => 'Fähler en enem Ußdrock: Esu ene Fähler en „<i lang="en">preg_match</i>“ dum_mer nit äwade.', |
| 1195 | + 'pfunc_expr_unrecognised_word' => 'Fähler en enem Ußdrock: Dat Woot „$1“ es unbikannt.', |
| 1196 | + 'pfunc_expr_unexpected_operator' => 'Fähler en enem Ußdrock: Dat Räschezeiche „$1“ dom_mer hee nit äwaade.', |
| 1197 | + 'pfunc_expr_missing_operand' => 'Fähler en enem Ußdrock: För dat Räschezeiche „$1“ dom_mer ävver ene Operand äwaade.', |
| 1198 | + 'pfunc_expr_unexpected_closing_bracket' => 'Fähler en enem Ußdrock: En eckijje Klammer-Zoh dom_mer esu nit äwaade.', |
| 1199 | + 'pfunc_expr_unrecognised_punctuation' => 'Fähler en enem Ußdrock: Dat Satzzeiche „$1“ dom_mer esu nit äwaade.', |
| 1200 | + 'pfunc_expr_unclosed_bracket' => 'Fähler en enem Ußdrock: Do fählt en eckijje Klammer-Zoh.', |
| 1201 | + 'pfunc_expr_division_by_zero' => 'Fähler en enem Ußdrock: Dorsch Noll jedeilt.', |
| 1202 | + 'pfunc_expr_invalid_argument' => 'Fähler: Dä Parrameeter för <code>$1</code> moß -1 udder 1 sin, udder dozwesche lijje.', |
| 1203 | + 'pfunc_expr_invalid_argument_ln' => 'Fähler: Dä Parrameeter för <code>ln</code> moß 0 udder kleiner wi 0 sin.', |
| 1204 | + 'pfunc_expr_unknown_error' => 'Fähler en enem Ußdrock: Unbikannt ($1)', |
| 1205 | + 'pfunc_expr_not_a_number' => 'Fähler en enem Ußdrock: En <code>$1</code> es dat wat erus kütt kein Zahl.', |
| 1206 | + 'pfunc_string_too_long' => 'Fähler en enem Ußdrock: En Zeijshereih es länger wi $1 Zeijshe.', |
| 1207 | +); |
| 1208 | + |
| 1209 | +/** Luxembourgish (Lëtzebuergesch) |
| 1210 | + * @author Robby |
| 1211 | + */ |
| 1212 | +$messages['lb'] = array( |
| 1213 | + 'pfunc_desc' => 'Erweidert Parser mat logesche Fonctiounen', |
| 1214 | + 'pfunc_time_error' => 'Feeler: ongëlteg Zäit', |
| 1215 | + 'pfunc_time_too_long' => 'Feeler: ze dacks #time opgeruff', |
| 1216 | + 'pfunc_expr_unexpected_number' => 'Expressiouns-Feeler: Onerwarten Zuel', |
| 1217 | + 'pfunc_expr_unrecognised_word' => 'Expressiouns-Feeler: Onerkantent Wuert "$1"', |
| 1218 | + 'pfunc_expr_unexpected_operator' => 'Expression-Feeler: Onerwarten Operateur: <tt>$1</tt>', |
| 1219 | + 'pfunc_expr_missing_operand' => 'Expression-Feeler: Et feelt en Operand fir <tt>$1</tt>', |
| 1220 | + 'pfunc_expr_unexpected_closing_bracket' => 'Expressiouns-Feeler: Onerwarte Klammer déi zougemaach gëtt', |
| 1221 | + 'pfunc_expr_unrecognised_punctuation' => 'Expressiouns-Feeler: D\'Satzzeechen "$1" gouf net erkannt', |
| 1222 | + 'pfunc_expr_unclosed_bracket' => 'Expressiouns-Feeler: Eckeg Klammer net zougemaach', |
| 1223 | + 'pfunc_expr_division_by_zero' => 'Divisioun duerch Null', |
| 1224 | + 'pfunc_expr_invalid_argument' => 'Ongültege Wäert fir $1: < -1 oder > 1', |
| 1225 | + 'pfunc_expr_invalid_argument_ln' => 'Ongültege Wäert fir ln: <= 0', |
| 1226 | + 'pfunc_expr_unknown_error' => 'Expression-Feeler: Onbekannte Feeler ($1)', |
| 1227 | + 'pfunc_expr_not_a_number' => "An $1: D'Resultat ass keng Zuel", |
| 1228 | + 'pfunc_string_too_long' => "Feeler: D'Zeecheketten ass méi laang wéi d'Limit vu(n) $1 Zeechen", |
| 1229 | +); |
| 1230 | + |
| 1231 | +/** Limburgish (Limburgs) |
| 1232 | + * @author Matthias |
| 1233 | + * @author Ooswesthoesbes |
| 1234 | + */ |
| 1235 | +$messages['li'] = array( |
| 1236 | + 'pfunc_desc' => 'Verrijkt de parser met logische functies', |
| 1237 | + 'pfunc_time_error' => 'Fout: ongeldige tied', |
| 1238 | + 'pfunc_time_too_long' => 'Fout: #time te vaok aangerope', |
| 1239 | + 'pfunc_rel2abs_invalid_depth' => 'Fout: ongeldige diepte in pad: "$1" (probeerde \'n node bove de stamnode aan te rope)', |
| 1240 | + 'pfunc_expr_stack_exhausted' => 'Fout in oetdrukking: stack oetgeput', |
| 1241 | + 'pfunc_expr_unexpected_number' => 'Fout in oetdrukking: onverwacht getal', |
| 1242 | + 'pfunc_expr_preg_match_failure' => 'Fout in oetdrukking: onverwacht fale van preg_match', |
| 1243 | + 'pfunc_expr_unrecognised_word' => 'Fout in oetdrukking: woord "$1" neet herkend', |
| 1244 | + 'pfunc_expr_unexpected_operator' => 'Fout in oetdrukking: neet verwachte operator $1', |
| 1245 | + 'pfunc_expr_missing_operand' => 'Fout in oetdrukking: operand veur $1 mist', |
| 1246 | + 'pfunc_expr_unexpected_closing_bracket' => 'Fout in oetdrukking: haakje sloete op onverwachte plaats', |
| 1247 | + 'pfunc_expr_unrecognised_punctuation' => 'Fout in oetdrukking: neet herkend leesteke "$1"', |
| 1248 | + 'pfunc_expr_unclosed_bracket' => 'Fout in oetdrukking: neet geslote haakje opene', |
| 1249 | + 'pfunc_expr_division_by_zero' => 'Deiling door nul', |
| 1250 | + 'pfunc_expr_invalid_argument' => 'Ongeldige paramaeter veur $1: < -1 of > 1', |
| 1251 | + 'pfunc_expr_invalid_argument_ln' => 'Ongeldige paramaeter veur ln: <= 0', |
| 1252 | + 'pfunc_expr_unknown_error' => 'Fout in oetdrukking: ónbekindje fout ($1)', |
| 1253 | + 'pfunc_expr_not_a_number' => 'In $1: rezultaot is gein getal', |
| 1254 | + 'pfunc_string_too_long' => 'Fout: De teks is lenger es de limiet van $1 {{PLURAL:$1|teike|teikes}}', |
| 1255 | +); |
| 1256 | + |
| 1257 | +/** Lithuanian (Lietuvių) |
| 1258 | + * @author Hugo.arg |
| 1259 | + */ |
| 1260 | +$messages['lt'] = array( |
| 1261 | + 'pfunc_time_error' => 'Klaida: neteisingas laikas', |
| 1262 | +); |
| 1263 | + |
| 1264 | +/** Latvian (Latviešu) |
| 1265 | + * @author Papuass |
| 1266 | + */ |
| 1267 | +$messages['lv'] = array( |
| 1268 | + 'pfunc_time_error' => 'Kļūda: nederīgs laiks', |
| 1269 | + 'pfunc_time_too_long' => 'Kļūda: pārāk daudz #time izsaukumu', |
| 1270 | + 'pfunc_expr_division_by_zero' => 'Dalīšana ar nulli', |
| 1271 | +); |
| 1272 | + |
| 1273 | +/** Macedonian (Македонски) |
| 1274 | + * @author Bjankuloski06 |
| 1275 | + * @author Brest |
| 1276 | + */ |
| 1277 | +$messages['mk'] = array( |
| 1278 | + 'pfunc_desc' => 'Проширување на можностите на парсерот со логички функции', |
| 1279 | + 'pfunc_time_error' => 'Грешка: погрешен формат за време', |
| 1280 | + 'pfunc_time_too_long' => 'Грешка: премногу #time повикувања', |
| 1281 | + 'pfunc_rel2abs_invalid_depth' => 'Грешка: Неважечка длабочина во патеката: „$1“ (обид за пристап до јазол над коренот)', |
| 1282 | + 'pfunc_expr_stack_exhausted' => 'Грешка во изразот: Складот е преполн', |
| 1283 | + 'pfunc_expr_unexpected_number' => 'Грешка во изразот: Неочекуван број', |
| 1284 | + 'pfunc_expr_preg_match_failure' => 'Грешка во изразот: Неочекувана preg_match грешка', |
| 1285 | + 'pfunc_expr_unrecognised_word' => 'Грешка во изразот: Непознат збор "$1"', |
| 1286 | + 'pfunc_expr_unexpected_operator' => 'Грешка во изразот: Неочекуван оператор $1', |
| 1287 | + 'pfunc_expr_missing_operand' => 'Грешка во изразот: Недостасува оперант за $1', |
| 1288 | + 'pfunc_expr_unexpected_closing_bracket' => 'Грешка во изразот: Неочекувано затворање на заграда', |
| 1289 | + 'pfunc_expr_unrecognised_punctuation' => 'Грешка во изразот: Непрепознаен интерпункциски знак „$1“', |
| 1290 | + 'pfunc_expr_unclosed_bracket' => 'Грешка во изразот: Незатворена заграда', |
| 1291 | + 'pfunc_expr_division_by_zero' => 'Делење со нула', |
| 1292 | + 'pfunc_expr_invalid_argument' => 'Невалиден аргумент за $1: < -1 или > 1', |
| 1293 | + 'pfunc_expr_invalid_argument_ln' => 'Невалиден аргумент за ln: <= 0', |
| 1294 | + 'pfunc_expr_unknown_error' => 'Грешка во изразот: Непозната грешка ($1)', |
| 1295 | + 'pfunc_expr_not_a_number' => 'Во $1: резултатот не е број', |
| 1296 | + 'pfunc_string_too_long' => 'Грешка: Низата го надминува ограничувањето на $1 знаци', |
| 1297 | +); |
| 1298 | + |
| 1299 | +/** Malayalam (മലയാളം) |
| 1300 | + * @author Praveenp |
| 1301 | + * @author Shijualex |
| 1302 | + */ |
| 1303 | +$messages['ml'] = array( |
| 1304 | + 'pfunc_desc' => 'ലോജിക്കൽ ഫങ്ഷൻസ് ഉപയോഗിച്ച് പാർസർ വിപുലപ്പെടുത്തുക', |
| 1305 | + 'pfunc_time_error' => 'പിഴവ്:അസാധുവായ സമയം', |
| 1306 | + 'pfunc_time_too_long' => 'പിഴവ്: വളരെയധികം #സമയ കാളുകൾ', |
| 1307 | + 'pfunc_rel2abs_invalid_depth' => 'പിഴവ്: പഥത്തിൽ അസാധുവായ ആഴം: "$1" (റൂട്ട് തലത്തിനും മുകളിലുള്ള തലം എടുക്കാനുള്ള ശ്രമം)', |
| 1308 | + 'pfunc_expr_stack_exhausted' => 'എക്സ്പ്രെഷൻ പിഴവ്: സ്റ്റാക്ക് പുറന്തള്ളിയിരിക്കുന്നു', |
| 1309 | + 'pfunc_expr_unexpected_number' => 'പ്രയോഗരീതിയിൽ പിഴവ്: പ്രതീക്ഷിക്കാത്ത സംഖ്യ', |
| 1310 | + 'pfunc_expr_preg_match_failure' => 'പ്രയോഗരീതിയിൽ പിഴവ്: അപ്രതീക്ഷിതമായ preg_match പരാജയം', |
| 1311 | + 'pfunc_expr_unrecognised_word' => 'പ്രയോഗരീതിയിൽ പിഴവ്: "$1" എന്ന തിരിച്ചറിയാൻ സാധിക്കാഞ്ഞ വാക്ക്', |
| 1312 | + 'pfunc_expr_unexpected_operator' => 'പ്രയോഗരീതിയിൽ പിഴവ്: അപ്രതീക്ഷിതമായ $1 ഓപ്പറേറ്റർ', |
| 1313 | + 'pfunc_expr_missing_operand' => 'എക്സ്പ്രെഷൻ പിഴവ്: $1 എന്നതിനുള്ള പ്രവർത്തനഘടകം നൽകിയിട്ടില്ല', |
| 1314 | + 'pfunc_expr_unexpected_closing_bracket' => 'പ്രയോഗരീതിയിൽ പിഴവ്: അപ്രതീക്ഷിതമായി കോഷ്ഠകം അടച്ചിരിക്കുന്നു', |
| 1315 | + 'pfunc_expr_unrecognised_punctuation' => 'പ്രയോഗരീതിയിൽ പിഴവ്: തിരിച്ചറിയാൻ കഴിയാത്ത വിരാമചിഹ്നം "$1"', |
| 1316 | + 'pfunc_expr_unclosed_bracket' => 'പ്രയോഗരീതിയിൽ പിഴവ്: അടയ്ക്കാത്ത കോഷ്ഠകം', |
| 1317 | + 'pfunc_expr_division_by_zero' => 'പൂജ്യം കൊണ്ടുള്ള ഹരണം', |
| 1318 | + 'pfunc_expr_invalid_argument' => '$1:< -1 അല്ലെങ്കിൽ > 1 എന്നതിനു നൽകിയ അസാധുവായ ആർഗ്യുമെന്റ്', |
| 1319 | + 'pfunc_expr_invalid_argument_ln' => 'ln: <= 0 എന്നതിനു നൽകിയ അസാധുവായ ആർഗ്യുമെന്റ്', |
| 1320 | + 'pfunc_expr_unknown_error' => 'പ്രയോഗരീതിയിൽ പിഴവ്: കാരണം അജ്ഞാതമായ പിഴവ് ($1)', |
| 1321 | + 'pfunc_expr_not_a_number' => '$1-ൽ: ഫലം ഒരു സംഖ്യയല്ല', |
| 1322 | + 'pfunc_string_too_long' => 'പിഴവ്: പദം ലിപികളുടെ പരിധിയായ $1 അതിലംഘിക്കുന്നു', |
| 1323 | +); |
| 1324 | + |
| 1325 | +/** Marathi (मराठी) |
| 1326 | + * @author Kaustubh |
| 1327 | + */ |
| 1328 | +$messages['mr'] = array( |
| 1329 | + 'pfunc_desc' => 'तार्किक कार्ये वापरून पार्सर वाढवा', |
| 1330 | + 'pfunc_time_error' => 'त्रुटी: चुकीचा वेळ', |
| 1331 | + 'pfunc_time_too_long' => 'त्रुटी: खूप जास्त #time कॉल्स', |
| 1332 | + 'pfunc_rel2abs_invalid_depth' => 'त्रुटी: मार्गामध्ये चुकीची गहनता: "$1" (रूट नोडच्या वरील नोड शोधायचा प्रयत्न केला)', |
| 1333 | + 'pfunc_expr_stack_exhausted' => 'एक्स्प्रेशन त्रुटी: स्टॅक संपला', |
| 1334 | + 'pfunc_expr_unexpected_number' => 'एक्स्प्रेशन त्रुटी: अनपेक्षित क्रमांक', |
| 1335 | + 'pfunc_expr_preg_match_failure' => 'एक्स्प्रेशन त्रुटी: अनपेक्षित preg_match रद्दीकरण', |
| 1336 | + 'pfunc_expr_unrecognised_word' => 'एक्स्प्रेशन त्रुटी: अनोळखी शब्द "$1"', |
| 1337 | + 'pfunc_expr_unexpected_operator' => 'एक्स्प्रेशन त्रुटी: अनोळखी $1 कार्यवाहक', |
| 1338 | + 'pfunc_expr_missing_operand' => 'एक्स्प्रेशन त्रुटी: $1 चा घटक सापडला नाही', |
| 1339 | + 'pfunc_expr_unexpected_closing_bracket' => 'एक्स्प्रेशन त्रुटी: अनपेक्षित समाप्ती कंस', |
| 1340 | + 'pfunc_expr_unrecognised_punctuation' => 'एक्स्प्रेशन त्रुटी: अनोळखी उद्गारवाचक चिन्ह "$1"', |
| 1341 | + 'pfunc_expr_unclosed_bracket' => 'एक्स्प्रेशन त्रुटी: कंस समाप्त केलेला नाही', |
| 1342 | + 'pfunc_expr_division_by_zero' => 'शून्य ने भागाकार', |
| 1343 | + 'pfunc_expr_invalid_argument' => '$1 साठी अवैध अर्ग्युमेंट: < -1 किंवा > 1', |
| 1344 | + 'pfunc_expr_invalid_argument_ln' => 'ln करिता अवैध अर्ग्युमेंट: <= 0', |
| 1345 | + 'pfunc_expr_unknown_error' => 'एक्स्प्रेशन त्रुटी: अनोळखी त्रुटी ($1)', |
| 1346 | + 'pfunc_expr_not_a_number' => '$1 मध्ये: निकाल संख्येत नाही', |
| 1347 | +); |
| 1348 | + |
| 1349 | +/** Malay (Bahasa Melayu) |
| 1350 | + * @author Aurora |
| 1351 | + * @author Aviator |
| 1352 | + * @author Kurniasan |
| 1353 | + */ |
| 1354 | +$messages['ms'] = array( |
| 1355 | + 'pfunc_desc' => 'Meningkatkan penghurai dengan fungsi-fungsi logik', |
| 1356 | + 'pfunc_time_error' => 'Ralat: waktu tidak sah', |
| 1357 | + 'pfunc_time_too_long' => 'Ralat: terlalu banyak panggilan #time', |
| 1358 | + 'pfunc_rel2abs_invalid_depth' => 'Ralat: Kedalaman tidak sah dalam laluan: "$1" (cubaan mencapai nod di atas nod induk)', |
| 1359 | + 'pfunc_expr_stack_exhausted' => 'Ralat ungkapan: Tindanan tuntas', |
| 1360 | + 'pfunc_expr_unexpected_number' => 'Ralat ungkapan: Nombor tidak dijangka', |
| 1361 | + 'pfunc_expr_preg_match_failure' => 'Ralat ungkapan: Kegagalan preg_match tidak dijangka', |
| 1362 | + 'pfunc_expr_unrecognised_word' => 'Ralat ungkapan: Perkataan "$1" tidak dikenali', |
| 1363 | + 'pfunc_expr_unexpected_operator' => 'Ralat ungkapan: Pengendali $1 tidak dijangka', |
| 1364 | + 'pfunc_expr_missing_operand' => 'Ralat ungkapan: Kendalian bagi $1 tiada', |
| 1365 | + 'pfunc_expr_unexpected_closing_bracket' => 'Ralat ungkapan: Penutup kurungan tidak dijangka', |
| 1366 | + 'pfunc_expr_unrecognised_punctuation' => 'Ralat ungkapan: Aksara tanda baca "$1" tidak dikenali', |
| 1367 | + 'pfunc_expr_unclosed_bracket' => 'Ralat ungkapan: Tanda kurung tidak ditutup', |
| 1368 | + 'pfunc_expr_division_by_zero' => 'Pembahagian dengan sifar', |
| 1369 | + 'pfunc_expr_invalid_argument' => 'Argumen bagi $1 tidak sah: < -1 atau > 1', |
| 1370 | + 'pfunc_expr_invalid_argument_ln' => 'Argumen bagi ln tidak sah: <= 0', |
| 1371 | + 'pfunc_expr_unknown_error' => 'Ralat ungkapan: Ralat tidak diketahui ($1)', |
| 1372 | + 'pfunc_expr_not_a_number' => 'Dalam $1: hasil bukan nombor', |
| 1373 | + 'pfunc_string_too_long' => 'Ralat: Rentetan melampaui batas aksara $1', |
| 1374 | +); |
| 1375 | + |
| 1376 | +/** Erzya (Эрзянь) |
| 1377 | + * @author Botuzhaleny-sodamo |
| 1378 | + */ |
| 1379 | +$messages['myv'] = array( |
| 1380 | + 'pfunc_time_error' => 'Ильведевксэсь: амаштовикс шкась', |
| 1381 | + 'pfunc_expr_stack_exhausted' => 'Ёвтавкссонть ильведевкс: стекесь тыц пешксе', |
| 1382 | + 'pfunc_expr_division_by_zero' => 'Нольсэ йавома', |
| 1383 | +); |
| 1384 | + |
| 1385 | +/** Nahuatl (Nāhuatl) |
| 1386 | + * @author Fluence |
| 1387 | + */ |
| 1388 | +$messages['nah'] = array( |
| 1389 | + 'pfunc_time_error' => 'Ahcuallōtl: ahcualli cāhuitl', |
| 1390 | +); |
| 1391 | + |
| 1392 | +/** Low German (Plattdüütsch) |
| 1393 | + * @author Slomox |
| 1394 | + */ |
| 1395 | +$messages['nds'] = array( |
| 1396 | + 'pfunc_desc' => 'Beriekert den Parser mit logische Funkschonen', |
| 1397 | + 'pfunc_time_error' => 'Fehler: mit de Tiet stimmt wat nich', |
| 1398 | + 'pfunc_time_too_long' => 'Fehler: #time warrt to faken opropen', |
| 1399 | + 'pfunc_rel2abs_invalid_depth' => 'Fehler: Mit den Padd „$1“ stimmt wat nich, liggt nich ünner den Wuddelorner', |
| 1400 | + 'pfunc_expr_stack_exhausted' => 'Fehler in’n Utdruck: Stack överlopen', |
| 1401 | + 'pfunc_expr_unexpected_number' => 'Fehler in’n Utdruck: Unverwacht Tall', |
| 1402 | + 'pfunc_expr_preg_match_failure' => 'Fehler in’n Utdruck: Unverwacht Fehler bi „preg_match“', |
| 1403 | + 'pfunc_expr_unrecognised_word' => 'Fehler in’n Utdruck: Woort „$1“ nich kennt', |
| 1404 | + 'pfunc_expr_unexpected_operator' => 'Fehler in’n Utdruck: Unverwacht Operator $1', |
| 1405 | + 'pfunc_expr_missing_operand' => 'Fehler in’n Utdruck: Operand för $1 fehlt', |
| 1406 | + 'pfunc_expr_unexpected_closing_bracket' => 'Fehler in’n Utdruck: Unverwacht Klammer to', |
| 1407 | + 'pfunc_expr_unrecognised_punctuation' => 'Fehler in’n Utdruck: Satzteken „$1“ nich kennt', |
| 1408 | + 'pfunc_expr_unclosed_bracket' => 'Fehler in’n Utdruck: Nich slatene Klammer', |
| 1409 | + 'pfunc_expr_division_by_zero' => 'Delen dör Null', |
| 1410 | + 'pfunc_expr_invalid_argument' => 'Ungüllig Argument för $1: < -1 oder > 1', |
| 1411 | + 'pfunc_expr_invalid_argument_ln' => 'Ungüllig Argument för ln: <= 0', |
| 1412 | + 'pfunc_expr_unknown_error' => 'Fehler in’n Utdruck: Unbekannten Fehler ($1)', |
| 1413 | + 'pfunc_expr_not_a_number' => 'In $1: wat rutkamen is, is kene Tall', |
| 1414 | +); |
| 1415 | + |
| 1416 | +/** Nepali (नेपाली) */ |
| 1417 | +$messages['ne'] = array( |
| 1418 | + 'pfunc_time_error' => 'त्रुटी: गलत/वा हुदैनहुने समय', |
| 1419 | + 'pfunc_time_too_long' => 'त्रुटी: एकदम धेरै #time callहरु', |
| 1420 | + 'pfunc_rel2abs_invalid_depth' => 'त्रुटी: पाथमा (इनभ्यालिड)गलत गहिराइ(डेप्थ) भयो: "$1" (ले रुट नोड भन्दापनि माथिको नोडलाइ चलाउन(एकसेस) गर्न खोज्यो)', |
| 1421 | +); |
| 1422 | + |
| 1423 | +/** Dutch (Nederlands) |
| 1424 | + * @author SPQRobin |
| 1425 | + * @author Siebrand |
| 1426 | + */ |
| 1427 | +$messages['nl'] = array( |
| 1428 | + 'pfunc_desc' => 'Verrijkt de parser met logische functies', |
| 1429 | + 'pfunc_time_error' => 'Fout: ongeldige tijd', |
| 1430 | + 'pfunc_time_too_long' => 'Fout: #time te vaak aangeroepen', |
| 1431 | + 'pfunc_rel2abs_invalid_depth' => 'Fout: ongeldige diepte in pad: "$1" (probeerde een node boven de stamnode aan te roepen)', |
| 1432 | + 'pfunc_expr_stack_exhausted' => 'Fout in uitdrukking: stack uitgeput', |
| 1433 | + 'pfunc_expr_unexpected_number' => 'Fout in uitdrukking: onverwacht getal', |
| 1434 | + 'pfunc_expr_preg_match_failure' => 'Fout in uitdrukking: onverwacht falen van preg_match', |
| 1435 | + 'pfunc_expr_unrecognised_word' => 'Fout in uitdrukking: woord "$1" niet herkend', |
| 1436 | + 'pfunc_expr_unexpected_operator' => 'Fout in uitdrukking: niet verwachte operator $1', |
| 1437 | + 'pfunc_expr_missing_operand' => 'Fout in uitdrukking: operand voor $1 mist', |
| 1438 | + 'pfunc_expr_unexpected_closing_bracket' => 'Fout in uitdrukking: haakje sluiten op onverwachte plaats', |
| 1439 | + 'pfunc_expr_unrecognised_punctuation' => 'Fout in uitdrukking: niet herkend leesteken "$1"', |
| 1440 | + 'pfunc_expr_unclosed_bracket' => 'Fout in uitdrukking: niet gesloten haakje openen', |
| 1441 | + 'pfunc_expr_division_by_zero' => 'Deling door nul', |
| 1442 | + 'pfunc_expr_invalid_argument' => 'Ongeldige parameter voor $1: < -1 of > 1', |
| 1443 | + 'pfunc_expr_invalid_argument_ln' => 'Ongeldige parameter voor ln: <= 0', |
| 1444 | + 'pfunc_expr_unknown_error' => 'Fout in uitdrukking: onbekende fout ($1)', |
| 1445 | + 'pfunc_expr_not_a_number' => 'In $1: resultaat is geen getal', |
| 1446 | + 'pfunc_string_too_long' => 'Fout: De tekst is langer dan de limiet van $1 {{PLURAL:$1|karakter|karakters}}', |
| 1447 | +); |
| 1448 | + |
| 1449 | +/** Norwegian Nynorsk (Norsk (nynorsk)) |
| 1450 | + * @author Eirik |
| 1451 | + * @author Frokor |
| 1452 | + * @author Gunnernett |
| 1453 | + * @author Harald Khan |
| 1454 | + */ |
| 1455 | +$messages['nn'] = array( |
| 1456 | + 'pfunc_desc' => 'Legg til logiske funksjonar i parseren.', |
| 1457 | + 'pfunc_time_error' => 'Feil: Ugyldig tid', |
| 1458 | + 'pfunc_time_too_long' => 'Feil: #time er kalla for mange gonger', |
| 1459 | + 'pfunc_rel2abs_invalid_depth' => 'Feil: Ugyldig djupn i stien: «$1» (prøvde å nå ein node ovanfor rotnoden)', |
| 1460 | + 'pfunc_expr_stack_exhausted' => 'Feil i uttrykket: Stacken er tømd', |
| 1461 | + 'pfunc_expr_unexpected_number' => 'Feil i uttrykket: Uventa tal', |
| 1462 | + 'pfunc_expr_preg_match_failure' => 'Feil i uttrykket: Uventa feil i preg_match', |
| 1463 | + 'pfunc_expr_unrecognised_word' => 'Feil i uttrykket: Ukjent ord, «$1»', |
| 1464 | + 'pfunc_expr_unexpected_operator' => 'Feil i uttrykket: Uventa operatør, $1', |
| 1465 | + 'pfunc_expr_missing_operand' => 'Feil i uttrykket: Operand for $1 manglar', |
| 1466 | + 'pfunc_expr_unexpected_closing_bracket' => 'Feil i uttrykket: Uventa avsluttande parentes', |
| 1467 | + 'pfunc_expr_unrecognised_punctuation' => 'Feil i uttrykket: Ukjent punktumsteikn, «$1»', |
| 1468 | + 'pfunc_expr_unclosed_bracket' => 'Feil i uttrykket: Ein parentes er ikkje avslutta', |
| 1469 | + 'pfunc_expr_division_by_zero' => 'Divisjon med null', |
| 1470 | + 'pfunc_expr_invalid_argument' => 'Ugyldig argument for $1: < -1 eller > 1', |
| 1471 | + 'pfunc_expr_invalid_argument_ln' => 'Ugyldig argument for ln: <= 0', |
| 1472 | + 'pfunc_expr_unknown_error' => 'Feil i uttrykket: Ukjend feil ($1)', |
| 1473 | + 'pfunc_expr_not_a_number' => 'Resultatet i $1 er ikkje eit tal', |
| 1474 | + 'pfunc_string_too_long' => 'Feil: Strengen går over grensa på $1 teikn', |
| 1475 | +); |
| 1476 | + |
| 1477 | +/** Norwegian (bokmål) (Norsk (bokmål)) |
| 1478 | + * @author Jon Harald Søby |
| 1479 | + * @author Laaknor |
| 1480 | + */ |
| 1481 | +$messages['no'] = array( |
| 1482 | + 'pfunc_desc' => 'Utvid parser med logiske funksjoner', |
| 1483 | + 'pfunc_time_error' => 'Feil: ugyldig tid', |
| 1484 | + 'pfunc_time_too_long' => 'Feil: #time brukt for mange ganger', |
| 1485 | + 'pfunc_rel2abs_invalid_depth' => 'Feil: Ugyldig dybde i sti: «$1» (prøvde å få tilgang til en node over rotnoden)', |
| 1486 | + 'pfunc_expr_stack_exhausted' => 'Uttrykksfeil: Stakk utbrukt', |
| 1487 | + 'pfunc_expr_unexpected_number' => 'Uttrykksfeil: Uventet nummer', |
| 1488 | + 'pfunc_expr_preg_match_failure' => 'Uttrykksfeil: Uventet preg_match-feil', |
| 1489 | + 'pfunc_expr_unrecognised_word' => 'Uttrykksfeil: Ugjenkjennelig ord «$1»', |
| 1490 | + 'pfunc_expr_unexpected_operator' => 'Uttrykksfeil: Uventet $1-operator', |
| 1491 | + 'pfunc_expr_missing_operand' => 'Uttrykksfeil: Mangler operand for $1', |
| 1492 | + 'pfunc_expr_unexpected_closing_bracket' => 'Uttrykksfeil: Uventet lukkende parentes', |
| 1493 | + 'pfunc_expr_unrecognised_punctuation' => 'Uttrykksfeil: Ugjenkjennelig tegn «$1»', |
| 1494 | + 'pfunc_expr_unclosed_bracket' => 'Uttrykksfeil: Åpen parentes', |
| 1495 | + 'pfunc_expr_division_by_zero' => 'Deling på null', |
| 1496 | + 'pfunc_expr_invalid_argument' => 'Ugyldig argument for $1: < -1 eller > 1', |
| 1497 | + 'pfunc_expr_invalid_argument_ln' => 'Ugyldig argument for ln: <= 0', |
| 1498 | + 'pfunc_expr_unknown_error' => 'Uttrykksfeil: Ukjent feil ($1)', |
| 1499 | + 'pfunc_expr_not_a_number' => 'I $1: resultat er ikke et tall', |
| 1500 | + 'pfunc_string_too_long' => 'Feil: Strengen går over grensen på $1 tegn', |
| 1501 | +); |
| 1502 | + |
| 1503 | +/** Occitan (Occitan) |
| 1504 | + * @author Cedric31 |
| 1505 | + */ |
| 1506 | +$messages['oc'] = array( |
| 1507 | + 'pfunc_desc' => 'Augmenta lo parser amb de foncions logicas', |
| 1508 | + 'pfunc_time_error' => 'Error: durada invalida', |
| 1509 | + 'pfunc_time_too_long' => 'Error: parser #time apelat tròp de còps', |
| 1510 | + 'pfunc_rel2abs_invalid_depth' => 'Error: nivèl de repertòri invalid dins lo camin : "$1" (a ensajat d’accedir a un nivèl al-dessús del repertòri raiç)', |
| 1511 | + 'pfunc_expr_stack_exhausted' => 'Expression erronèa : pila agotada', |
| 1512 | + 'pfunc_expr_unexpected_number' => 'Expression erronèa : nombre pas esperat', |
| 1513 | + 'pfunc_expr_preg_match_failure' => 'Expression erronèa : una expression pas compresa a pas capitat', |
| 1514 | + 'pfunc_expr_unrecognised_word' => "Error d'expression : lo mot '''$1''' es pas reconegut", |
| 1515 | + 'pfunc_expr_unexpected_operator' => "Error d'expression : l'operador '''$1''' es pas reconegut", |
| 1516 | + 'pfunc_expr_missing_operand' => "Error d'expression : l'operanda '''$1''' es pas reconeguda", |
| 1517 | + 'pfunc_expr_unexpected_closing_bracket' => "Error d'expression : parentèsi tampanta pas prevista", |
| 1518 | + 'pfunc_expr_unrecognised_punctuation' => "Error d'expression : caractèr de ponctuacion « $1 » pas reconegut", |
| 1519 | + 'pfunc_expr_unclosed_bracket' => 'Error d’expression : parentèsi pas tampada', |
| 1520 | + 'pfunc_expr_division_by_zero' => 'Division per zèro', |
| 1521 | + 'pfunc_expr_invalid_argument' => 'Valor incorrècta per $1 : < -1 o > 1', |
| 1522 | + 'pfunc_expr_invalid_argument_ln' => 'Valor incorrècta per ln : ≤ 0', |
| 1523 | + 'pfunc_expr_unknown_error' => "Error d'expression : error desconeguda ($1)", |
| 1524 | + 'pfunc_expr_not_a_number' => 'Dins $1 : lo resultat es pas un nombre', |
| 1525 | + 'pfunc_string_too_long' => 'Error : La cadena depassa lo limit maximal de $1 caractèr{{PLURAL:$1||s}}', |
| 1526 | +); |
| 1527 | + |
| 1528 | +/** Polish (Polski) |
| 1529 | + * @author Derbeth |
| 1530 | + * @author Sp5uhe |
| 1531 | + */ |
| 1532 | +$messages['pl'] = array( |
| 1533 | + 'pfunc_desc' => 'Rozszerza analizator składni o funkcje logiczne', |
| 1534 | + 'pfunc_time_error' => 'Błąd – niepoprawny czas', |
| 1535 | + 'pfunc_time_too_long' => 'Błąd – zbyt wiele wywołań funkcji #time', |
| 1536 | + 'pfunc_rel2abs_invalid_depth' => 'Błąd – nieprawidłowa głębokość w ścieżce: „$1” (próba dostępu do węzła powyżej korzenia)', |
| 1537 | + 'pfunc_expr_stack_exhausted' => 'Błąd w wyrażeniu – stos wyczerpany', |
| 1538 | + 'pfunc_expr_unexpected_number' => 'Błąd w wyrażeniu – nieoczekiwana liczba', |
| 1539 | + 'pfunc_expr_preg_match_failure' => 'Błąd w wyrażeniu – nieoczekiwany błąd preg_match', |
| 1540 | + 'pfunc_expr_unrecognised_word' => 'Błąd w wyrażeniu – nierozpoznane słowo „$1”', |
| 1541 | + 'pfunc_expr_unexpected_operator' => 'Błąd w wyrażeniu – nieoczekiwany operator $1', |
| 1542 | + 'pfunc_expr_missing_operand' => 'Błąd w wyrażeniu – brak argumentu funkcji $1', |
| 1543 | + 'pfunc_expr_unexpected_closing_bracket' => 'Błąd w wyrażeniu – nieoczekiwany nawias zamykający', |
| 1544 | + 'pfunc_expr_unrecognised_punctuation' => 'Błąd w wyrażeniu – nierozpoznany znak interpunkcyjny „$1”', |
| 1545 | + 'pfunc_expr_unclosed_bracket' => 'Błąd w wyrażeniu – niedomknięty nawias', |
| 1546 | + 'pfunc_expr_division_by_zero' => 'Dzielenie przez zero', |
| 1547 | + 'pfunc_expr_invalid_argument' => 'Nieprawidłowy argument funkcji $1 – mniejszy od -1 lub większy od 1', |
| 1548 | + 'pfunc_expr_invalid_argument_ln' => 'Nieprawidłowy argument funkcji ln – mniejszy lub równy 0', |
| 1549 | + 'pfunc_expr_unknown_error' => 'Błąd w wyrażeniu – nieznany błąd ($1)', |
| 1550 | + 'pfunc_expr_not_a_number' => 'W $1: wynik nie jest liczbą', |
| 1551 | + 'pfunc_string_too_long' => 'Błąd – długość ciągu znaków przekracza dopuszczalne $1', |
| 1552 | +); |
| 1553 | + |
| 1554 | +/** Piedmontese (Piemontèis) |
| 1555 | + * @author Bèrto 'd Sèra |
| 1556 | + * @author Dragonòt |
| 1557 | + */ |
| 1558 | +$messages['pms'] = array( |
| 1559 | + 'pfunc_desc' => 'Mijora ël parse con funsion lògiche', |
| 1560 | + 'pfunc_time_error' => 'Eror: temp nen bon', |
| 1561 | + 'pfunc_time_too_long' => 'Eror: #time a ven ciamà tròpe vire', |
| 1562 | + 'pfunc_rel2abs_invalid_depth' => 'Eror: profondità nen bon-a ant ël përcors: "$1" (a l\'é provasse a ciamé un grop dzora a la rèis)', |
| 1563 | + 'pfunc_expr_stack_exhausted' => "Eror ëd l'espression: stach esaurìa", |
| 1564 | + 'pfunc_expr_unexpected_number' => "Eror ëd l'espression: nùmer pa spetà", |
| 1565 | + 'pfunc_expr_preg_match_failure' => "Eror ëd l'espression: eror pa spetà an preg_match", |
| 1566 | + 'pfunc_expr_unrecognised_word' => 'Eror ëd l\'espression: paròla "$1" pa arconossùa', |
| 1567 | + 'pfunc_expr_unexpected_operator' => "Eror ëd l'espression: operator $1 pa spetà", |
| 1568 | + 'pfunc_expr_missing_operand' => "Eror ëd l'espression: Operand për $1 mancant", |
| 1569 | + 'pfunc_expr_unexpected_closing_bracket' => "Eror ëd l'espression: paréntesi pa sarà", |
| 1570 | + 'pfunc_expr_unrecognised_punctuation' => 'Eror ëd l\'espression: caràter ëd puntegiadura "$1" pa arconossù', |
| 1571 | + 'pfunc_expr_unclosed_bracket' => "Eror ëd l'espression: paréntesi pa sarà", |
| 1572 | + 'pfunc_expr_division_by_zero' => 'Division për zero', |
| 1573 | + 'pfunc_expr_invalid_argument' => 'Argoment pa bon për $1: < -1 o > 1', |
| 1574 | + 'pfunc_expr_invalid_argument_ln' => 'Argoment pa bon për ln: <= 0', |
| 1575 | + 'pfunc_expr_unknown_error' => "Eror ëd l'espression: Eror pa conossù ($1)", |
| 1576 | + 'pfunc_expr_not_a_number' => "An $1: l'arzultà a l'é pa un nùmer", |
| 1577 | + 'pfunc_string_too_long' => 'Eror: la stringa a passa ël lìmit ëd $1 caràter', |
| 1578 | +); |
| 1579 | + |
| 1580 | +/** Pashto (پښتو) |
| 1581 | + * @author Ahmed-Najib-Biabani-Ibrahimkhel |
| 1582 | + */ |
| 1583 | +$messages['ps'] = array( |
| 1584 | + 'pfunc_time_error' => 'ستونزه: ناسم وخت', |
| 1585 | + 'pfunc_expr_division_by_zero' => 'وېش په صفر', |
| 1586 | +); |
| 1587 | + |
| 1588 | +/** Portuguese (Português) |
| 1589 | + * @author Hamilton Abreu |
| 1590 | + * @author Malafaya |
| 1591 | + */ |
| 1592 | +$messages['pt'] = array( |
| 1593 | + 'pfunc_desc' => 'Adiciona funções lógicas ao analisador sintáctico', |
| 1594 | + 'pfunc_time_error' => 'Erro: tempo inválido', |
| 1595 | + 'pfunc_time_too_long' => 'Erro: demasiadas chamadas a #time', |
| 1596 | + 'pfunc_rel2abs_invalid_depth' => 'Erro: Profundidade inválida no caminho: "$1" (foi tentado o acesso a um nó acima do nó raiz)', |
| 1597 | + 'pfunc_expr_stack_exhausted' => 'Erro de expressão: Pilha esgotada', |
| 1598 | + 'pfunc_expr_unexpected_number' => 'Erro de expressão: Número inesperado', |
| 1599 | + 'pfunc_expr_preg_match_failure' => 'Erro de expressão: Falha em preg_match inesperada', |
| 1600 | + 'pfunc_expr_unrecognised_word' => 'Erro de expressão: Palavra "$1" não reconhecida', |
| 1601 | + 'pfunc_expr_unexpected_operator' => 'Erro de expressão: Operador $1 inesperado', |
| 1602 | + 'pfunc_expr_missing_operand' => 'Erro de expressão: Falta operando para $1', |
| 1603 | + 'pfunc_expr_unexpected_closing_bracket' => 'Erro de expressão: Parêntese de fecho inesperado', |
| 1604 | + 'pfunc_expr_unrecognised_punctuation' => 'Erro de expressão: Carácter de pontuação "$1" não reconhecido', |
| 1605 | + 'pfunc_expr_unclosed_bracket' => 'Erro de expressão: Parêntese não fechado', |
| 1606 | + 'pfunc_expr_division_by_zero' => 'Divisão por zero', |
| 1607 | + 'pfunc_expr_invalid_argument' => 'Argumento inválido para $1: < -1 or > 1', |
| 1608 | + 'pfunc_expr_invalid_argument_ln' => 'Argumento inválido para ln: <= 0', |
| 1609 | + 'pfunc_expr_unknown_error' => 'Erro de expressão: Erro desconhecido ($1)', |
| 1610 | + 'pfunc_expr_not_a_number' => 'Em $1: resultado não é um número', |
| 1611 | + 'pfunc_string_too_long' => 'Erro: Texto excede o limite de $1 caracteres', |
| 1612 | +); |
| 1613 | + |
| 1614 | +/** Brazilian Portuguese (Português do Brasil) |
| 1615 | + * @author Eduardo.mps |
| 1616 | + */ |
| 1617 | +$messages['pt-br'] = array( |
| 1618 | + 'pfunc_desc' => 'Melhora o analisador (parser) com funções lógicas', |
| 1619 | + 'pfunc_time_error' => 'Erro: tempo inválido', |
| 1620 | + 'pfunc_time_too_long' => 'Erro: muitas chamadas a #time', |
| 1621 | + 'pfunc_rel2abs_invalid_depth' => 'Erro: Profundidade inválida no caminho: "$1" (foi tentado o acesso a um nó acima do nó raiz)', |
| 1622 | + 'pfunc_expr_stack_exhausted' => 'Erro de expressão: Pilha esgotada', |
| 1623 | + 'pfunc_expr_unexpected_number' => 'Erro de expressão: Número inesperado', |
| 1624 | + 'pfunc_expr_preg_match_failure' => 'Erro de expressão: Falha em preg_match inesperada', |
| 1625 | + 'pfunc_expr_unrecognised_word' => 'Erro de expressão: Palavra "$1" não reconhecida', |
| 1626 | + 'pfunc_expr_unexpected_operator' => 'Erro de expressão: Operador $1 inesperado', |
| 1627 | + 'pfunc_expr_missing_operand' => 'Erro de expressão: Falta operando para $1', |
| 1628 | + 'pfunc_expr_unexpected_closing_bracket' => 'Erro de expressão: Parêntese de fechamento inesperado', |
| 1629 | + 'pfunc_expr_unrecognised_punctuation' => 'Erro de expressão: Caractere de pontuação "$1" não reconhecido', |
| 1630 | + 'pfunc_expr_unclosed_bracket' => 'Erro de expressão: Parêntese não fechado', |
| 1631 | + 'pfunc_expr_division_by_zero' => 'Divisão por zero', |
| 1632 | + 'pfunc_expr_invalid_argument' => 'Argumento inválido para $1: < -1 or > 1', |
| 1633 | + 'pfunc_expr_invalid_argument_ln' => 'Argumento inválido para ln: <= 0', |
| 1634 | + 'pfunc_expr_unknown_error' => 'Erro de expressão: Erro desconhecido ($1)', |
| 1635 | + 'pfunc_expr_not_a_number' => 'Em $1: resultado não é um número', |
| 1636 | + 'pfunc_string_too_long' => 'Erro: cadeia de caracteres excede o limite de $1 caracteres', |
| 1637 | +); |
| 1638 | + |
| 1639 | +/** Quechua (Runa Simi) |
| 1640 | + * @author AlimanRuna |
| 1641 | + */ |
| 1642 | +$messages['qu'] = array( |
| 1643 | + 'pfunc_desc' => 'Parser nisqata sullwa ruranakunawan allinchay', |
| 1644 | + 'pfunc_time_error' => 'Pantasqa: Pachaqa manam allinchu', |
| 1645 | + 'pfunc_time_too_long' => 'Pantasqa: nisyu "#time" (pacha)', |
| 1646 | + 'pfunc_rel2abs_invalid_depth' => 'Pantasqa: ñanpa ukhu kayninqa manam allinchu: "$1" (saphi khipu hawanpi kaq khiputam aypayta munaspa)', |
| 1647 | + 'pfunc_expr_stack_exhausted' => 'Rikuchikuypi pantasqa: Nisyu tawqa', |
| 1648 | + 'pfunc_expr_unexpected_number' => 'Rikuchikuypi pantasqa: Mana suyakusqa yupay', |
| 1649 | + 'pfunc_expr_preg_match_failure' => 'Rikuchikuypi pantasqa: Mana suyakusqa preg_match alqa', |
| 1650 | + 'pfunc_expr_unrecognised_word' => 'Rikuchikuypi pantasqa: Mana riqsisqa rima "$1"', |
| 1651 | + 'pfunc_expr_unexpected_operator' => 'Rikuchikuypi pantasqa: Mana suyakusqa ruraq "$1"', |
| 1652 | + 'pfunc_expr_missing_operand' => 'Rikuchikuypi pantasqa: Manam kanchu $1-paq ruraq', |
| 1653 | + 'pfunc_expr_unexpected_closing_bracket' => "Rikuchikuypi pantasqa: Nisyu wichq'aq qinchaq", |
| 1654 | + 'pfunc_expr_unrecognised_punctuation' => 'Rikuchikuypi pantasqa: Mana riqsisqa qillqa unancha "$1"', |
| 1655 | + 'pfunc_expr_unclosed_bracket' => "Rikuchikuypi pantasqa: Manam kanchu wichq'aq qinchaq", |
| 1656 | + 'pfunc_expr_division_by_zero' => "Ch'usaqwan rakisqa", |
| 1657 | + 'pfunc_expr_invalid_argument' => '$1-paq mana allin ninakuy: : < -1 icha > 1', |
| 1658 | + 'pfunc_expr_invalid_argument_ln' => 'ln-paq mana allin ninakuy: <= 0', |
| 1659 | + 'pfunc_expr_unknown_error' => 'Rikuchikuypi pantasqa: Mana riqsisqa pantasqa ($1)', |
| 1660 | + 'pfunc_expr_not_a_number' => '$1-pi: lluqsiyninqa manam yupaychu', |
| 1661 | + 'pfunc_string_too_long' => 'Pantasqa: Qillqa tiwlliqa $1 sanampa saywatam llallin', |
| 1662 | +); |
| 1663 | + |
| 1664 | +/** Romanian (Română) |
| 1665 | + * @author KlaudiuMihaila |
| 1666 | + * @author Stelistcristi |
| 1667 | + */ |
| 1668 | +$messages['ro'] = array( |
| 1669 | + 'pfunc_desc' => 'Îmbunătățiți parser-ul cu funcții logice', |
| 1670 | + 'pfunc_time_error' => 'Eroare: timp incorect', |
| 1671 | + 'pfunc_time_too_long' => 'Eroare: prea multe apeluri #time', |
| 1672 | + 'pfunc_rel2abs_invalid_depth' => 'Eroare: adâncime incorectă în cale: "$1" (încercat accesarea unui nod deasupra nodului rădăcină)', |
| 1673 | + 'pfunc_expr_stack_exhausted' => 'Eroare de expresie: Stivă epuizată', |
| 1674 | + 'pfunc_expr_unexpected_number' => 'Eroare de expresie: număr neașteptat', |
| 1675 | + 'pfunc_expr_preg_match_failure' => 'Eroare de expresie: eșuare preg_match neașteptată', |
| 1676 | + 'pfunc_expr_unrecognised_word' => 'Eroare de expresie: "$1" este cuvânt necunoscut', |
| 1677 | + 'pfunc_expr_unexpected_operator' => 'Eroare de expresie: operator $1 neașteptat', |
| 1678 | + 'pfunc_expr_missing_operand' => 'Eroare de expresie: operand lipsă pentru $1', |
| 1679 | + 'pfunc_expr_unexpected_closing_bracket' => 'Eroare de expresie: paranteză închisă neașteptată', |
| 1680 | + 'pfunc_expr_unrecognised_punctuation' => 'Eroare de expresie: caracter de punctuație "$1" necunoscut', |
| 1681 | + 'pfunc_expr_unclosed_bracket' => 'Eroare de expresie: paranteză neînchisă', |
| 1682 | + 'pfunc_expr_division_by_zero' => 'Împărțire la zero', |
| 1683 | + 'pfunc_expr_invalid_argument' => 'Argument incorect pentru $1: < -1 sau > 1', |
| 1684 | + 'pfunc_expr_invalid_argument_ln' => 'Argument incorect pentru ln: <= 0', |
| 1685 | + 'pfunc_expr_unknown_error' => 'Eroare de expresie: eroare necunoscută ($1)', |
| 1686 | + 'pfunc_expr_not_a_number' => 'În $1: rezultatul nu este un număr', |
| 1687 | + 'pfunc_string_too_long' => 'Eroare: Şirul depășește limita de caractere de $1', |
| 1688 | +); |
| 1689 | + |
| 1690 | +/** Tarandíne (Tarandíne) |
| 1691 | + * @author Joetaras |
| 1692 | + */ |
| 1693 | +$messages['roa-tara'] = array( |
| 1694 | + 'pfunc_desc' => "L'analizzatore avanzate cu le funziune loggeche", |
| 1695 | + 'pfunc_time_error' => 'Errore: Orarie invalide', |
| 1696 | + 'pfunc_time_too_long' => 'Errore: stonne troppe #time chiamate', |
| 1697 | + 'pfunc_rel2abs_invalid_depth' => "Errore: Profondità invalide jndr'à 'u percorse: \"\$1\" (s'à pruvate a pigghià 'nu node sus a 'u node radice)", |
| 1698 | + 'pfunc_expr_stack_exhausted' => 'Espressione in errore: Stack anghiute', |
| 1699 | + 'pfunc_expr_unexpected_number' => 'Espressione in errore: Numere inaspettate', |
| 1700 | + 'pfunc_expr_preg_match_failure' => 'Espressione in errore: preg_match inaspettate e fallite', |
| 1701 | + 'pfunc_expr_unrecognised_word' => 'Espressione in errore: Parola scanusciute "$1"', |
| 1702 | + 'pfunc_expr_unexpected_operator' => 'Espressione in errore: Operatore $1 inaspettate', |
| 1703 | + 'pfunc_expr_missing_operand' => 'Espressione in errore: Operande zumbate pe $1', |
| 1704 | + 'pfunc_expr_unexpected_closing_bracket' => "Espressione in errore: Non g'onne state achiuse le parendesi", |
| 1705 | + 'pfunc_expr_unrecognised_punctuation' => 'Espressione in errore: Carattere de punde "$1" scanusciute', |
| 1706 | + 'pfunc_expr_unclosed_bracket' => 'Espressione in errore: Parendesi non achiuse', |
| 1707 | + 'pfunc_expr_division_by_zero' => 'Divisione pe zero', |
| 1708 | + 'pfunc_expr_invalid_argument' => 'Argomende invalide pe $1: < -1 o > 1', |
| 1709 | + 'pfunc_expr_invalid_argument_ln' => 'Argomende invalide pe ln: <= 0', |
| 1710 | + 'pfunc_expr_unknown_error' => 'Espressione in errore: Errore scanusciute ($1)', |
| 1711 | + 'pfunc_expr_not_a_number' => "In $1: 'u resultate non g'è 'nu numere", |
| 1712 | + 'pfunc_string_too_long' => "Errore: 'A stringhe supranesce 'u limite de $1 carattere", |
| 1713 | +); |
| 1714 | + |
| 1715 | +/** Russian (Русский) |
| 1716 | + * @author G0rn |
| 1717 | + * @author Александр Сигачёв |
| 1718 | + */ |
| 1719 | +$messages['ru'] = array( |
| 1720 | + 'pfunc_desc' => 'Улучшенный синтаксический анализатор с логическими функциями', |
| 1721 | + 'pfunc_time_error' => 'Ошибка: неправильное время', |
| 1722 | + 'pfunc_time_too_long' => 'Ошибка: слишком много вызовов функции #time', |
| 1723 | + 'pfunc_rel2abs_invalid_depth' => 'Ошибка: ошибочная глубина пути: «$1» (попытка доступа к узлу, находящемуся выше, чем корневой)', |
| 1724 | + 'pfunc_expr_stack_exhausted' => 'Ошибка выражения: переполнение стека', |
| 1725 | + 'pfunc_expr_unexpected_number' => 'Ошибка выражения: неожидаемое число', |
| 1726 | + 'pfunc_expr_preg_match_failure' => 'Ошибка выражения: сбой preg_match', |
| 1727 | + 'pfunc_expr_unrecognised_word' => 'Ошибка выражения: неопознанное слово «$1»', |
| 1728 | + 'pfunc_expr_unexpected_operator' => 'Ошибка выражения: неожидаемый оператор $1', |
| 1729 | + 'pfunc_expr_missing_operand' => 'Ошибка выражения: $1 не хватает операнда', |
| 1730 | + 'pfunc_expr_unexpected_closing_bracket' => 'Ошибка выражения: неожидаемая закрывающая скобка', |
| 1731 | + 'pfunc_expr_unrecognised_punctuation' => 'Ошибка выражения: неопознанный символ пунктуации «$1»', |
| 1732 | + 'pfunc_expr_unclosed_bracket' => 'Ошибка выражения: незакрытая скобка', |
| 1733 | + 'pfunc_expr_division_by_zero' => 'Деление на ноль', |
| 1734 | + 'pfunc_expr_invalid_argument' => 'Ошибочный аргумент $1: < -1 или > 1', |
| 1735 | + 'pfunc_expr_invalid_argument_ln' => 'Ошибочный аргумент ln: <= 0', |
| 1736 | + 'pfunc_expr_unknown_error' => 'Ошибка выражения: неизвестная ошибка ($1)', |
| 1737 | + 'pfunc_expr_not_a_number' => 'В $1: результат не является числом', |
| 1738 | + 'pfunc_string_too_long' => 'Ошибка: строка превышает ограничение в $1 символов', |
| 1739 | +); |
| 1740 | + |
| 1741 | +/** Rusyn (Русиньскый) |
| 1742 | + * @author Gazeb |
| 1743 | + */ |
| 1744 | +$messages['rue'] = array( |
| 1745 | + 'pfunc_desc' => 'Росшырїня парсера о лоґічны функції', |
| 1746 | + 'pfunc_time_error' => 'Хына: неплатный час', |
| 1747 | + 'pfunc_time_too_long' => 'Хыба: дуже много кликаня #time', |
| 1748 | + 'pfunc_rel2abs_invalid_depth' => 'Хыба: Неплатна глубка в стежцї: "$1" (проба о приступ до узла высшого як корїнь)', |
| 1749 | + 'pfunc_expr_stack_exhausted' => 'Хыба выразу: Засобник переповненый', |
| 1750 | + 'pfunc_expr_unexpected_number' => 'Хыба выразу: Чекане чісло', |
| 1751 | + 'pfunc_expr_preg_match_failure' => 'Хыба выразу: Нечекана хыба функції preg_match', |
| 1752 | + 'pfunc_expr_unrecognised_word' => 'Хыба выразу: Нерозпознане слово „$1“', |
| 1753 | + 'pfunc_expr_unexpected_operator' => 'Хыба выразу: Нечеканый оператор: $1', |
| 1754 | + 'pfunc_expr_missing_operand' => 'Хыба выразу: Хыбить операнд про $1', |
| 1755 | + 'pfunc_expr_unexpected_closing_bracket' => 'Хыба выразу: Нечекана заперача заперка', |
| 1756 | + 'pfunc_expr_unrecognised_punctuation' => 'Хыба выразу: Нерозпознаный роздїловый знак „$1“', |
| 1757 | + 'pfunc_expr_unclosed_bracket' => 'Хыба ыразу: Незаперты заперкы', |
| 1758 | + 'pfunc_expr_division_by_zero' => 'Дїлїня нулов', |
| 1759 | + 'pfunc_expr_invalid_argument' => 'Неправилный арґумент про $1: < -1 або > 1', |
| 1760 | + 'pfunc_expr_invalid_argument_ln' => 'Неправилный арґумент про ln: <= 0', |
| 1761 | + 'pfunc_expr_unknown_error' => 'Хыба выразу: Незнама хыба ($1)', |
| 1762 | + 'pfunc_expr_not_a_number' => 'У $1: резултат не є чісло', |
| 1763 | + 'pfunc_string_too_long' => 'Хыба: Ланц є довшый як $1 {{PLURAL:$1|знак|знакы|знаків}}, што є ліміт', |
| 1764 | +); |
| 1765 | + |
| 1766 | +/** Yakut (Саха тыла) |
| 1767 | + * @author HalanTul |
| 1768 | + */ |
| 1769 | +$messages['sah'] = array( |
| 1770 | + 'pfunc_desc' => 'Логическай функциялаах тупсарыллыбыт синтаксическай анализатор', |
| 1771 | + 'pfunc_time_error' => 'Алҕас: сыыһа кэм', |
| 1772 | + 'pfunc_time_too_long' => 'Алҕас: #time функция наһаа элбэхтик хатыламмыт', |
| 1773 | + 'pfunc_rel2abs_invalid_depth' => 'Алҕас: ошибочная глубина пути: «$1» (попытка доступа к узлу, находящемуся выше, чем корневой)', |
| 1774 | + 'pfunc_expr_stack_exhausted' => 'Ошибка выражения: переполнение стека', |
| 1775 | + 'pfunc_expr_unexpected_number' => 'Алҕас: кэтэһиллибэтэх чыыһыла', |
| 1776 | + 'pfunc_expr_preg_match_failure' => 'Алҕас: preg_match моһуоктанна', |
| 1777 | + 'pfunc_expr_unrecognised_word' => 'Алҕас: биллибэт тыл «$1»', |
| 1778 | + 'pfunc_expr_unexpected_operator' => 'Алҕас: кэтэһиллибэтэх оператор $1', |
| 1779 | + 'pfunc_expr_missing_operand' => 'Алҕас: $1 операнда тиийбэт', |
| 1780 | + 'pfunc_expr_unexpected_closing_bracket' => 'Алҕас: кэтэһиллибэтэх сабар ускуопка', |
| 1781 | + 'pfunc_expr_unrecognised_punctuation' => 'Алҕас: биллибэт пунктуация бэлиэтэ «$1»', |
| 1782 | + 'pfunc_expr_unclosed_bracket' => 'Алҕас: сабыллыбатах ускуопка', |
| 1783 | + 'pfunc_expr_division_by_zero' => 'Нуулга түҥэттии', |
| 1784 | + 'pfunc_expr_invalid_argument' => '$1 алҕас аргуменнаах: < -1 or > 1', |
| 1785 | + 'pfunc_expr_invalid_argument_ln' => 'ln аргумена сыыһалаах: <= 0', |
| 1786 | + 'pfunc_expr_unknown_error' => 'Expression error (ошибка выражения): Биллибэт алҕас ($1)', |
| 1787 | + 'pfunc_expr_not_a_number' => '$1 иһигэр: эппиэтэ чыыһыла буолбатах', |
| 1788 | + 'pfunc_string_too_long' => 'Алҕас: Устуруока уһуна $1 бэлиэннэн хааччахха баппат', |
| 1789 | +); |
| 1790 | + |
| 1791 | +/** Sicilian (Sicilianu) |
| 1792 | + * @author Melos |
| 1793 | + * @author Santu |
| 1794 | + */ |
| 1795 | +$messages['scn'] = array( |
| 1796 | + 'pfunc_desc' => 'Ci junci ô parser na sèrii di funzioni lòggichi', |
| 1797 | + 'pfunc_time_error' => 'Sbàgghiu: uràriu nun vàlidu', |
| 1798 | + 'pfunc_time_too_long' => 'Sbàgghiu: troppi chiamati a #time', |
| 1799 | + 'pfunc_rel2abs_invalid_depth' => 'Sbàgghiu: prufunnità non vàlida ntô pircorsu "$1" (si tintau di tràsiri a nu nodu cchiù supra di la ràdica)', |
| 1800 | + 'pfunc_expr_stack_exhausted' => 'Sbàgghiu nti la sprissioni: lu stack finìu', |
| 1801 | + 'pfunc_expr_unexpected_number' => 'Sbàgghiu nti la sprissioni: nùmmiru non privistu', |
| 1802 | + 'pfunc_expr_preg_match_failure' => "Sbàgghiu nti la sprissioni: sbàgghiu non privistu 'n preg_match", |
| 1803 | + 'pfunc_expr_unrecognised_word' => 'Sbàgghiu nti la sprissioni: palora "$1" non canusciuta', |
| 1804 | + 'pfunc_expr_unexpected_operator' => 'Sbàgghiu nti la sprissioni: upiraturi $1 non privistu', |
| 1805 | + 'pfunc_expr_missing_operand' => 'Sbàgghiu nti la sprissioni: upirandu mancanti pi $1', |
| 1806 | + 'pfunc_expr_unexpected_closing_bracket' => 'Sbàgghiu nti la sprissioni: parèntisi chiusa non aspittata', |
| 1807 | + 'pfunc_expr_unrecognised_punctuation' => 'Sbàgghiu nti la sprissioni: caràttiri di puntiggiatura "$1" non canusciutu', |
| 1808 | + 'pfunc_expr_unclosed_bracket' => 'Sbàgghiu nti la sprissioni: parèntisi non chiuruta', |
| 1809 | + 'pfunc_expr_division_by_zero' => 'Divisioni pi zeru', |
| 1810 | + 'pfunc_expr_invalid_argument' => 'Argumentu non vàlidu pi $1: < -1 o > 1', |
| 1811 | + 'pfunc_expr_invalid_argument_ln' => 'Argumentu non vàlidu pi ln: <= 0', |
| 1812 | + 'pfunc_expr_unknown_error' => 'Sbàgghiu nti la sprissioni: sbàgghiu scanusciutu ($1)', |
| 1813 | + 'pfunc_expr_not_a_number' => 'Nti $1: lu risurtatu nun è nu nùmmiru', |
| 1814 | + 'pfunc_string_too_long' => 'Erruri: la stringa supira lu limiti di $1 carattiri', |
| 1815 | +); |
| 1816 | + |
| 1817 | +/** Sinhala (සිංහල) |
| 1818 | + * @author නන්දිමිතුරු |
| 1819 | + */ |
| 1820 | +$messages['si'] = array( |
| 1821 | + 'pfunc_desc' => 'තාර්කීක ශ්රිතයන් උපයෝගී කරගනිමින් ව්යාකරණ විග්රහකය වර්ධනය කරන්න', |
| 1822 | + 'pfunc_time_error' => 'දෝෂය: අනීතික වේලාව', |
| 1823 | + 'pfunc_time_too_long' => 'දෝෂය: වේලා ඇමතුම් # පමණට වැඩිය', |
| 1824 | + 'pfunc_rel2abs_invalid_depth' => 'දෝෂය: පෙතෙහි ගැඹුර අනීතිකයි: "$1" (මූල මංසලට ඉහළ මංසලක් ප්රවේශනයට උත්සාහ දැරිණි)', |
| 1825 | + 'pfunc_expr_stack_exhausted' => 'ප්රකාශන දෝෂය: ඇසිරුම හිස්ව පැවතිණි', |
| 1826 | + 'pfunc_expr_unexpected_number' => 'ප්රකාශන දෝෂය: අනපේක්ෂිත සංඛ්යාව', |
| 1827 | + 'pfunc_expr_unrecognised_word' => 'ප්රකාශන දෝෂය: හඳුනානොගත් වදන "$1"', |
| 1828 | + 'pfunc_expr_unexpected_operator' => 'ප්රකාශන දෝෂය: අනපේක්ෂිත $1 මෙහෙයුම්කාරකය', |
| 1829 | + 'pfunc_expr_missing_operand' => 'ප්රකාශන දෝෂය: $1 සඳහා අස්ථානගත ප්රවර්ත්යය', |
| 1830 | + 'pfunc_expr_unexpected_closing_bracket' => 'ප්රකාශන දෝෂය: අනපේක්ෂිත වැසීම් වරහන', |
| 1831 | + 'pfunc_expr_unrecognised_punctuation' => 'ප්රකාශන දෝෂය: හඳුනානොගත් විරාම අක්ෂරය "$1"', |
| 1832 | + 'pfunc_expr_unclosed_bracket' => 'ප්රකාශන දෝෂය: නොවැසූ වරහන', |
| 1833 | + 'pfunc_expr_division_by_zero' => 'ශුන්යයෙන් බෙදීම', |
| 1834 | + 'pfunc_expr_invalid_argument' => '$1: < -1 හෝ > 1 සඳහා අනීතික විස්තාරකය', |
| 1835 | + 'pfunc_expr_invalid_argument_ln' => 'ln: <= 0 සඳහා අනීතික විස්තාරකය', |
| 1836 | + 'pfunc_expr_unknown_error' => 'ප්රකාශන දෝෂය: අඥාත දෝෂය ($1)', |
| 1837 | + 'pfunc_expr_not_a_number' => '$1: හි ප්රතිඵලය සංඛ්යාවක් නොවේ', |
| 1838 | +); |
| 1839 | + |
| 1840 | +/** Slovak (Slovenčina) |
| 1841 | + * @author Helix84 |
| 1842 | + */ |
| 1843 | +$messages['sk'] = array( |
| 1844 | + 'pfunc_desc' => 'Rozšírenie syntaktického analyzátora o logické funkcie', |
| 1845 | + 'pfunc_time_error' => 'Chyba: Neplatný čas', |
| 1846 | + 'pfunc_time_too_long' => 'Chyba: príliš veľa volaní #time', |
| 1847 | + 'pfunc_rel2abs_invalid_depth' => 'Chyba: Neplatná hĺbka v ceste: „$1“ (pokus o prístup k uzlu nad koreňovým uzlom)', |
| 1848 | + 'pfunc_expr_stack_exhausted' => 'Chyba výrazu: Zásobník vyčerpaný', |
| 1849 | + 'pfunc_expr_unexpected_number' => 'Chyba výrazu: Neočakávané číslo', |
| 1850 | + 'pfunc_expr_preg_match_failure' => 'Chyba výrazu: Neočakávané zlyhanie funkcie preg_match', |
| 1851 | + 'pfunc_expr_unrecognised_word' => 'Chyba výrazu: Nerozpoznané slovo „$1“', |
| 1852 | + 'pfunc_expr_unexpected_operator' => 'Chyba výrazu: Neočakávaný operátor $1', |
| 1853 | + 'pfunc_expr_missing_operand' => 'Chyba výrazu: Chýbajúci operand pre $1', |
| 1854 | + 'pfunc_expr_unexpected_closing_bracket' => 'Chyba výrazu: Neočakávaná zatvárajúca hranatá zátvorka', |
| 1855 | + 'pfunc_expr_unrecognised_punctuation' => 'Chyba výrazu: Nerozpoznané diakritické znamienko „$1“', |
| 1856 | + 'pfunc_expr_unclosed_bracket' => 'Chyba výrazu: Neuzavretá hranatá zátvorka', |
| 1857 | + 'pfunc_expr_division_by_zero' => 'Chyba výrazu: Delenie nulou', |
| 1858 | + 'pfunc_expr_invalid_argument' => 'Neplatný argument pre $1: < -1 alebo > 1', |
| 1859 | + 'pfunc_expr_invalid_argument_ln' => 'Neplatný argument pre ln: <= 0', |
| 1860 | + 'pfunc_expr_unknown_error' => 'Chyba výrazu: Neznáma chyba ($1)', |
| 1861 | + 'pfunc_expr_not_a_number' => 'V $1: výsledok nie je číslo', |
| 1862 | + 'pfunc_string_too_long' => 'Chyba: Reťazec prekračuje limit $1 znakov', |
| 1863 | +); |
| 1864 | + |
| 1865 | +/** Slovenian (Slovenščina) |
| 1866 | + * @author Dbc334 |
| 1867 | + */ |
| 1868 | +$messages['sl'] = array( |
| 1869 | + 'pfunc_desc' => 'Izboljša razčlenjevalnik z logičnimi funkcijami', |
| 1870 | + 'pfunc_time_error' => 'Napaka: neveljaven čas', |
| 1871 | + 'pfunc_time_too_long' => 'Napaka: preveč klicev #time', |
| 1872 | + 'pfunc_rel2abs_invalid_depth' => 'Napaka: Neveljavna globina poti: »$1« (poskus dostopanja do vozlišča višjega od korenskega vozlišča)', |
| 1873 | + 'pfunc_expr_stack_exhausted' => 'Napaka v izrazu: Sklad je izčrpan', |
| 1874 | + 'pfunc_expr_unexpected_number' => 'Napaka v izrazu: Nepričakovani število', |
| 1875 | + 'pfunc_expr_preg_match_failure' => 'Napaka v izrazu: Nepričakovan neuspeh preg_match', |
| 1876 | + 'pfunc_expr_unrecognised_word' => 'Napaka v izrazu: Neprepoznana beseda »$1«', |
| 1877 | + 'pfunc_expr_unexpected_operator' => 'Napaka v izrazu: Nepričakovan operator $1', |
| 1878 | + 'pfunc_expr_missing_operand' => 'Napaka v izrazu: Manjkajoč operand za $1', |
| 1879 | + 'pfunc_expr_unexpected_closing_bracket' => 'Napaka v izrazu: Nepričakovan zaključni oklepaj', |
| 1880 | + 'pfunc_expr_unrecognised_punctuation' => 'Napaka v izrazu: Nepričakovan znak za ločilo »$1«', |
| 1881 | + 'pfunc_expr_unclosed_bracket' => 'Napaka v izrazu: Nezaprti oklepaj', |
| 1882 | + 'pfunc_expr_division_by_zero' => 'Deljenje z ničlo', |
| 1883 | + 'pfunc_expr_invalid_argument' => 'Napačen argument za $1: < -1 ali > 1', |
| 1884 | + 'pfunc_expr_invalid_argument_ln' => 'Napačen argument za ln: <= 0', |
| 1885 | + 'pfunc_expr_unknown_error' => 'Napaka v izrazu: Neznana napaka ($1)', |
| 1886 | + 'pfunc_expr_not_a_number' => 'V $1: rezultat ni število', |
| 1887 | + 'pfunc_string_too_long' => 'Napaka: Niz presega omejitev $1 {{PLURAL:$1|znaka|znakov}}', |
| 1888 | +); |
| 1889 | + |
| 1890 | +/** Serbian Cyrillic ekavian (Српски (ћирилица)) |
| 1891 | + * @author Millosh |
| 1892 | + * @author Verlor |
| 1893 | + */ |
| 1894 | +$messages['sr-ec'] = array( |
| 1895 | + 'pfunc_desc' => 'обогати парсер логичким функцијама', |
| 1896 | + 'pfunc_time_error' => 'Грешка: лоше време', |
| 1897 | + 'pfunc_time_too_long' => 'Грешка: превише #time позива', |
| 1898 | + 'pfunc_expr_stack_exhausted' => 'Грешка у изразу: стек напуњен', |
| 1899 | + 'pfunc_expr_unexpected_number' => 'Грешка у изразу: неочекивани број', |
| 1900 | + 'pfunc_expr_preg_match_failure' => 'Грешка у изразу: Неочекивана preg_match грешка', |
| 1901 | + 'pfunc_expr_unrecognised_word' => 'Грешка у изразу: непозната реч "$1"', |
| 1902 | + 'pfunc_expr_unexpected_operator' => 'Грешка у изразу: непознати оператор "$1"', |
| 1903 | + 'pfunc_expr_missing_operand' => 'Грешка у изразу: недостаје операнд за $1', |
| 1904 | + 'pfunc_expr_unexpected_closing_bracket' => 'Грешка у изразу: Неочекивано затварање средње заграде.', |
| 1905 | + 'pfunc_expr_unrecognised_punctuation' => 'Грешка у изразу: Непознати интерпункцијски карактер "$1".', |
| 1906 | + 'pfunc_expr_unclosed_bracket' => 'Грешка у изразу: Незатворена средња заграда.', |
| 1907 | + 'pfunc_expr_division_by_zero' => 'Дељење са нулом.', |
| 1908 | + 'pfunc_expr_invalid_argument' => 'Лош аргумент: $1 је < -1 или > 1', |
| 1909 | + 'pfunc_expr_invalid_argument_ln' => 'Лош аргумент: ln <= 0', |
| 1910 | + 'pfunc_expr_unknown_error' => 'Грешка у изразу: Непозната грешка ($1)', |
| 1911 | + 'pfunc_expr_not_a_number' => 'Резултат у $1 није број.', |
| 1912 | + 'pfunc_string_too_long' => 'Грешка: реч прекорачује $1 слова, што је постављено ограничење', |
| 1913 | +); |
| 1914 | + |
| 1915 | +/** Serbian Latin ekavian (Srpski (latinica)) |
| 1916 | + * @author Michaello |
| 1917 | + */ |
| 1918 | +$messages['sr-el'] = array( |
| 1919 | + 'pfunc_desc' => 'obogati parser logičkim funkcijama', |
| 1920 | + 'pfunc_time_error' => 'Greška: loše vreme', |
| 1921 | + 'pfunc_time_too_long' => 'Greška: previše #time poziva', |
| 1922 | + 'pfunc_expr_stack_exhausted' => 'Greška u izrazu: stek napunjen', |
| 1923 | + 'pfunc_expr_unexpected_number' => 'Greška u izrazu: neočekivani broj', |
| 1924 | + 'pfunc_expr_preg_match_failure' => 'Greška u izrazu: Neočekivana preg_match greška', |
| 1925 | + 'pfunc_expr_unrecognised_word' => 'Greška u izrazu: nepoznata reč "$1"', |
| 1926 | + 'pfunc_expr_unexpected_operator' => 'Greška u izrazu: nepoznati operator "$1"', |
| 1927 | + 'pfunc_expr_missing_operand' => 'Greška u izrazu: nedostaje operand za $1', |
| 1928 | + 'pfunc_expr_unexpected_closing_bracket' => 'Greška u izrazu: Neočekivano zatvaranje srednje zagrade.', |
| 1929 | + 'pfunc_expr_unrecognised_punctuation' => 'Greška u izrazu: Nepoznati interpunkcijski karakter "$1".', |
| 1930 | + 'pfunc_expr_unclosed_bracket' => 'Greška u izrazu: Nezatvorena srednja zagrada.', |
| 1931 | + 'pfunc_expr_division_by_zero' => 'Deljenje sa nulom.', |
| 1932 | + 'pfunc_expr_invalid_argument' => 'Loš argument: $1 je < -1 ili > 1', |
| 1933 | + 'pfunc_expr_invalid_argument_ln' => 'Loš argument: ln <= 0', |
| 1934 | + 'pfunc_expr_unknown_error' => 'Greška u izrazu: Nepoznata greška ($1)', |
| 1935 | + 'pfunc_expr_not_a_number' => 'Rezultat u $1 nije broj.', |
| 1936 | + 'pfunc_string_too_long' => 'Greška: reč prekoračuje $1 slova, što je postavljeno ograničenje', |
| 1937 | +); |
| 1938 | + |
| 1939 | +/** Seeltersk (Seeltersk) |
| 1940 | + * @author Pyt |
| 1941 | + */ |
| 1942 | +$messages['stq'] = array( |
| 1943 | + 'pfunc_desc' => 'Ärwiedert dän Parser uum logiske Funktione', |
| 1944 | + 'pfunc_time_error' => 'Failer: uungultige Tiedangoawe', |
| 1945 | + 'pfunc_time_too_long' => 'Failer: tou fuul #time-Aproupe', |
| 1946 | + 'pfunc_rel2abs_invalid_depth' => 'Failer: uungultige Djüpte in Paad: „$1“ (Fersäik, ap n Knättepunkt buppe dän Haudknättepunkt toutougriepen)', |
| 1947 | + 'pfunc_expr_stack_exhausted' => 'Expression-Failer: Stack-Uurloop', |
| 1948 | + 'pfunc_expr_unexpected_number' => 'Expression-Failer: Nit ferwachtede Taal', |
| 1949 | + 'pfunc_expr_preg_match_failure' => 'Expression-Failer: Uunferwachtede „preg_match“-Failfunktion', |
| 1950 | + 'pfunc_expr_unrecognised_word' => 'Expression-Failer: Nit wierkoand Woud „$1“', |
| 1951 | + 'pfunc_expr_unexpected_operator' => 'Expression-Failer: Uunferwachteden Operator: <strong><tt>$1</tt></strong>', |
| 1952 | + 'pfunc_expr_missing_operand' => 'Expression-Failer: Failenden Operand foar <strong><tt>$1</tt></strong>', |
| 1953 | + 'pfunc_expr_unexpected_closing_bracket' => 'Expression-Failer: Uunferwachte sluutende kaantige Klammere', |
| 1954 | + 'pfunc_expr_unrecognised_punctuation' => 'Expression-Failer: Nit wierkoand Satsteeken „$1“', |
| 1955 | + 'pfunc_expr_unclosed_bracket' => 'Expression-Failer: Nit sleetene kaantige Klammer', |
| 1956 | + 'pfunc_expr_division_by_zero' => 'Expression-Failer: Division truch Null', |
| 1957 | + 'pfunc_expr_invalid_argument' => 'Uungultich Argument foar $1: < -1 of > 1', |
| 1958 | + 'pfunc_expr_invalid_argument_ln' => 'Uungultich Argument foar ln: <= 0', |
| 1959 | + 'pfunc_expr_unknown_error' => 'Expression-Failer: Uunbekoanden Failer ($1)', |
| 1960 | + 'pfunc_expr_not_a_number' => 'Expression-Failer: In $1: Resultoat is neen Taal', |
| 1961 | + 'pfunc_string_too_long' => 'Failer: Teekenkätte is laanger as dät Teekenlimit fon $1', |
| 1962 | +); |
| 1963 | + |
| 1964 | +/** Sundanese (Basa Sunda) |
| 1965 | + * @author Irwangatot |
| 1966 | + * @author Kandar |
| 1967 | + */ |
| 1968 | +$messages['su'] = array( |
| 1969 | + 'pfunc_desc' => 'Ngembangkeun parser kalawan fungsi logis', |
| 1970 | + 'pfunc_time_error' => 'Éror: titimangsa teu valid', |
| 1971 | + 'pfunc_expr_division_by_zero' => 'Pambagi ku nol', |
| 1972 | +); |
| 1973 | + |
| 1974 | +/** Swedish (Svenska) |
| 1975 | + * @author Lejonel |
| 1976 | + * @author M.M.S. |
| 1977 | + * @author Najami |
| 1978 | + */ |
| 1979 | +$messages['sv'] = array( |
| 1980 | + 'pfunc_desc' => 'Lägger till logiska funktioner i parsern', |
| 1981 | + 'pfunc_time_error' => 'Fel: ogiltig tid', |
| 1982 | + 'pfunc_time_too_long' => 'Fel: för många anrop av #time', |
| 1983 | + 'pfunc_rel2abs_invalid_depth' => 'Fel: felaktig djup i sökväg: "$1" (försöker nå en nod ovanför rotnoden)', |
| 1984 | + 'pfunc_expr_stack_exhausted' => 'Fel i uttryck: Stackutrymmet tog slut', |
| 1985 | + 'pfunc_expr_unexpected_number' => 'Fel i uttryck: Oväntat tal', |
| 1986 | + 'pfunc_expr_preg_match_failure' => 'Fel i uttryck: Oväntad fel i preg_match', |
| 1987 | + 'pfunc_expr_unrecognised_word' => 'Fel i uttryck: Okänt ord "$1"', |
| 1988 | + 'pfunc_expr_unexpected_operator' => 'Fel i uttryck: Oväntad operator $1', |
| 1989 | + 'pfunc_expr_missing_operand' => 'Fel i uttryck: Operand saknas för $1', |
| 1990 | + 'pfunc_expr_unexpected_closing_bracket' => 'Fel i uttryck: Oväntad avslutande parentes', |
| 1991 | + 'pfunc_expr_unrecognised_punctuation' => 'Fel i uttryck: Okänt interpunktionstecken "$1"', |
| 1992 | + 'pfunc_expr_unclosed_bracket' => 'Fel i uttryck: Oavslutad parentes', |
| 1993 | + 'pfunc_expr_division_by_zero' => 'Division med noll', |
| 1994 | + 'pfunc_expr_invalid_argument' => 'Ogiltigt argument för $1: < -1 eller > 1', |
| 1995 | + 'pfunc_expr_invalid_argument_ln' => 'Ogiltigt argument för ln: <= 0', |
| 1996 | + 'pfunc_expr_unknown_error' => 'Fel i uttryck: Okänt fel ($1)', |
| 1997 | + 'pfunc_expr_not_a_number' => 'I $1: resultatet är inte ett tal', |
| 1998 | + 'pfunc_string_too_long' => 'Fel: Strängen överskrider gränsen på $1 tecken', |
| 1999 | +); |
| 2000 | + |
| 2001 | +/** Telugu (తెలుగు) |
| 2002 | + * @author Mpradeep |
| 2003 | + * @author Veeven |
| 2004 | + */ |
| 2005 | +$messages['te'] = array( |
| 2006 | + 'pfunc_time_error' => 'లోపం: సమయం సరిగ్గా లేదు', |
| 2007 | + 'pfunc_time_too_long' => 'లోపం: #timeను చాలా సార్లు ఉపయోగించారు', |
| 2008 | + 'pfunc_rel2abs_invalid_depth' => 'లోపం: పాత్ యొక్క డెప్తు సరిగ్గాలేదు: "$1" (రూట్ నోడు కంటే పైన ఉన్న నోడు ఉపయోగించటానికి ప్రయత్నం జరిగింది)', |
| 2009 | + 'pfunc_expr_stack_exhausted' => 'సమాసంలో(Expression) లోపం: స్టాకు మొత్తం అయిపోయింది', |
| 2010 | + 'pfunc_expr_unexpected_number' => 'సమాసంలో(Expression) లోపం: ఊహించని సంఖ్య వచ్చింది', |
| 2011 | + 'pfunc_expr_preg_match_failure' => 'సమాసంలో(Expression) లోపం: preg_matchలో ఊహించని విఫలం', |
| 2012 | + 'pfunc_expr_unrecognised_word' => 'సమాసంలో(Expression) లోపం: "$1" అనే పదాన్ని గుర్తుపట్టలేకపోతున్నాను', |
| 2013 | + 'pfunc_expr_unexpected_operator' => 'సమాసంలో(Expression) లోపం: $1 పరికర్తను(operator) ఊహించలేదు', |
| 2014 | + 'pfunc_expr_missing_operand' => 'సమాసంలో(Expression) లోపం: $1కు ఒక ఆపరాండును ఇవ్వలేదు', |
| 2015 | + 'pfunc_expr_unexpected_closing_bracket' => 'సమాసంలో(Expression) లోపం: ఊహించని బ్రాకెట్టు ముగింపు', |
| 2016 | + 'pfunc_expr_unrecognised_punctuation' => 'సమాసంలో(Expression) లోపం: "$1" అనే విరామ చిహ్నాన్ని గుర్తించలేకపోతున్నాను', |
| 2017 | + 'pfunc_expr_unclosed_bracket' => 'సమాసంలో(Expression) లోపం: బ్రాకెట్టును మూయలేదు', |
| 2018 | + 'pfunc_expr_division_by_zero' => 'సున్నాతో భాగించారు', |
| 2019 | + 'pfunc_expr_unknown_error' => 'సమాసంలో(Expression) లోపం: తెలియని లోపం ($1)', |
| 2020 | + 'pfunc_expr_not_a_number' => '$1లో: వచ్చిన ఫలితం సంఖ్య కాదు', |
| 2021 | +); |
| 2022 | + |
| 2023 | +/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic)) |
| 2024 | + * @author Ibrahim |
| 2025 | + */ |
| 2026 | +$messages['tg-cyrl'] = array( |
| 2027 | + 'pfunc_desc' => 'Ба таҷзеҳкунанда, дастурҳои мантиқӣ меафзояд', |
| 2028 | + 'pfunc_time_error' => 'Хато: замони ғайримиҷоз', |
| 2029 | + 'pfunc_time_too_long' => 'Хато: #time фарохонии беш аз ҳад', |
| 2030 | + 'pfunc_rel2abs_invalid_depth' => 'Хато: Чуқурии ғайримиҷоз дар нишонӣ: "$1" (талош барои дастраси ба як нишонӣ болотар аз нишонии реша)', |
| 2031 | + 'pfunc_expr_stack_exhausted' => 'Хатои ибора: Пушта аз даст рафтааст', |
| 2032 | + 'pfunc_expr_unexpected_number' => 'Хатои ибора: Адади ғайримунтазир', |
| 2033 | + 'pfunc_expr_preg_match_failure' => 'Хатои ибора: Хатои ғайримунтазири preg_match', |
| 2034 | + 'pfunc_expr_unrecognised_word' => 'Хатои ибора: Калимаи ношинохта "$1"', |
| 2035 | + 'pfunc_expr_unexpected_operator' => 'Хатои ибора: Амалгари ғайримунтазири $1', |
| 2036 | + 'pfunc_expr_missing_operand' => 'Хатои ибора: Амалгари гумшуда барои $1', |
| 2037 | + 'pfunc_expr_unexpected_closing_bracket' => 'Хатои ибора: Қафси бастаи номунтазир', |
| 2038 | + 'pfunc_expr_unrecognised_punctuation' => 'Хатои ибора: Аломати нуқтагузории шинохтанашуда "$1"', |
| 2039 | + 'pfunc_expr_unclosed_bracket' => 'Хатои ибора: Қафси бастанашуда', |
| 2040 | + 'pfunc_expr_division_by_zero' => 'Тақсим бар сифр', |
| 2041 | + 'pfunc_expr_unknown_error' => 'Хатои ибора: Хатои ношинос ($1)', |
| 2042 | + 'pfunc_expr_not_a_number' => 'Дар $1: натиҷа адад нест', |
| 2043 | +); |
| 2044 | + |
| 2045 | +/** Tajik (Latin) (Тоҷикӣ (Latin)) |
| 2046 | + * @author Liangent |
| 2047 | + */ |
| 2048 | +$messages['tg-latn'] = array( |
| 2049 | + 'pfunc_desc' => 'Ba taçzehkunanda, dasturhoi mantiqī meafzojad', |
| 2050 | + 'pfunc_time_error' => 'Xato: zamoni ƣajrimiçoz', |
| 2051 | + 'pfunc_time_too_long' => 'Xato: #time faroxoniji beş az had', |
| 2052 | + 'pfunc_rel2abs_invalid_depth' => 'Xato: Cuquriji ƣajrimiçoz dar nişonī: "$1" (taloş baroi dastrasi ba jak nişonī bolotar az nişoniji reşa)', |
| 2053 | + 'pfunc_expr_stack_exhausted' => 'Xatoi ibora: Puşta az dast raftaast', |
| 2054 | + 'pfunc_expr_unexpected_number' => 'Xatoi ibora: Adadi ƣajrimuntazir', |
| 2055 | + 'pfunc_expr_preg_match_failure' => 'Xatoi ibora: Xatoi ƣajrimuntaziri preg_match', |
| 2056 | + 'pfunc_expr_unrecognised_word' => 'Xatoi ibora: Kalimai noşinoxta "$1"', |
| 2057 | + 'pfunc_expr_unexpected_operator' => 'Xatoi ibora: Amalgari ƣajrimuntaziri $1', |
| 2058 | + 'pfunc_expr_missing_operand' => 'Xatoi ibora: Amalgari gumşuda baroi $1', |
| 2059 | + 'pfunc_expr_unexpected_closing_bracket' => 'Xatoi ibora: Qafsi bastai nomuntazir', |
| 2060 | + 'pfunc_expr_unrecognised_punctuation' => 'Xatoi ibora: Alomati nuqtaguzoriji şinoxtanaşuda "$1"', |
| 2061 | + 'pfunc_expr_unclosed_bracket' => 'Xatoi ibora: Qafsi bastanaşuda', |
| 2062 | + 'pfunc_expr_division_by_zero' => 'Taqsim bar sifr', |
| 2063 | + 'pfunc_expr_unknown_error' => 'Xatoi ibora: Xatoi noşinos ($1)', |
| 2064 | + 'pfunc_expr_not_a_number' => 'Dar $1: natiça adad nest', |
| 2065 | +); |
| 2066 | + |
| 2067 | +/** Thai (ไทย) |
| 2068 | + * @author Ans |
| 2069 | + */ |
| 2070 | +$messages['th'] = array( |
| 2071 | + 'pfunc_time_error' => 'เกิดข้อผิดพลาด: ค่าเวลาไม่ถูกต้อง', |
| 2072 | + 'pfunc_time_too_long' => 'เกิดข้อผิดพลาด: มีการเรียกใช้ #time มากเกินไป', |
| 2073 | + 'pfunc_rel2abs_invalid_depth' => 'เกิดข้อผิดพลาด: path depth ไม่ถูกต้อง: "$1" (เป็นการพยายามที่จะเข้าถึงตำแหน่งที่อยู่เหนือตำแหน่งราก)', |
| 2074 | + 'pfunc_expr_stack_exhausted' => 'สูตรเกิดข้อผิดพลาด: มี stack ไม่พอในการคำนวณสูตร', |
| 2075 | + 'pfunc_expr_unexpected_number' => 'สูตรไม่ถูกต้อง: ค่าตัวเลขอยู่ผิดที่', |
| 2076 | + 'pfunc_expr_preg_match_failure' => 'สูตรเกิดข้อผิดพลาด: เกิดความล้มเหลวในการสั่ง preg_match โดยไม่ทราบสาเหตุ', |
| 2077 | + 'pfunc_expr_unrecognised_word' => 'สูตรไม่ถูกต้อง: "$1" เป็นคำที่ไม่รู้จัก', |
| 2078 | + 'pfunc_expr_unexpected_operator' => 'สูตรไม่ถูกต้อง: $1 อยู่ผิดที่', |
| 2079 | + 'pfunc_expr_missing_operand' => 'สูตรไม่ถูกต้อง: ได้รับค่าไม่ครบในการคำนวณ $1', |
| 2080 | + 'pfunc_expr_unexpected_closing_bracket' => 'สูตรไม่ถูกต้อง: ปิดวงเล็บเกิน หรือ ปิดวงเล็บผิดที่', |
| 2081 | + 'pfunc_expr_unrecognised_punctuation' => 'สูตรไม่ถูกต้อง: "$1" เป็นเครื่องหมายหรือตัวอักษรที่ไม่รู้จัก', |
| 2082 | + 'pfunc_expr_unclosed_bracket' => 'สูตรไม่ถูกต้อง: ไม่ได้ปิดวงเล็บ', |
| 2083 | + 'pfunc_expr_division_by_zero' => 'ตัวหารเป็นศูนย์', |
| 2084 | + 'pfunc_expr_invalid_argument' => 'ค่าตัวแปรไม่ถูกต้อง: $1 ไม่สามารถรับค่าที่น้อยกว่า -1 หรือ มากกว่า 1', |
| 2085 | + 'pfunc_expr_invalid_argument_ln' => 'ค่าตัวแปรไม่ถูกต้อง: ln ไม่สามารถรับค่าที่น้อยกว่าหรือเท่ากับศูนย์', |
| 2086 | + 'pfunc_expr_unknown_error' => 'สูตรไม่ถูกต้อง: เกิดความผิดพลาดในสูตรโดยไม่ทราบสาเหตุ ($1)', |
| 2087 | + 'pfunc_expr_not_a_number' => '$1: ผลลัพธ์ไม่สามารถแทนด้วยจำนวน (NAN or not a number)', |
| 2088 | +); |
| 2089 | + |
| 2090 | +/** Turkmen (Türkmençe) |
| 2091 | + * @author Hanberke |
| 2092 | + */ |
| 2093 | +$messages['tk'] = array( |
| 2094 | + 'pfunc_desc' => 'Parseri logiki funksiýalar bilen güýçlendir', |
| 2095 | + 'pfunc_time_error' => 'Säwlik: nädogry wagt', |
| 2096 | + 'pfunc_time_too_long' => 'Säwlik: aşa köp #time çagyryşlary', |
| 2097 | + 'pfunc_rel2abs_invalid_depth' => 'Säwlik: Ýolda nädogry çuňluk: "$1" (kök düwüniň üstündäki bir düwüne barjak boldy)', |
| 2098 | + 'pfunc_expr_stack_exhausted' => 'Aňlatma säwligi: Stek gutardy', |
| 2099 | + 'pfunc_expr_unexpected_number' => 'Aňlatma säwligi: Garaşylmaýan san', |
| 2100 | + 'pfunc_expr_preg_match_failure' => 'Aňlatma säwligi: Garaşylmaýan preg_match näsazlygy', |
| 2101 | + 'pfunc_expr_unrecognised_word' => 'Aňlatma säwligi: Bilinmeýän "$1" sözi', |
| 2102 | + 'pfunc_expr_unexpected_operator' => 'Aňlatma säwligi: Garaşylmaýan $1 operatory', |
| 2103 | + 'pfunc_expr_missing_operand' => 'Aňlatma säwligi: $1 üçin kem operand', |
| 2104 | + 'pfunc_expr_unexpected_closing_bracket' => 'Aňlatma säwligi: Garaşylmaýan ýapyjy ýaý', |
| 2105 | + 'pfunc_expr_unrecognised_punctuation' => 'Aňlatma säwligi: Bilinmeýän punktuasiýa simwoly "$1"', |
| 2106 | + 'pfunc_expr_unclosed_bracket' => 'Aňlatma säwligi: Ýapylmadyk ýaý', |
| 2107 | + 'pfunc_expr_division_by_zero' => 'Nola bölmek', |
| 2108 | + 'pfunc_expr_invalid_argument' => '$1: < -1 ýa-da > 1 üçin nädogry argument', |
| 2109 | + 'pfunc_expr_invalid_argument_ln' => 'ln: <= 0 üçin nädogry argument', |
| 2110 | + 'pfunc_expr_unknown_error' => 'Aňlatma säwligi: Näbelli säwlik ($1)', |
| 2111 | + 'pfunc_expr_not_a_number' => '$1-de: netije san däl', |
| 2112 | + 'pfunc_string_too_long' => 'Säwlik: Setir $1 simwol çäginden geçýär', |
| 2113 | +); |
| 2114 | + |
| 2115 | +/** Tagalog (Tagalog) |
| 2116 | + * @author AnakngAraw |
| 2117 | + */ |
| 2118 | +$messages['tl'] = array( |
| 2119 | + 'pfunc_desc' => 'Pagibayuhin ang katangian ng banghay na may mga tungkuling makatwiran (may lohika)', |
| 2120 | + 'pfunc_time_error' => 'Kamalian: hindi tanggap na oras', |
| 2121 | + 'pfunc_time_too_long' => 'Kamalian: napakaraming mga pagtawag sa #oras', |
| 2122 | + 'pfunc_rel2abs_invalid_depth' => 'Kamalian: Hindi tanggap na sukat ng lalim sa daanan: "$1" (sinubok na puntahan ang isang alimpusong nasa itaas ng bugkol ng ugat)', |
| 2123 | + 'pfunc_expr_stack_exhausted' => 'Kamalian sa pagpapahayag: Naubos na ang salansan', |
| 2124 | + 'pfunc_expr_unexpected_number' => 'Kamalian sa pagpapahayag: Hindi inaasahang bilang', |
| 2125 | + 'pfunc_expr_preg_match_failure' => "Kamalian sa pagpapahayag: Hindi inaasahang pagkabigo ng \"pagtutugma_ng_hibla\" (''preg_match'')", |
| 2126 | + 'pfunc_expr_unrecognised_word' => 'Kamalian sa pagpapahayag: Hindi nakikilalang salitang "$1"', |
| 2127 | + 'pfunc_expr_unexpected_operator' => "Kamalian sa pagpapahayag: Hindi inaasahang bantas na tagapagsagawa (''operator'') ng $1", |
| 2128 | + 'pfunc_expr_missing_operand' => "Kamalian sa pagpapahayag: Nawawalang halaga (''operand'') para sa $1", |
| 2129 | + 'pfunc_expr_unexpected_closing_bracket' => 'Kamalian sa pagpapahayag: Hindi inaasahang pangpagtatapos na panaklong na kasingay (braket)', |
| 2130 | + 'pfunc_expr_unrecognised_punctuation' => 'Kamalian sa pagpapahayag: Hindi nakikilalang panitik na pangpalabantasang "$1"', |
| 2131 | + 'pfunc_expr_unclosed_bracket' => 'Kamalian sa pagpapahayag: Hindi naisarang panaklong na kasingay (braket)', |
| 2132 | + 'pfunc_expr_division_by_zero' => 'Paghahati sa pamamagitan ng wala (sero)', |
| 2133 | + 'pfunc_expr_invalid_argument' => 'Hindi tanggap na pangangatwiran (argumento) para sa $1: < -1 o > 1', |
| 2134 | + 'pfunc_expr_invalid_argument_ln' => 'Hindi tanggap na pangangatwiran (argumento) para sa ln: <= 0', |
| 2135 | + 'pfunc_expr_unknown_error' => 'Kamalian sa pagpapahayag: Hindi nalalamang kamalian ($1)', |
| 2136 | + 'pfunc_expr_not_a_number' => 'Sa $1: ang kinalabasan ay hindi isang bilang', |
| 2137 | + 'pfunc_string_too_long' => 'Kamalian: Lumampas ang bagting sa $1 hangganang panitik', |
| 2138 | +); |
| 2139 | + |
| 2140 | +/** Turkish (Türkçe) |
| 2141 | + * @author Joseph |
| 2142 | + */ |
| 2143 | +$messages['tr'] = array( |
| 2144 | + 'pfunc_desc' => 'Derleyiciyi mantıksal fonksiyonlarla geliştir', |
| 2145 | + 'pfunc_time_error' => 'Hata: geçersiz zaman', |
| 2146 | + 'pfunc_time_too_long' => 'Hata: çok fazla #time çağrısı', |
| 2147 | + 'pfunc_rel2abs_invalid_depth' => 'Hata: Yolda geçersiz derinlik: "$1" (kök düğümünün üstünde bir düğüme erişmeye çalıştı)', |
| 2148 | + 'pfunc_expr_stack_exhausted' => 'İfade hatası: Stack bitti', |
| 2149 | + 'pfunc_expr_unexpected_number' => 'İfade hatası: Beklenmeyen sayı', |
| 2150 | + 'pfunc_expr_preg_match_failure' => 'İfade hatası: Beklenmedik preg_match arızası', |
| 2151 | + 'pfunc_expr_unrecognised_word' => 'İfade hatası: Tanınmayan "$1" kelimesi', |
| 2152 | + 'pfunc_expr_unexpected_operator' => 'İfade hatası: Beklenmedik $1 operatörü', |
| 2153 | + 'pfunc_expr_missing_operand' => 'İfade hatası: $1 için eksik terim', |
| 2154 | + 'pfunc_expr_unexpected_closing_bracket' => 'İfade hatası: Beklenmedik kapa parantez', |
| 2155 | + 'pfunc_expr_unrecognised_punctuation' => 'İfade hatası: Tanınmayan noktalama karakteri "$1"', |
| 2156 | + 'pfunc_expr_unclosed_bracket' => 'İfade hatası: Kapanmamış parantez', |
| 2157 | + 'pfunc_expr_division_by_zero' => 'Sıfır ile bölme', |
| 2158 | + 'pfunc_expr_invalid_argument' => '$1 için geçersiz değişken: < -1 ya da > 1', |
| 2159 | + 'pfunc_expr_invalid_argument_ln' => 'ln için geçersiz değişken: <= 0', |
| 2160 | + 'pfunc_expr_unknown_error' => 'İfade hatası: Bilinmeyen hata ($1)', |
| 2161 | + 'pfunc_expr_not_a_number' => "$1'de: sonuç bir sayı değil", |
| 2162 | + 'pfunc_string_too_long' => 'Hata: Dize $1 karakter sınırını geçiyor', |
| 2163 | +); |
| 2164 | + |
| 2165 | +/** Ukrainian (Українська) |
| 2166 | + * @author AS |
| 2167 | + * @author Ahonc |
| 2168 | + */ |
| 2169 | +$messages['uk'] = array( |
| 2170 | + 'pfunc_desc' => 'Покращений синтаксичний аналізатор з логічними функціями', |
| 2171 | + 'pfunc_time_error' => 'Помилка: неправильний час', |
| 2172 | + 'pfunc_time_too_long' => 'Помилка: забагато викликів функції #time', |
| 2173 | + 'pfunc_rel2abs_invalid_depth' => 'Помилка: неправильна глибина шляху: «$1» (спроба доступу до вузла, що знаходиться вище, ніж кореневий)', |
| 2174 | + 'pfunc_expr_stack_exhausted' => 'Помилка виразу: стек переповнений', |
| 2175 | + 'pfunc_expr_unexpected_number' => 'Помилка виразу: неочікуване число', |
| 2176 | + 'pfunc_expr_preg_match_failure' => 'Помилка виразу: збій preg_match', |
| 2177 | + 'pfunc_expr_unrecognised_word' => 'Помилка виразу: незрозуміле слово «$1»', |
| 2178 | + 'pfunc_expr_unexpected_operator' => 'Помилка виразу: неочікуваний оператор $1', |
| 2179 | + 'pfunc_expr_missing_operand' => 'Помилка виразу: бракує операнда для $1', |
| 2180 | + 'pfunc_expr_unexpected_closing_bracket' => 'Помилка виразу: неочікувана закрита дужка', |
| 2181 | + 'pfunc_expr_unrecognised_punctuation' => 'Помилка виразу: незрозумілий розділовий знак «$1»', |
| 2182 | + 'pfunc_expr_unclosed_bracket' => 'Помилка виразу: незакрита дужка', |
| 2183 | + 'pfunc_expr_division_by_zero' => 'Ділення на нуль', |
| 2184 | + 'pfunc_expr_invalid_argument' => 'Неправильний аргумент для $1: < -1 або > 1', |
| 2185 | + 'pfunc_expr_invalid_argument_ln' => 'Помилковий аргумент логарифма (має бути більший від нуля)', |
| 2186 | + 'pfunc_expr_unknown_error' => 'Помилка виразу: невідома помилка ($1)', |
| 2187 | + 'pfunc_expr_not_a_number' => 'У $1: результат не є числом', |
| 2188 | + 'pfunc_string_too_long' => 'Помилка: довжина рядка перевищує межу в {{PLURAL:$1|$1 символ|$1 символи|$1 символів}}', |
| 2189 | +); |
| 2190 | + |
| 2191 | +/** Vèneto (Vèneto) |
| 2192 | + * @author Candalua |
| 2193 | + */ |
| 2194 | +$messages['vec'] = array( |
| 2195 | + 'pfunc_desc' => 'Zonta al parser na serie de funsion logiche', |
| 2196 | + 'pfunc_time_error' => 'Eror: orario mìa valido', |
| 2197 | + 'pfunc_time_too_long' => 'Eror: massa chiamate a #time', |
| 2198 | + 'pfunc_rel2abs_invalid_depth' => 'Eror: profondità mìa valida nel percorso "$1" (se gà proà a accédar a un nodo piassè sora de la raìsa)', |
| 2199 | + 'pfunc_expr_stack_exhausted' => "Eror ne l'espression: stack esaurìo", |
| 2200 | + 'pfunc_expr_unexpected_number' => "Eror ne l'espression: xe vegnù fora un nùmaro che no se se spetava", |
| 2201 | + 'pfunc_expr_preg_match_failure' => "Eror ne l'espression: eror inateso in preg_match", |
| 2202 | + 'pfunc_expr_unrecognised_word' => 'Eror ne l\'espression: parola "$1" mìa riconossiùa', |
| 2203 | + 'pfunc_expr_unexpected_operator' => "Eror ne l'espression: operator $1 inateso", |
| 2204 | + 'pfunc_expr_missing_operand' => "Eror ne l'espression: operando mancante par $1", |
| 2205 | + 'pfunc_expr_unexpected_closing_bracket' => "Eror ne l'espression: parentesi chiusa inatesa", |
| 2206 | + 'pfunc_expr_unrecognised_punctuation' => 'Eror ne l\'espression: caràtere de puntegiatura "$1" mìa riconossiùo', |
| 2207 | + 'pfunc_expr_unclosed_bracket' => "Eror ne l'espression: parentesi verta e mìa sarà", |
| 2208 | + 'pfunc_expr_division_by_zero' => 'Division par zero', |
| 2209 | + 'pfunc_expr_invalid_argument' => 'Argomento mìa valido par $1: < -1 or > 1', |
| 2210 | + 'pfunc_expr_invalid_argument_ln' => 'Argomento mìa valido par ln: <= 0', |
| 2211 | + 'pfunc_expr_unknown_error' => "Eror ne l'espression: eror sconossiùo ($1)", |
| 2212 | + 'pfunc_expr_not_a_number' => "In $1: el risultato no'l xe mìa un nùmaro", |
| 2213 | + 'pfunc_string_too_long' => 'Eròr: la stringa la va fora dal limite de {{PLURAL:$1|1 caràtere|$1 caràteri}}', |
| 2214 | +); |
| 2215 | + |
| 2216 | +/** Veps (Vepsan kel') |
| 2217 | + * @author Игорь Бродский |
| 2218 | + */ |
| 2219 | +$messages['vep'] = array( |
| 2220 | + 'pfunc_time_error' => 'Petuz: vär aig', |
| 2221 | +); |
| 2222 | + |
| 2223 | +/** Vietnamese (Tiếng Việt) |
| 2224 | + * @author Minh Nguyen |
| 2225 | + * @author Vinhtantran |
| 2226 | + */ |
| 2227 | +$messages['vi'] = array( |
| 2228 | + 'pfunc_desc' => 'Nâng cao bộ xử lý với những hàm cú pháp lôgic', |
| 2229 | + 'pfunc_time_error' => 'Lỗi: thời gian không hợp lệ', |
| 2230 | + 'pfunc_time_too_long' => 'Lỗi: quá nhiều lần gọi #time', |
| 2231 | + 'pfunc_rel2abs_invalid_depth' => 'Lỗi: độ sâu không hợp lệ trong đường dẫn “$1” (do cố gắng truy cập nút phía trên nút gốc)', |
| 2232 | + 'pfunc_expr_stack_exhausted' => 'Lỗi biểu thức: Đã cạn stack', |
| 2233 | + 'pfunc_expr_unexpected_number' => 'Lỗi biểu thức: Dư số', |
| 2234 | + 'pfunc_expr_preg_match_failure' => 'Lỗi biểu thức: Hàm preg_match thất bại', |
| 2235 | + 'pfunc_expr_unrecognised_word' => 'Lỗi biểu thức: Từ “$1” không rõ ràng', |
| 2236 | + 'pfunc_expr_unexpected_operator' => "Lỗi biểu thức: Dư toán tử '''$1'''", |
| 2237 | + 'pfunc_expr_missing_operand' => 'Lỗi biểu thức: Thiếu toán hạng trong $1', |
| 2238 | + 'pfunc_expr_unexpected_closing_bracket' => 'Lỗi biểu thức: Dư dấu đóng ngoặc', |
| 2239 | + 'pfunc_expr_unrecognised_punctuation' => 'Lỗi biểu thức: Dấu phân cách “$1” không rõ ràng', |
| 2240 | + 'pfunc_expr_unclosed_bracket' => 'Lỗi biểu thức: Dấu ngoặc chưa được đóng', |
| 2241 | + 'pfunc_expr_division_by_zero' => 'Chia cho zero', |
| 2242 | + 'pfunc_expr_invalid_argument' => 'Tham số không hợp lệ cho $1: < −1 hay > 1', |
| 2243 | + 'pfunc_expr_invalid_argument_ln' => 'Tham số không hợp lệ cho ln: ≤ 0', |
| 2244 | + 'pfunc_expr_unknown_error' => 'Lỗi biểu thức: Lỗi không rõ nguyên nhân ($1)', |
| 2245 | + 'pfunc_expr_not_a_number' => 'Trong $1: kết quả không phải là kiểu số', |
| 2246 | + 'pfunc_string_too_long' => 'Lỗi: Chuỗi vượt quá giới hạn $1 ký tự', |
| 2247 | +); |
| 2248 | + |
| 2249 | +/** Volapük (Volapük) |
| 2250 | + * @author Smeira |
| 2251 | + */ |
| 2252 | +$messages['vo'] = array( |
| 2253 | + 'pfunc_time_error' => 'Pök: tim no lonöföl', |
| 2254 | + 'pfunc_expr_division_by_zero' => 'Müedam dub ser', |
| 2255 | + 'pfunc_expr_unknown_error' => 'Notidotapöl: pöl nesevädik ($1)', |
| 2256 | + 'pfunc_expr_not_a_number' => 'In $1: sek no binon num', |
| 2257 | +); |
| 2258 | + |
| 2259 | +/** Yiddish (ייִדיש) |
| 2260 | + * @author פוילישער |
| 2261 | + */ |
| 2262 | +$messages['yi'] = array( |
| 2263 | + 'pfunc_time_error' => 'גרײַז: אומגילטיגע צײַט', |
| 2264 | + 'pfunc_expr_unexpected_operator' => 'אויסדריק גרײַז: אומגעריכטער $1 אפעראַטאר', |
| 2265 | + 'pfunc_expr_unclosed_bracket' => 'אויסדריק גרײַז: אומגעשלאסענער קלאַמער', |
| 2266 | + 'pfunc_expr_not_a_number' => 'אין $1: רעזולטאַט איז נישט קיין נומער', |
| 2267 | +); |
| 2268 | + |
| 2269 | +/** Yoruba (Yorùbá) |
| 2270 | + * @author Demmy |
| 2271 | + */ |
| 2272 | +$messages['yo'] = array( |
| 2273 | + 'pfunc_time_error' => 'Àsìṣe: àsìkò àìtọ́', |
| 2274 | + 'pfunc_expr_unexpected_number' => 'Àsìṣe ìgbékalẹ̀ọ̀rọ̀: Nọ́mbà àìretí', |
| 2275 | + 'pfunc_expr_division_by_zero' => 'Pínpín pẹ̀lú òdo', |
| 2276 | + 'pfunc_expr_not_a_number' => 'Nínú $1: èsì kìí ṣe nọ́mbà', |
| 2277 | +); |
| 2278 | + |
| 2279 | +/** Cantonese (粵語) |
| 2280 | + * @author Shinjiman |
| 2281 | + */ |
| 2282 | +$messages['yue'] = array( |
| 2283 | + 'pfunc_desc' => '用邏輯功能去加強處理器', |
| 2284 | + 'pfunc_time_error' => '錯: 唔啱嘅時間', |
| 2285 | + 'pfunc_time_too_long' => '錯: 太多 #time 呼叫', |
| 2286 | + 'pfunc_rel2abs_invalid_depth' => '錯: 唔啱路徑嘅深度: "$1" (已經試過由頭點落個點度)', |
| 2287 | + 'pfunc_expr_stack_exhausted' => '表達錯: 堆叠耗盡', |
| 2288 | + 'pfunc_expr_unexpected_number' => '表達錯: 未預料嘅數字', |
| 2289 | + 'pfunc_expr_preg_match_failure' => '表達錯: 未預料嘅 preg_match失敗', |
| 2290 | + 'pfunc_expr_unrecognised_word' => '表達錯: 未預料嘅字 "$1"', |
| 2291 | + 'pfunc_expr_unexpected_operator' => '表達錯: 未預料嘅 $1 運算符', |
| 2292 | + 'pfunc_expr_missing_operand' => '表達錯: 缺少 $1 嘅運算符', |
| 2293 | + 'pfunc_expr_unexpected_closing_bracket' => '表達錯: 未預料嘅閂括號', |
| 2294 | + 'pfunc_expr_unrecognised_punctuation' => '表達錯: 未能認得到嘅標點 "$1"', |
| 2295 | + 'pfunc_expr_unclosed_bracket' => '表達錯: 未閂好嘅括號', |
| 2296 | + 'pfunc_expr_division_by_zero' => '除以零', |
| 2297 | + 'pfunc_expr_invalid_argument' => '$1嘅無效參數: < -1 or > 1', |
| 2298 | + 'pfunc_expr_invalid_argument_ln' => 'ln嘅無效參數: <= 0', |
| 2299 | + 'pfunc_expr_unknown_error' => '表達錯: 未知嘅錯 ($1)', |
| 2300 | + 'pfunc_expr_not_a_number' => '響 $1: 結果唔係數字', |
| 2301 | +); |
| 2302 | + |
| 2303 | +/** Simplified Chinese (中文(简体)) |
| 2304 | + * @author Liangent |
| 2305 | + * @author Philip |
| 2306 | + * @author Shinjiman |
| 2307 | + */ |
| 2308 | +$messages['zh-hans'] = array( |
| 2309 | + 'pfunc_desc' => '用逻辑函数加强解析器', |
| 2310 | + 'pfunc_time_error' => '错误:无效时间', |
| 2311 | + 'pfunc_time_too_long' => '错误:#time调用次数过多', |
| 2312 | + 'pfunc_rel2abs_invalid_depth' => '错误:无效路径深度:“$1”(尝试访问根节点以上节点)', |
| 2313 | + 'pfunc_expr_stack_exhausted' => '表达式错误:堆栈耗尽', |
| 2314 | + 'pfunc_expr_unexpected_number' => '表达式错误:未预料的数字', |
| 2315 | + 'pfunc_expr_preg_match_failure' => '表达式错误:未预料的preg_match失败', |
| 2316 | + 'pfunc_expr_unrecognised_word' => '表达式错误:无法识别的词语“$1”', |
| 2317 | + 'pfunc_expr_unexpected_operator' => '表达式错误:未预料的$1操作符', |
| 2318 | + 'pfunc_expr_missing_operand' => '表达式错误:缺少$1的操作数', |
| 2319 | + 'pfunc_expr_unexpected_closing_bracket' => '表达式错误:未预料的反括号', |
| 2320 | + 'pfunc_expr_unrecognised_punctuation' => '表达式错误:无法识别的标点“$1”', |
| 2321 | + 'pfunc_expr_unclosed_bracket' => '表达式错误:未封闭的括号', |
| 2322 | + 'pfunc_expr_division_by_zero' => '零除', |
| 2323 | + 'pfunc_expr_invalid_argument' => '$1的无效参数:< -1 或 > 1', |
| 2324 | + 'pfunc_expr_invalid_argument_ln' => 'ln的无效参数:<= 0', |
| 2325 | + 'pfunc_expr_unknown_error' => '表达式错误:未知错误($1)', |
| 2326 | + 'pfunc_expr_not_a_number' => '在$1中:结果不是数字', |
| 2327 | + 'pfunc_string_too_long' => '错误:字符串超过$1字符限制', |
| 2328 | +); |
| 2329 | + |
| 2330 | +/** Traditional Chinese (中文(繁體)) |
| 2331 | + * @author Gaoxuewei |
| 2332 | + * @author Liangent |
| 2333 | + * @author Shinjiman |
| 2334 | + */ |
| 2335 | +$messages['zh-hant'] = array( |
| 2336 | + 'pfunc_desc' => '用邏輯函數加強解析器', |
| 2337 | + 'pfunc_time_error' => '錯誤:無效時間', |
| 2338 | + 'pfunc_time_too_long' => '錯誤:過多的#time呼叫', |
| 2339 | + 'pfunc_rel2abs_invalid_depth' => '錯誤:無效路徑深度:「$1」(嘗試訪問頂點以上節點)', |
| 2340 | + 'pfunc_expr_stack_exhausted' => '表達式錯誤:堆疊耗盡', |
| 2341 | + 'pfunc_expr_unexpected_number' => '表達式錯誤:未預料的數字', |
| 2342 | + 'pfunc_expr_preg_match_failure' => '表達式錯誤:未預料的preg_match失敗', |
| 2343 | + 'pfunc_expr_unrecognised_word' => '表達式錯誤:無法識別的詞語「$1」', |
| 2344 | + 'pfunc_expr_unexpected_operator' => '表達式錯誤:未預料的$1運算子', |
| 2345 | + 'pfunc_expr_missing_operand' => '表達式錯誤:缺少$1的運算元', |
| 2346 | + 'pfunc_expr_unexpected_closing_bracket' => '表達式錯誤:未預料的反括號', |
| 2347 | + 'pfunc_expr_unrecognised_punctuation' => '表達式錯誤:無法識別的標點「$1」', |
| 2348 | + 'pfunc_expr_unclosed_bracket' => '表達式錯誤:未封閉的括號', |
| 2349 | + 'pfunc_expr_division_by_zero' => '零除', |
| 2350 | + 'pfunc_expr_invalid_argument' => '$1的無效參量:< -1 或 > 1', |
| 2351 | + 'pfunc_expr_invalid_argument_ln' => 'ln的無效參量:<= 0', |
| 2352 | + 'pfunc_expr_unknown_error' => '表達式錯誤:未知錯誤($1)', |
| 2353 | + 'pfunc_expr_not_a_number' => '在$1中:結果不是數字', |
| 2354 | + 'pfunc_string_too_long' => '錯誤:字符串超過$1字符限制', |
| 2355 | +); |
| 2356 | + |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/ParserFunctions.i18n.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 2357 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/ParserFunctions.php |
— | — | @@ -0,0 +1,124 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
| 5 | + die( 'This file is a MediaWiki extension, it is not a valid entry point' ); |
| 6 | +} |
| 7 | + |
| 8 | +/** |
| 9 | + * CONFIGURATION |
| 10 | + * These variables may be overridden in LocalSettings.php after you include the |
| 11 | + * extension file. |
| 12 | + */ |
| 13 | + |
| 14 | +/** |
| 15 | + * Defines the maximum length of a string that string functions are allowed to operate on |
| 16 | + * Prevention against denial of service by string function abuses. |
| 17 | + */ |
| 18 | +$wgPFStringLengthLimit = 1000; |
| 19 | + |
| 20 | +/** |
| 21 | + * Enable string functions. |
| 22 | + * |
| 23 | + * Set this to true if you want your users to be able to implement their own |
| 24 | + * parsers in the ugliest, most inefficient programming language known to man: |
| 25 | + * MediaWiki wikitext with ParserFunctions. |
| 26 | + * |
| 27 | + * WARNING: enabling this may have an adverse impact on the sanity of your users. |
| 28 | + * An alternative, saner solution for embedding complex text processing in |
| 29 | + * MediaWiki templates can be found at: http://www.mediawiki.org/wiki/Extension:Lua |
| 30 | + */ |
| 31 | +$wgPFEnableStringFunctions = false; |
| 32 | + |
| 33 | +/** REGISTRATION */ |
| 34 | +$wgExtensionFunctions[] = 'wfSetupParserFunctions'; |
| 35 | +$wgExtensionCredits['parserhook'][] = array( |
| 36 | + 'path' => __FILE__, |
| 37 | + 'name' => 'ParserFunctions', |
| 38 | + 'version' => '1.4.0', |
| 39 | + 'url' => 'http://www.mediawiki.org/wiki/Extension:ParserFunctions', |
| 40 | + 'author' => array( 'Tim Starling', 'Robert Rohde', 'Ross McClure', 'Juraj Simlovic' ), |
| 41 | + 'descriptionmsg' => 'pfunc_desc', |
| 42 | +); |
| 43 | + |
| 44 | +$wgAutoloadClasses['ExtParserFunctions'] = dirname( __FILE__ ) . '/ParserFunctions_body.php'; |
| 45 | +$wgExtensionMessagesFiles['ParserFunctions'] = dirname( __FILE__ ) . '/ParserFunctions.i18n.php'; |
| 46 | +$wgExtensionMessagesFiles['ParserFunctionsMagic'] = dirname( __FILE__ ) . '/ParserFunctions.i18n.magic.php'; |
| 47 | + |
| 48 | +$wgParserTestFiles[] = dirname( __FILE__ ) . "/funcsParserTests.txt"; |
| 49 | +$wgParserTestFiles[] = dirname( __FILE__ ) . "/stringFunctionTests.txt"; |
| 50 | + |
| 51 | +function wfSetupParserFunctions() { |
| 52 | + global $wgPFHookStub, $wgHooks; |
| 53 | + |
| 54 | + $wgPFHookStub = new ParserFunctions_HookStub; |
| 55 | + |
| 56 | + $wgHooks['ParserFirstCallInit'][] = array( &$wgPFHookStub, 'registerParser' ); |
| 57 | + |
| 58 | + $wgHooks['ParserClearState'][] = array( &$wgPFHookStub, 'clearState' ); |
| 59 | +} |
| 60 | + |
| 61 | +/** |
| 62 | + * Stub class to defer loading of the bulk of the code until a parser function is |
| 63 | + * actually used. |
| 64 | + */ |
| 65 | +class ParserFunctions_HookStub { |
| 66 | + var $realObj; |
| 67 | + |
| 68 | + function registerParser( $parser ) { |
| 69 | + global $wgPFEnableStringFunctions; |
| 70 | + |
| 71 | + if ( defined( get_class( $parser ) . '::SFH_OBJECT_ARGS' ) ) { |
| 72 | + // These functions accept DOM-style arguments |
| 73 | + $parser->setFunctionHook( 'if', array( &$this, 'ifObj' ), SFH_OBJECT_ARGS ); |
| 74 | + $parser->setFunctionHook( 'ifeq', array( &$this, 'ifeqObj' ), SFH_OBJECT_ARGS ); |
| 75 | + $parser->setFunctionHook( 'switch', array( &$this, 'switchObj' ), SFH_OBJECT_ARGS ); |
| 76 | + $parser->setFunctionHook( 'ifexist', array( &$this, 'ifexistObj' ), SFH_OBJECT_ARGS ); |
| 77 | + $parser->setFunctionHook( 'ifexpr', array( &$this, 'ifexprObj' ), SFH_OBJECT_ARGS ); |
| 78 | + $parser->setFunctionHook( 'iferror', array( &$this, 'iferrorObj' ), SFH_OBJECT_ARGS ); |
| 79 | + } else { |
| 80 | + $parser->setFunctionHook( 'if', array( &$this, 'ifHook' ) ); |
| 81 | + $parser->setFunctionHook( 'ifeq', array( &$this, 'ifeq' ) ); |
| 82 | + $parser->setFunctionHook( 'switch', array( &$this, 'switchHook' ) ); |
| 83 | + $parser->setFunctionHook( 'ifexist', array( &$this, 'ifexist' ) ); |
| 84 | + $parser->setFunctionHook( 'ifexpr', array( &$this, 'ifexpr' ) ); |
| 85 | + $parser->setFunctionHook( 'iferror', array( &$this, 'iferror' ) ); |
| 86 | + } |
| 87 | + |
| 88 | + $parser->setFunctionHook( 'expr', array( &$this, 'expr' ) ); |
| 89 | + $parser->setFunctionHook( 'time', array( &$this, 'time' ) ); |
| 90 | + $parser->setFunctionHook( 'timel', array( &$this, 'localTime' ) ); |
| 91 | + $parser->setFunctionHook( 'rel2abs', array( &$this, 'rel2abs' ) ); |
| 92 | + $parser->setFunctionHook( 'titleparts', array( &$this, 'titleparts' ) ); |
| 93 | + |
| 94 | + // String Functions |
| 95 | + if ( $wgPFEnableStringFunctions ) { |
| 96 | + $parser->setFunctionHook( 'len', array( &$this, 'runLen' ) ); |
| 97 | + $parser->setFunctionHook( 'pos', array( &$this, 'runPos' ) ); |
| 98 | + $parser->setFunctionHook( 'rpos', array( &$this, 'runRPos' ) ); |
| 99 | + $parser->setFunctionHook( 'sub', array( &$this, 'runSub' ) ); |
| 100 | + $parser->setFunctionHook( 'count', array( &$this, 'runCount' ) ); |
| 101 | + $parser->setFunctionHook( 'replace', array( &$this, 'runReplace' ) ); |
| 102 | + $parser->setFunctionHook( 'explode', array( &$this, 'runExplode' ) ); |
| 103 | + $parser->setFunctionHook( 'urldecode', array( &$this, 'runUrlDecode' ) ); |
| 104 | + } |
| 105 | + |
| 106 | + return true; |
| 107 | + } |
| 108 | + |
| 109 | + /** Defer ParserClearState */ |
| 110 | + function clearState( $parser ) { |
| 111 | + if ( !is_null( $this->realObj ) ) { |
| 112 | + $this->realObj->clearState( $parser ); |
| 113 | + } |
| 114 | + return true; |
| 115 | + } |
| 116 | + |
| 117 | + /** Pass through function call */ |
| 118 | + function __call( $name, $args ) { |
| 119 | + if ( is_null( $this->realObj ) ) { |
| 120 | + $this->realObj = new ExtParserFunctions; |
| 121 | + $this->realObj->clearState( $args[0] ); |
| 122 | + } |
| 123 | + return call_user_func_array( array( $this->realObj, $name ), $args ); |
| 124 | + } |
| 125 | +} |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/ParserFunctions.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 126 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/funcsParserTests.txt |
— | — | @@ -0,0 +1,177 @@ |
| 2 | +# Force the test runner to ensure the extension is loaded |
| 3 | +# fixme... this doesn't seem to work :D |
| 4 | +#!! functionhooks |
| 5 | +#time |
| 6 | +#!! endfunctionhooks |
| 7 | + |
| 8 | +# fixme: #time seems to be accepting input as local time, which strikes me as wrong |
| 9 | + |
| 10 | +!! article |
| 11 | +ParserFunctions page |
| 12 | +!! text |
| 13 | +A sample page so we can test ifexist. |
| 14 | + |
| 15 | +This used to be a Main Page, but that caused duplicate article |
| 16 | +warnings when running the normal tests at the same time. |
| 17 | +!! endarticle |
| 18 | + |
| 19 | +!! article |
| 20 | +File:Dionysos-Brunnen am Kölner Dom.jpg |
| 21 | +!! text |
| 22 | +blah blah |
| 23 | +!! endarticle |
| 24 | + |
| 25 | +!! test |
| 26 | +Input times should probably be UTC, not local time |
| 27 | +!! input |
| 28 | +{{#time:c|15 January 2001}} |
| 29 | +!!result |
| 30 | +<p>2001-01-15T00:00:00+00:00 |
| 31 | +</p> |
| 32 | +!! end |
| 33 | + |
| 34 | +!! test |
| 35 | +Time test in traditional range... |
| 36 | +!! input |
| 37 | +{{#time:Y|15 January 2001}} |
| 38 | +!! result |
| 39 | +<p>2001 |
| 40 | +</p> |
| 41 | +!! end |
| 42 | + |
| 43 | +!! test |
| 44 | +Time test prior to 1970 Unix creation myth |
| 45 | +!! input |
| 46 | +{{#time:Y|5 April 1967}} |
| 47 | +!! result |
| 48 | +<p>1967 |
| 49 | +</p> |
| 50 | +!! end |
| 51 | + |
| 52 | +!! test |
| 53 | +Time test after the 2038 32-bit Apocalype |
| 54 | +!! input |
| 55 | +{{#time:Y|28 July 2061}} |
| 56 | +!! result |
| 57 | +<p>2061 |
| 58 | +</p> |
| 59 | +!! end |
| 60 | + |
| 61 | +!! test |
| 62 | +Bug 19093: Default values don't fall through in switch |
| 63 | +!! input |
| 64 | +<{{#switch: foo | bar | #default = DEF }}> |
| 65 | +<{{#switch: foo | #default | bar = DEF }}> |
| 66 | +!! result |
| 67 | +<p><DEF> |
| 68 | +<DEF> |
| 69 | +</p> |
| 70 | +!! end |
| 71 | + |
| 72 | +!! test |
| 73 | +{{#ifexist}} |
| 74 | +!! input |
| 75 | +{{#ifexist:Media:Foobar.jpg|Found|Not found}} |
| 76 | +{{#ifexist:ParserFunctions page|Found|Not found}} |
| 77 | +{{#ifexist:Missing|Found|Not found}} |
| 78 | +!! result |
| 79 | +<p>Found |
| 80 | +Found |
| 81 | +Not found |
| 82 | +</p> |
| 83 | +!! end |
| 84 | + |
| 85 | +!! test |
| 86 | +#if |
| 87 | +!! input |
| 88 | +{{#if: | yes | no}} |
| 89 | +{{#if: string | yes | no}} |
| 90 | +{{#if: | yes | no}} |
| 91 | +{{#if: |
| 92 | + |
| 93 | + |
| 94 | +| yes | no}} |
| 95 | +{{#if: 1==2 | yes | no}} |
| 96 | +{{#if: foo | yes }} |
| 97 | +{{#if: | yes }}(empty) |
| 98 | +{{#if: foo | | no}}(empty) |
| 99 | +{{#if: {{{1}}} | yes | no}} |
| 100 | +{{#if: {{{1|}}} | yes | no}} |
| 101 | +!! result |
| 102 | +<p>no |
| 103 | +yes |
| 104 | +no |
| 105 | +no |
| 106 | +yes |
| 107 | +yes |
| 108 | +(empty) |
| 109 | +(empty) |
| 110 | +yes |
| 111 | +no |
| 112 | +</p> |
| 113 | +!! end |
| 114 | + |
| 115 | +!! test |
| 116 | +#ifeq |
| 117 | +!!input |
| 118 | +{{#ifeq: 01 | 1 | yes | no}} |
| 119 | +{{#ifeq: 0 | -0 | yes | no}} |
| 120 | +{{#ifeq: foo | bar | yes | no}} |
| 121 | +{{#ifeq: foo | Foo | yes | no}} |
| 122 | +{{#ifeq: "01" | "1" | yes | no}} |
| 123 | +!! result |
| 124 | +<p>yes |
| 125 | +yes |
| 126 | +no |
| 127 | +no |
| 128 | +no |
| 129 | +</p> |
| 130 | +!! end |
| 131 | + |
| 132 | +!! test |
| 133 | +#iferror |
| 134 | +!!input |
| 135 | +{{#iferror: {{#expr: 1 + 2 }} | error | correct }} |
| 136 | +{{#iferror: {{#expr: 1 + X }} | error | correct }} |
| 137 | +{{#iferror: {{#expr: 1 + 2 }} | error }} |
| 138 | +{{#iferror: {{#expr: 1 + X }} | error }} |
| 139 | +{{#iferror: {{#expr: 1 + 2 }} }} |
| 140 | +{{#iferror: {{#expr: 1 + X }} }}empty |
| 141 | +!! result |
| 142 | +<p>correct |
| 143 | +error |
| 144 | +3 |
| 145 | +error |
| 146 | +3 |
| 147 | +empty |
| 148 | +</p> |
| 149 | +!! end |
| 150 | + |
| 151 | + |
| 152 | +!! test |
| 153 | +#ifexpr |
| 154 | +!! input |
| 155 | +{{#ifexpr: | yes | no}} |
| 156 | +{{#ifexpr: 1 > 0 | yes }} |
| 157 | +{{#ifexpr: 1 < 0 | yes }}empty |
| 158 | +{{#ifexpr: 1 > 0 | | no}}empty |
| 159 | +{{#ifexpr: 1 < 0 | | no}} |
| 160 | +{{#ifexpr: 1 > 0 }}empty |
| 161 | +!! result |
| 162 | +<p>no |
| 163 | +yes |
| 164 | +empty |
| 165 | +empty |
| 166 | +no |
| 167 | +empty |
| 168 | +</p> |
| 169 | +!! end |
| 170 | + |
| 171 | +!! test |
| 172 | +Bug 22866: #ifexpr should evaluate "-0" as false |
| 173 | +!! input |
| 174 | +{{#ifexpr: (-1)*0 | true | false }} |
| 175 | +!! result |
| 176 | +<p>false |
| 177 | +</p> |
| 178 | +!! end |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/funcsParserTests.txt |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 179 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/README |
— | — | @@ -0,0 +1,21 @@ |
| 2 | +ParserFunctions v1.4.0 |
| 3 | + |
| 4 | +1. Licensing |
| 5 | +2. How to install |
| 6 | +3. How to config |
| 7 | + |
| 8 | +1. Licensing |
| 9 | +Licensed under GNU GPL. See COPYING for more license information. |
| 10 | + |
| 11 | +2. How to install |
| 12 | + a. Download this tarbell and extract the contents to $IP/extensions/ParserFunctions/ |
| 13 | + where $IP is your root wiki install |
| 14 | + b. Add 'require( "extensions/ParserFunctions/ParserFunctions.php");' to your |
| 15 | + LocalSettings (without the single quotes) |
| 16 | + c. Enjoy |
| 17 | + |
| 18 | +3. Tests |
| 19 | +ParserFunctions ships with two tests |
| 20 | +- Parser tests. These get added to the main parser tests, see there for docs |
| 21 | +- Expression tests. These are designed to test the math-related functions |
| 22 | + See testExpr.php |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/README |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 23 | + native |
Index: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/stringFunctionTests.txt |
— | — | @@ -0,0 +1,32 @@ |
| 2 | +# @todo expand |
| 3 | +!! functionhooks |
| 4 | +len |
| 5 | +!! endfunctionhooks |
| 6 | + |
| 7 | +!! test |
| 8 | +#len |
| 9 | +!! input |
| 10 | +{{#len:}} |
| 11 | +{{#len:0}} |
| 12 | +{{#len:test}} |
| 13 | +!!result |
| 14 | +<p>0 |
| 15 | +1 |
| 16 | +4 |
| 17 | +</p> |
| 18 | +!! end |
| 19 | + |
| 20 | +!! test |
| 21 | +#urldecode |
| 22 | +!! input |
| 23 | +{{#urldecode:}} |
| 24 | +{{#urldecode:foo%20bar}} |
| 25 | +{{#urldecode:%D0%9C%D0%B5%D0%B4%D0%B8%D0%B0%D0%92%D0%B8%D0%BA%D0%B8}} |
| 26 | +{{#urldecode: some unescaped string}} |
| 27 | +!! result |
| 28 | +<p>foo bar |
| 29 | +МедиаВики |
| 30 | +some unescaped string |
| 31 | +</p> |
| 32 | +!! end |
| 33 | + |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions/stringFunctionTests.txt |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 34 | + native |
Property changes on: branches/fundraising/deployment/payments_1.17/extensions/ParserFunctions |
___________________________________________________________________ |
Added: svn:mergeinfo |
2 | 35 | Merged /branches/new-installer/phase3/extensions/ParserFunctions:r43664-66004 |
3 | 36 | Merged /branches/wmf-deployment/extensions/ParserFunctions:r60970 |
4 | 37 | Merged /branches/REL1_15/phase3/extensions/ParserFunctions:r51646 |
5 | 38 | Merged /branches/wmf/1.16wmf4/extensions/ParserFunctions:r67177,69199,76243,77266 |
6 | 39 | Merged /branches/sqlite/extensions/ParserFunctions:r58211-58321 |
7 | 40 | Merged /trunk/phase3/extensions/ParserFunctions:r79828,79830,79848,79853,79950-79951,79954,79989,80006-80007,80013,80016,80080,80083,80124,80128,80238,80406,81833,83212,83590 |