Added German translation for new messages (de)
[lhc/web/wiklou.git] / languages / LanguageHe.php
1 <?php
2 /**
3 * Hebrew (עברית)
4 *
5 * @package MediaWiki
6 * @subpackage Language
7 *
8 * @author Rotem Dan (July 2003)
9 * @author Rotem Liss (March 2006 on)
10 */
11
12 require_once("LanguageUtf8.php");
13
14 if (!$wgCachedMessageArrays) {
15 require_once('MessagesHe.php');
16 }
17
18 class LanguageHe extends LanguageUtf8 {
19 private $mMessagesHe, $mNamespaceNamesHe = null;
20
21 private $mSkinNamesHe = array(
22 "standard" => "רגיל",
23 "nostalgia" => "נוסטלגי",
24 "cologneblue" => "מים כחולים",
25 "davinci" => "דה־וינצ'י",
26 "simple" => "פשוט",
27 "mono" => "מונו",
28 "monobook" => "מונובוק",
29 "myskin" => "הרקע שלי",
30 "chick" => "צ'יק"
31 );
32
33 private $mQuickbarSettingsHe = array(
34 "ללא", "קבוע משמאל", "קבוע מימין", "צף משמאל", "צף מימין"
35 );
36
37 private $mBookstoreListHe = array(
38 "מיתוס" => "http://www.mitos.co.il/",
39 "iBooks" => "http://www.ibooks.co.il/",
40 "Barnes & Noble" => "http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=\$1",
41 "Amazon.com" => "http://www.amazon.com/exec/obidos/ISBN=\$1"
42 );
43
44 private $mMagicWordsHe = array(
45 MAG_REDIRECT => array( 0, '#הפניה', '#REDIRECT' ),
46 MAG_NOTOC => array( 0, '__ללא_תוכן_עניינים__', '__ללא_תוכן__', '__NOTOC__' ),
47 MAG_NOGALLERY => array( 0, '__ללא_גלריה__', '__NOGALLERY__' ),
48 MAG_FORCETOC => array( 0, '__חייב_תוכן_עניינים__', '__חייב_תוכן__', '__FORCETOC__' ),
49 MAG_TOC => array( 0, '__תוכן_עניינים__', '__תוכן__', '__TOC__' ),
50 MAG_NOEDITSECTION => array( 0, '__ללא_עריכה__', '__NOEDITSECTION__' ),
51 MAG_START => array( 0, '__התחלה__', '__START__' ),
52 MAG_CURRENTMONTH => array( 1, 'חודש נוכחי', 'CURRENTMONTH' ),
53 MAG_CURRENTMONTHNAME => array( 1, 'שם חודש נוכחי', 'CURRENTMONTHNAME' ),
54 MAG_CURRENTMONTHNAMEGEN => array( 1, 'שם חודש נוכחי קניין', 'CURRENTMONTHNAMEGEN' ),
55 MAG_CURRENTMONTHABBREV => array( 1, 'קיצור חודש נוכחי', 'CURRENTMONTHABBREV' ),
56 MAG_CURRENTDAY => array( 1, 'יום נוכחי', 'CURRENTDAY' ),
57 MAG_CURRENTDAY2 => array( 1, 'יום נוכחי 2', 'CURRENTDAY2' ),
58 MAG_CURRENTDAYNAME => array( 1, 'שם יום נוכחי', 'CURRENTDAYNAME' ),
59 MAG_CURRENTYEAR => array( 1, 'שנה נוכחית', 'CURRENTYEAR' ),
60 MAG_CURRENTTIME => array( 1, 'שעה נוכחית', 'CURRENTTIME' ),
61 MAG_NUMBEROFPAGES => array( 1, 'מספר דפים כולל', 'מספר דפים', 'NUMBEROFPAGES' ),
62 MAG_NUMBEROFARTICLES => array( 1, 'מספר ערכים', 'NUMBEROFARTICLES' ),
63 MAG_NUMBEROFFILES => array( 1, 'מספר קבצים', 'NUMBEROFFILES' ),
64 MAG_NUMBEROFUSERS => array( 1, 'מספר משתמשים', 'NUMBEROFUSERS' ),
65 MAG_PAGENAME => array( 1, 'שם הדף', 'PAGENAME' ),
66 MAG_PAGENAMEE => array( 1, 'שם הדף מקודד', 'PAGENAMEE' ),
67 MAG_NAMESPACE => array( 1, 'מרחב השם', 'NAMESPACE' ),
68 MAG_NAMESPACEE => array( 1, 'מרחב השם מקודד', 'NAMESPACEE' ),
69 MAG_TALKSPACE => array( 1, 'מרחב השיחה', 'TALKSPACE' ),
70 MAG_TALKSPACEE => array( 1, 'מרחב השיחה מקודד', 'TALKSPACEE' ),
71 MAG_SUBJECTSPACE => array( 1, 'מרחב הנושא', 'מרחב הערכים', 'SUBJECTSPACE', 'ARTICLESPACE' ),
72 MAG_SUBJECTSPACEE => array( 1, 'מרחב הנושא מקודד', 'מרחב הערכים מקודד', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
73 MAG_FULLPAGENAME => array( 1, 'שם הדף המלא', 'FULLPAGENAME' ),
74 MAG_FULLPAGENAMEE => array( 1, 'שם הדף המלא מקודד', 'FULLPAGENAMEE' ),
75 MAG_SUBPAGENAME => array( 1, 'שם דף המשנה', 'SUBPAGENAME' ),
76 MAG_SUBPAGENAMEE => array( 1, 'שם דף המשנה מקודד', 'SUBPAGENAMEE' ),
77 MAG_BASEPAGENAME => array( 1, 'שם דף הבסיס', 'BASEPAGENAME' ),
78 MAG_BASEPAGENAMEE => array( 1, 'שם דף הבסיס מקודד', 'BASEPAGENAMEE' ),
79 MAG_TALKPAGENAME => array( 1, 'שם דף השיחה', 'TALKPAGENAME' ),
80 MAG_TALKPAGENAMEE => array( 1, 'שם דף השיחה מקודד', 'TALKPAGENAMEE' ),
81 MAG_SUBJECTPAGENAME => array( 1, 'שם דף הנושא', 'שם הערך', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
82 MAG_SUBJECTPAGENAMEE => array( 1, 'שם דף הנושא מקודד', 'שם הערך מקודד', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
83 MAG_MSG => array( 0, 'הכללה:', 'MSG:' ),
84 MAG_SUBST => array( 0, 'ס:', 'SUBST:' ),
85 MAG_MSGNW => array( 0, 'הכללת מקור', 'MSGNW:' ),
86 MAG_END => array( 0, '__סוף__', '__END__' ),
87 MAG_IMG_THUMBNAIL => array( 1, 'ממוזער', 'thumbnail', 'thumb' ),
88 MAG_IMG_MANUALTHUMB => array( 1, 'ממוזער=$1', 'thumbnail=$1', 'thumb=$1'),
89 MAG_IMG_RIGHT => array( 1, 'ימין', 'right' ),
90 MAG_IMG_LEFT => array( 1, 'שמאל', 'left' ),
91 MAG_IMG_NONE => array( 1, 'ללא', 'none' ),
92 MAG_IMG_WIDTH => array( 1, '$1px', '$1px' ),
93 MAG_IMG_CENTER => array( 1, 'מרכז', 'center', 'centre' ),
94 MAG_IMG_FRAMED => array( 1, 'ממוסגר', 'מסגרת', 'framed', 'enframed', 'frame' ),
95 MAG_INT => array( 0, 'הודעה:', 'INT:' ),
96 MAG_SITENAME => array( 1, 'שם האתר', 'SITENAME' ),
97 MAG_NS => array( 0, 'מרחב שם:', 'NS:' ),
98 MAG_LOCALURL => array( 0, 'כתובת יחסית:', 'LOCALURL:' ),
99 MAG_LOCALURLE => array( 0, 'כתובת יחסית מקודד:', 'LOCALURLE:' ),
100 MAG_SERVER => array( 0, 'כתובת השרת', 'שרת', 'SERVER' ),
101 MAG_SERVERNAME => array( 0, 'שם השרת', 'SERVERNAME' ),
102 MAG_SCRIPTPATH => array( 0, 'נתיב הקבצים', 'SCRIPTPATH' ),
103 MAG_GRAMMAR => array( 0, 'דקדוק:', 'GRAMMAR:' ),
104 MAG_NOTITLECONVERT => array( 0, '__ללא_המרת_כותרת__', '__NOTITLECONVERT__', '__NOTC__'),
105 MAG_NOCONTENTCONVERT => array( 0, '__ללא_המרת_תוכן__', '__NOCONTENTCONVERT__', '__NOCC__'),
106 MAG_CURRENTWEEK => array( 1, 'שבוע נוכחי', 'CURRENTWEEK' ),
107 MAG_CURRENTDOW => array( 1, 'מספר יום נוכחי', 'CURRENTDOW' ),
108 MAG_REVISIONID => array( 1, 'מזהה גרסה', 'REVISIONID' ),
109 MAG_PLURAL => array( 0, 'רבים:', 'PLURAL:' ),
110 MAG_FULLURL => array( 0, 'כתובת מלאה:', 'FULLURL:' ),
111 MAG_FULLURLE => array( 0, 'כתובת מלאה מקודד:', 'FULLURLE:' ),
112 MAG_LCFIRST => array( 0, 'אות ראשונה קטנה:', 'LCFIRST:' ),
113 MAG_UCFIRST => array( 0, 'אות ראשונה גדולה:', 'UCFIRST:' ),
114 MAG_LC => array( 0, 'אותיות קטנות:', 'LC:' ),
115 MAG_UC => array( 0, 'אותיות גדולות:', 'UC:' ),
116 MAG_RAW => array( 0, 'ללא עיבוד:', 'RAW:' ),
117 MAG_DISPLAYTITLE => array( 1, 'כותרת תצוגה', 'DISPLAYTITLE' ),
118 MAG_RAWSUFFIX => array( 1, 'ללא פסיק', 'R' ),
119 MAG_NEWSECTIONLINK => array( 1, '__יצירת_הערה__', '__NEWSECTIONLINK__' ),
120 MAG_CURRENTVERSION => array( 1, 'גרסה נוכחית', 'CURRENTVERSION' ),
121 MAG_URLENCODE => array( 0, 'נתיב מקודד:', 'URLENCODE:' ),
122 MAG_CURRENTTIMESTAMP => array( 1, 'זמן נוכחי', 'CURRENTTIMESTAMP' ),
123 MAG_DIRECTIONMARK => array( 1, 'סימן כיווניות', 'DIRECTIONMARK', 'DIRMARK' ),
124 MAG_LANGUAGE => array( 0, '#שפה:', '#LANGUAGE:' ),
125 MAG_CONTENTLANGUAGE => array( 1, 'שפת תוכן', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
126 MAG_PAGESINNAMESPACE => array( 1, 'דפים במרחב השם:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
127 MAG_NUMBEROFADMINS => array( 1, 'מספר מפעילים', 'NUMBEROFADMINS' ),
128 );
129
130 /**
131 * Constructor, setting the namespaces
132 */
133 function __construct() {
134 parent::__construct();
135
136 global $wgAllMessagesHe;
137 $this->mMessagesHe = &$wgAllMessagesHe;
138
139 global $wgMetaNamespace;
140 $this->mNamespaceNamesHe = array(
141 NS_MEDIA => "מדיה",
142 NS_SPECIAL => "מיוחד",
143 NS_MAIN => "",
144 NS_TALK => "שיחה",
145 NS_USER => "משתמש",
146 NS_USER_TALK => "שיחת_משתמש",
147 NS_PROJECT => $wgMetaNamespace,
148 NS_PROJECT_TALK => "שיחת_" . $wgMetaNamespace,
149 NS_IMAGE => "תמונה",
150 NS_IMAGE_TALK => "שיחת_תמונה",
151 NS_MEDIAWIKI => "מדיה_ויקי",
152 NS_MEDIAWIKI_TALK => "שיחת_מדיה_ויקי",
153 NS_TEMPLATE => "תבנית",
154 NS_TEMPLATE_TALK => "שיחת_תבנית",
155 NS_HELP => "עזרה",
156 NS_HELP_TALK => "שיחת_עזרה",
157 NS_CATEGORY => "קטגוריה",
158 NS_CATEGORY_TALK => "שיחת_קטגוריה",
159 );
160 }
161
162 /**
163 * Changing the default quickbar setting to "2" - right instead of left, as we use RTL interface
164 *
165 * @return array of the default user options
166 */
167 public function getDefaultUserOptions() {
168 $opt = parent::getDefaultUserOptions();
169 $opt["quickbar"] = 2;
170 return $opt;
171 }
172
173 /**
174 * @return array of Hebrew bookstore list
175 */
176 public function getBookstoreList() {
177 return $this->mBookstoreListHe;
178 }
179
180 /**
181 * @return array of Hebrew namespace names
182 */
183 public function getNamespaces() {
184 return $this->mNamespaceNamesHe + parent::getNamespaces();
185 }
186
187 /**
188 * @return array of Hebrew skin names
189 */
190 public function getSkinNames() {
191 return $this->mSkinNamesHe + parent::getSkinNames();
192 }
193
194 /**
195 * @return array of Hebrew quickbar settings
196 */
197 public function getQuickbarSettings() {
198 return $this->mQuickbarSettingsHe;
199 }
200
201 /**
202 * The function returns a message, in Hebrew if exists, in English if not, only from the default translations here.
203 *
204 * @param string the message key
205 *
206 * @return string of the wanted message
207 */
208 public function getMessage( $key ) {
209 if( isset( $this->mMessagesHe[$key] ) ) {
210 return $this->mMessagesHe[$key];
211 } else {
212 return parent::getMessage( $key );
213 }
214 }
215
216 /**
217 * @return array of all the Hebrew messages
218 */
219 public function getAllMessages() {
220 return $this->mMessagesHe;
221 }
222
223 /**
224 * @return array of all the magic words
225 */
226 public function &getMagicWords() {
227 return $this->mMagicWordsHe;
228 }
229
230 /**
231 * @return true, as Hebrew is RTL language
232 */
233 public function isRTL() {
234 return true;
235 }
236
237 /**
238 * @return regular expression which includes the word trails in the link
239 */
240 public function linkTrail() {
241 return '/^([a-zא-ת]+)(.*)$/sDu';
242 }
243
244 /**
245 * Convert grammar forms of words.
246 *
247 * Available cases:
248 * "prefixed" (or "תחילית") - when the word has a prefix
249 *
250 * @param string the word to convert
251 * @param string the case
252 */
253 public function convertGrammar( $word, $case ) {
254 global $wgGrammarForms;
255 if ( isset($wgGrammarForms['he'][$case][$word]) ) {
256 return $wgGrammarForms['he'][$case][$word];
257 }
258
259 switch ( $case ) {
260 case 'prefixed':
261 case 'תחילית':
262 # Duplicate the "Waw" if prefixed
263 if ( substr( $word, 0, 2 ) == "ו" && substr( $word, 0, 4 ) != "וו" ) {
264 $word = "ו".$word;
265 }
266
267 # Remove the "He" if prefixed
268 if ( substr( $word, 0, 2 ) == "ה" ) {
269 $word = substr( $word, 2 );
270 }
271
272 # Add a hyphen if non-Hebrew letters
273 if ( substr( $word, 0, 2 ) < "א" || substr( $word, 0, 2 ) > "ת" ) {
274 $word = "־".$word;
275 }
276 }
277
278 return $word;
279 }
280
281 /**
282 * Gets a number and uses the suited form of the word.
283 *
284 * @param integer the number of items
285 * @param string the first form (singular)
286 * @param string the second form (plural)
287 * @param string the third form (2 items, plural is used if not applicable and not specified)
288 *
289 * @return string of the suited form of word
290 */
291 public function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
292 if ( $count == '1' ) {
293 return $wordform1;
294 } elseif ( $count == '2' && $wordform3 ) {
295 return $wordform3;
296 } else {
297 return $wordform2;
298 }
299 }
300
301 /**
302 * @return string of the best 8-bit encoding for Hebrew, if UTF-8 cannot be used
303 */
304 public function fallback8bitEncoding() {
305 return "windows-1255";
306 }
307 }
308
309 ?>