<?php
/**
- * @package MediaWiki
- * @subpackage Language
- */
+ * Hebrew (עברית)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ * @author Rotem Dan (July 2003)
+ * @author Rotem Liss (March 2006 on)
+ */
require_once("LanguageUtf8.php");
-/* private */ $wgNamespaceNamesHe = array(
- NS_MEDIA => "Media",
- NS_SPECIAL => "מיוחד",
- NS_MAIN => "",
- NS_TALK => "שיחה",
- NS_USER => "משתמש",
- NS_USER_TALK => "שיחת_משתמש",
- NS_PROJECT => $wgMetaNamespace,
- NS_PROJECT_TALK => "שיחת_" . $wgMetaNamespace,
- NS_IMAGE => "תמונה",
- NS_IMAGE_TALK => "שיחת_תמונה",
- NS_MEDIAWIKI => "מדיה_ויקי",
- NS_MEDIAWIKI_TALK => "שיחת_מדיה_ויקי",
- NS_TEMPLATE => "תבנית",
- NS_TEMPLATE_TALK => "שיחת_תבנית",
- NS_HELP => "עזרה",
- NS_HELP_TALK => "שיחת_עזרה",
- NS_CATEGORY => "קטגוריה",
- NS_CATEGORY_TALK => "שיחת_קטגוריה",
-) + $wgNamespaceNamesEn;
-
-/* private */ $wgQuickbarSettingsHe = array(
- "ללא", "קבוע משמאל", "קבוע מימין", "צף משמאל", "צף מימין"
-);
-
-/* private */ $wgSkinNamesHe = array(
- 'standard' => "רגיל",
- 'nostalgia' => "נוסטלגי",
- 'cologneblue' => "מים כחולים",
- 'davinci' => "דה-וינצ'י",
- 'mono' => 'Mono',
- 'monobook' => 'MonoBook',
- 'myskin' => 'MySkin',
- 'chick' => 'Chick'
-) + $wgSkinNamesEn;
-
-
-
-/* private */ $wgBookstoreListHe = array(
- "מיתוס" => "http://www.mitos.co.il/ ",
- "iBooks" => "http://www.ibooks.co.il/",
- "Barnes & Noble" => "http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=$1",
- "Amazon.com" => "http://www.amazon.com/exec/obidos/ISBN=$1"
-);
-
if (!$wgCachedMessageArrays) {
require_once('MessagesHe.php');
}
class LanguageHe extends LanguageUtf8 {
-
- function getDefaultUserOptions () {
- $opt = Language::getDefaultUserOptions();
- $opt["quickbar"]=2;
+ private $mMessagesHe, $mNamespaceNamesHe = null;
+
+ private $mSkinNamesHe = array(
+ "standard" => "רגיל",
+ "nostalgia" => "נוסטלגי",
+ "cologneblue" => "מים כחולים",
+ "davinci" => "דה־וינצ'י",
+ "simple" => "פשוט",
+ "mono" => "מונו",
+ "monobook" => "מונובוק",
+ "myskin" => "הרקע שלי",
+ "chick" => "צ'יק"
+ );
+
+ private $mQuickbarSettingsHe = array(
+ "ללא", "קבוע משמאל", "קבוע מימין", "צף משמאל", "צף מימין"
+ );
+
+ private $mBookstoreListHe = array(
+ "מיתוס" => "http://www.mitos.co.il/",
+ "iBooks" => "http://www.ibooks.co.il/",
+ "Barnes & Noble" => "http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=\$1",
+ "Amazon.com" => "http://www.amazon.com/exec/obidos/ISBN=\$1"
+ );
+
+ private $mMagicWordsHe = array(
+ MAG_REDIRECT => array( 0, '#הפניה', '#הפנייה', '#REDIRECT' ),
+ MAG_NOTOC => array( 0, '__ללא_תוכן_עניינים__', '__ללא_תוכן__', '__NOTOC__' ),
+ MAG_NOGALLERY => array( 0, '__ללא_גלריה__', '__NOGALLERY__' ),
+ MAG_FORCETOC => array( 0, '__חייב_תוכן_עניינים__', '__חייב_תוכן__', '__FORCETOC__' ),
+ MAG_TOC => array( 0, '__תוכן_עניינים__', '__תוכן__', '__TOC__' ),
+ MAG_NOEDITSECTION => array( 0, '__ללא_עריכה__', '__NOEDITSECTION__' ),
+ MAG_START => array( 0, '__התחלה__', '__START__' ),
+ MAG_CURRENTMONTH => array( 1, 'חודש נוכחי', 'CURRENTMONTH' ),
+ MAG_CURRENTMONTHNAME => array( 1, 'שם חודש נוכחי', 'CURRENTMONTHNAME' ),
+ MAG_CURRENTMONTHNAMEGEN => array( 1, 'שם חודש נוכחי קניין', 'CURRENTMONTHNAMEGEN' ),
+ MAG_CURRENTMONTHABBREV => array( 1, 'קיצור חודש נוכחי', 'CURRENTMONTHABBREV' ),
+ MAG_CURRENTDAY => array( 1, 'יום נוכחי', 'CURRENTDAY' ),
+ MAG_CURRENTDAY2 => array( 1, 'יום נוכחי 2', 'CURRENTDAY2' ),
+ MAG_CURRENTDAYNAME => array( 1, 'שם יום נוכחי', 'CURRENTDAYNAME' ),
+ MAG_CURRENTYEAR => array( 1, 'שנה נוכחית', 'CURRENTYEAR' ),
+ MAG_CURRENTTIME => array( 1, 'שעה נוכחית', 'CURRENTTIME' ),
+ MAG_NUMBEROFPAGES => array( 1, 'מספר דפים כולל', 'מספר דפים', 'NUMBEROFPAGES' ),
+ MAG_NUMBEROFARTICLES => array( 1, 'מספר ערכים', 'NUMBEROFARTICLES' ),
+ MAG_NUMBEROFFILES => array( 1, 'מספר קבצים', 'NUMBEROFFILES' ),
+ MAG_NUMBEROFUSERS => array( 1, 'מספר משתמשים', 'NUMBEROFUSERS' ),
+ MAG_PAGENAME => array( 1, 'שם הדף', 'PAGENAME' ),
+ MAG_PAGENAMEE => array( 1, 'שם הדף מקודד', 'PAGENAMEE' ),
+ MAG_NAMESPACE => array( 1, 'מרחב השם', 'NAMESPACE' ),
+ MAG_NAMESPACEE => array( 1, 'מרחב השם מקודד', 'NAMESPACEE' ),
+ MAG_TALKSPACE => array( 1, 'מרחב השיחה', 'TALKSPACE' ),
+ MAG_TALKSPACEE => array( 1, 'מרחב השיחה מקודד', 'TALKSPACEE' ),
+ MAG_SUBJECTSPACE => array( 1, 'מרחב הנושא', 'מרחב הערכים', 'SUBJECTSPACE', 'ARTICLESPACE' ),
+ MAG_SUBJECTSPACEE => array( 1, 'מרחב הנושא מקודד', 'מרחב הערכים מקודד', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
+ MAG_FULLPAGENAME => array( 1, 'שם הדף המלא', 'FULLPAGENAME' ),
+ MAG_FULLPAGENAMEE => array( 1, 'שם הדף המלא מקודד', 'FULLPAGENAMEE' ),
+ MAG_SUBPAGENAME => array( 1, 'שם דף המשנה', 'SUBPAGENAME' ),
+ MAG_SUBPAGENAMEE => array( 1, 'שם דף המשנה מקודד', 'SUBPAGENAMEE' ),
+ MAG_BASEPAGENAME => array( 1, 'שם דף הבסיס', 'BASEPAGENAME' ),
+ MAG_BASEPAGENAMEE => array( 1, 'שם דף הבסיס מקודד', 'BASEPAGENAMEE' ),
+ MAG_TALKPAGENAME => array( 1, 'שם דף השיחה', 'TALKPAGENAME' ),
+ MAG_TALKPAGENAMEE => array( 1, 'שם דף השיחה מקודד', 'TALKPAGENAMEE' ),
+ MAG_SUBJECTPAGENAME => array( 1, 'שם דף הנושא', 'שם הערך', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+ MAG_SUBJECTPAGENAMEE => array( 1, 'שם דף הנושא מקודד', 'שם הערך מקודד', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
+ MAG_MSG => array( 0, 'הכללה:', 'MSG:' ),
+ MAG_SUBST => array( 0, 'ס:', 'SUBST:' ),
+ MAG_MSGNW => array( 0, 'הכללת מקור', 'MSGNW:' ),
+ MAG_END => array( 0, '__סוף__', '__END__' ),
+ MAG_IMG_THUMBNAIL => array( 1, 'ממוזער', 'thumbnail', 'thumb' ),
+ MAG_IMG_MANUALTHUMB => array( 1, 'ממוזער=$1', 'thumbnail=$1', 'thumb=$1'),
+ MAG_IMG_RIGHT => array( 1, 'ימין', 'right' ),
+ MAG_IMG_LEFT => array( 1, 'שמאל', 'left' ),
+ MAG_IMG_NONE => array( 1, 'ללא', 'none' ),
+ MAG_IMG_WIDTH => array( 1, '$1px', '$1px' ),
+ MAG_IMG_CENTER => array( 1, 'מרכז', 'center', 'centre' ),
+ MAG_IMG_FRAMED => array( 1, 'ממוסגר', 'מסגרת', 'framed', 'enframed', 'frame' ),
+ MAG_INT => array( 0, 'הודעה:', 'INT:' ),
+ MAG_SITENAME => array( 1, 'שם האתר', 'SITENAME' ),
+ MAG_NS => array( 0, 'מרחב שם:', 'NS:' ),
+ MAG_LOCALURL => array( 0, 'כתובת יחסית:', 'LOCALURL:' ),
+ MAG_LOCALURLE => array( 0, 'כתובת יחסית מקודד:', 'LOCALURLE:' ),
+ MAG_SERVER => array( 0, 'כתובת השרת', 'שרת', 'SERVER' ),
+ MAG_SERVERNAME => array( 0, 'שם השרת', 'SERVERNAME' ),
+ MAG_SCRIPTPATH => array( 0, 'נתיב הקבצים', 'SCRIPTPATH' ),
+ MAG_GRAMMAR => array( 0, 'דקדוק:', 'GRAMMAR:' ),
+ MAG_NOTITLECONVERT => array( 0, '__ללא_המרת_כותרת__', '__NOTITLECONVERT__', '__NOTC__'),
+ MAG_NOCONTENTCONVERT => array( 0, '__ללא_המרת_תוכן__', '__NOCONTENTCONVERT__', '__NOCC__'),
+ MAG_CURRENTWEEK => array( 1, 'שבוע נוכחי', 'CURRENTWEEK' ),
+ MAG_CURRENTDOW => array( 1, 'מספר יום נוכחי', 'CURRENTDOW' ),
+ MAG_REVISIONID => array( 1, 'מזהה גרסה', 'REVISIONID' ),
+ MAG_PLURAL => array( 0, 'רבים:', 'PLURAL:' ),
+ MAG_FULLURL => array( 0, 'כתובת מלאה:', 'FULLURL:' ),
+ MAG_FULLURLE => array( 0, 'כתובת מלאה מקודד:', 'FULLURLE:' ),
+ MAG_LCFIRST => array( 0, 'אות ראשונה קטנה:', 'LCFIRST:' ),
+ MAG_UCFIRST => array( 0, 'אות ראשונה גדולה:', 'UCFIRST:' ),
+ MAG_LC => array( 0, 'אותיות קטנות:', 'LC:' ),
+ MAG_UC => array( 0, 'אותיות גדולות:', 'UC:' ),
+ MAG_RAW => array( 0, 'ללא עיבוד:', 'RAW:' ),
+ MAG_DISPLAYTITLE => array( 1, 'כותרת תצוגה', 'DISPLAYTITLE' ),
+ MAG_RAWSUFFIX => array( 1, 'ללא פסיק', 'R' ),
+ MAG_NEWSECTIONLINK => array( 1, '__יצירת_הערה__', '__NEWSECTIONLINK__' ),
+ MAG_CURRENTVERSION => array( 1, 'גרסה נוכחית', 'CURRENTVERSION' ),
+ MAG_URLENCODE => array( 0, 'נתיב מקודד:', 'URLENCODE:' ),
+ MAG_CURRENTTIMESTAMP => array( 1, 'זמן נוכחי', 'CURRENTTIMESTAMP' ),
+ MAG_DIRECTIONMARK => array( 1, 'סימן כיווניות', 'DIRECTIONMARK', 'DIRMARK' ),
+ MAG_LANGUAGE => array( 0, '#שפה:', '#LANGUAGE:' ),
+ MAG_CONTENTLANGUAGE => array( 1, 'שפת תוכן', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
+ MAG_PAGESINNAMESPACE => array( 1, 'דפים במרחב השם:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
+ MAG_NUMBEROFADMINS => array( 1, 'מספר מפעילים', 'NUMBEROFADMINS' ),
+ );
+
+ /**
+ * Constructor, setting the namespaces
+ */
+ function __construct() {
+ parent::__construct();
+
+ global $wgAllMessagesHe;
+ $this->mMessagesHe = &$wgAllMessagesHe;
+
+ global $wgMetaNamespace;
+ $this->mNamespaceNamesHe = array(
+ NS_MEDIA => "מדיה",
+ NS_SPECIAL => "מיוחד",
+ NS_MAIN => "",
+ NS_TALK => "שיחה",
+ NS_USER => "משתמש",
+ NS_USER_TALK => "שיחת_משתמש",
+ NS_PROJECT => $wgMetaNamespace,
+ NS_PROJECT_TALK => "שיחת_" . $wgMetaNamespace,
+ NS_IMAGE => "תמונה",
+ NS_IMAGE_TALK => "שיחת_תמונה",
+ NS_MEDIAWIKI => "מדיה_ויקי",
+ NS_MEDIAWIKI_TALK => "שיחת_מדיה_ויקי",
+ NS_TEMPLATE => "תבנית",
+ NS_TEMPLATE_TALK => "שיחת_תבנית",
+ NS_HELP => "עזרה",
+ NS_HELP_TALK => "שיחת_עזרה",
+ NS_CATEGORY => "קטגוריה",
+ NS_CATEGORY_TALK => "שיחת_קטגוריה",
+ );
+ }
+
+ /**
+ * Changing the default quickbar setting to "2" - right instead of left, as we use RTL interface
+ *
+ * @return array of the default user options
+ */
+ function getDefaultUserOptions() {
+ $opt = parent::getDefaultUserOptions();
+ $opt["quickbar"] = 2;
return $opt;
}
-
+
+ /**
+ * @return array of Hebrew bookstore list
+ */
function getBookstoreList() {
- global $wgBookstoreListHe ;
- return $wgBookstoreListHe ;
+ return $this->mBookstoreListHe;
}
-
+
+ /**
+ * @return array of Hebrew namespace names
+ */
function getNamespaces() {
- global $wgNamespaceNamesHe;
- return $wgNamespaceNamesHe;
- }
-
- function getQuickbarSettings() {
- global $wgQuickbarSettingsHe;
- return $wgQuickbarSettingsHe;
+ return $this->mNamespaceNamesHe + parent::getNamespaces();
}
-
+
+ /**
+ * @return array of Hebrew skin names
+ */
function getSkinNames() {
- global $wgSkinNamesHe;
- return $wgSkinNamesHe;
+ return $this->mSkinNamesHe + parent::getSkinNames();
}
-
+
+ /**
+ * @return array of Hebrew quickbar settings
+ */
+ function getQuickbarSettings() {
+ return $this->mQuickbarSettingsHe;
+ }
+
+ /**
+ * The function returns a message, in Hebrew if exists, in English if not, only from the default translations here.
+ *
+ * @param string the message key
+ *
+ * @return string of the wanted message
+ */
function getMessage( $key ) {
- global $wgAllMessagesHe;
- if(array_key_exists($key, $wgAllMessagesHe))
- return $wgAllMessagesHe[$key];
- else
- return parent::getMessage($key);
+ if( isset( $this->mMessagesHe[$key] ) ) {
+ return $this->mMessagesHe[$key];
+ } else {
+ return parent::getMessage( $key );
+ }
+ }
+
+ /**
+ * @return array of all the Hebrew messages
+ */
+ function getAllMessages() {
+ return $this->mMessagesHe;
+ }
+
+ /**
+ * @return array of all the magic words
+ */
+ function &getMagicWords() {
+ return $this->mMagicWordsHe;
+ }
+
+ /**
+ * @return true, as Hebrew is RTL language
+ */
+ function isRTL() {
+ return true;
}
- function isRTL() { return true; }
-
- function fallback8bitEncoding() { return "iso8859-8"; }
-
+ /**
+ * Gets a number and uses the suited form of the word.
+ *
+ * Needed for Hebrew as some words also has a form for two instances - for example, year or shoe -
+ * and the third parameter is used for them.
+ *
+ * When the word has only signular and plural forms, the plural form will be used for 2.
+ *
+ * @param integer $count
+ * @param string $wordform1
+ * @param string $wordform2
+ * @param string $wordform3 (optional)
+ *
+ * @return string of the suited form of word
+ */
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ if ( $count == '1' ) {
+ return $wordform1;
+ } elseif ( $count == '2' && $wordform3 ) {
+ return $wordform3;
+ } else {
+ return $wordform2;
+ }
+ }
+
+ /**
+ * @return string of the best 8-bit encoding for Hebrew, if UTF-8 cannot be used
+ */
+ function fallback8bitEncoding() {
+ return "windows-1255";
+ }
}
?>