wiki.techinc.nl/languages/classes/LanguageHe.php

70 lines
1.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Hebrew (עברית)
*
* @ingroup Language
*
* @author Rotem Liss
*/
class LanguageHe extends Language {
/**
* Convert grammar forms of words.
*
* Available cases:
* "prefixed" (or "תחילית") - when the word has a prefix
*
* @param $word String: the word to convert
* @param $case String: the case
*
* @return string
*/
public function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['he'][$case][$word] ) ) {
return $wgGrammarForms['he'][$case][$word];
}
switch ( $case ) {
case 'prefixed':
case 'תחילית':
# Duplicate the "Waw" if prefixed
if ( substr( $word, 0, 2 ) == "ו" && substr( $word, 0, 4 ) != "וו" ) {
$word = "ו" . $word;
}
# Remove the "He" if prefixed
if ( substr( $word, 0, 2 ) == "ה" ) {
$word = substr( $word, 2 );
}
# Add a hyphen (maqaf) if non-Hebrew letters
if ( substr( $word, 0, 2 ) < "א" || substr( $word, 0, 2 ) > "ת" ) {
$word = "־" . $word;
}
}
return $word;
}
/**
* Gets a number and uses the suited form of the word.
*
* @param $count Integer: the number of items
* @param $forms Array with 3 items: the three plural forms
* @return String: the suited form of word
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 3 );
if ( $count == 1 ) {
return $forms[0]; // Singular
} elseif ( $count == 2 ) {
return $forms[2]; // Dual or plural if dual is not provided (filled in preConvertPlural)
} else {
return $forms[1]; // Plural
}
}
}