Index: branches/liquidthreads/maintenance/language/messages.inc |
— | — | @@ -1678,6 +1678,11 @@ |
1679 | 1679 | 'variantname-kk-cn', |
1680 | 1680 | 'variantname-kk', |
1681 | 1681 | ), |
| 1682 | + 'variantname-ku' => array( |
| 1683 | + 'variantname-ku-arab', |
| 1684 | + 'variantname-ku-latn', |
| 1685 | + 'variantname-ku', |
| 1686 | + ), |
1682 | 1687 | 'passwordtooshort' => array( |
1683 | 1688 | 'passwordtooshort', |
1684 | 1689 | ), |
— | — | @@ -2227,6 +2232,7 @@ |
2228 | 2233 | Variants for Chinese language", |
2229 | 2234 | 'variantname-sr' => 'Variants for Serbian language', |
2230 | 2235 | 'variantname-kk' => 'Variants for Kazakh language', |
| 2236 | + 'variantname-ku' => 'Variants for Kurdish language', |
2231 | 2237 | 'passwordtooshort' => '', |
2232 | 2238 | 'media-info' => 'Media information', |
2233 | 2239 | 'metadata' => 'Metadata', |
Index: branches/liquidthreads/maintenance/language/messageTypes.inc |
— | — | @@ -163,6 +163,9 @@ |
164 | 164 | 'variantname-kk-kz', |
165 | 165 | 'variantname-kk-cn', |
166 | 166 | 'variantname-kk', |
| 167 | + 'variantname-ku-latn', |
| 168 | + 'variantname-ku-arab', |
| 169 | + 'variantname-ku', |
167 | 170 | 'rc-change-size', |
168 | 171 | 'resetpass_text', |
169 | 172 | 'widthheight', |
Index: branches/liquidthreads/docs/title.txt |
— | — | @@ -10,15 +10,15 @@ |
11 | 11 | immutable "value" class, so there are no mutator functions. |
12 | 12 | |
13 | 13 | To get a new instance, call one of the static factory |
14 | | -methods WikiTitle::newFromURL(), WikiTitle::newFromDBKey(), |
15 | | -or WikiTitle::newFromText(). Once instantiated, the |
| 14 | +methods Title::newFromURL(), Title::newFromDBKey(), |
| 15 | +or Title::newFromText(). Once instantiated, the |
16 | 16 | other non-static accessor methods can be used, such as |
17 | 17 | getText(), getDBKey(), getNamespace(), etc. |
18 | 18 | |
19 | | -The prefix rules: a title consists of an optional Interwiki |
| 19 | +The prefix rules: a title consists of an optional interwiki |
20 | 20 | prefix (such as "m:" for meta or "de:" for German), followed |
21 | 21 | by an optional namespace, followed by the remainder of the |
22 | | -title. Both Interwiki prefixes and namespace prefixes have |
| 22 | +title. Both interwiki prefixes and namespace prefixes have |
23 | 23 | the same rules: they contain only letters, digits, space, and |
24 | 24 | underscore, must start with a letter, are case insensitive, |
25 | 25 | and spaces and underscores are interchangeable. Prefixes end |
— | — | @@ -74,4 +74,3 @@ |
75 | 75 | the IDs for all instances of Title created during a request are |
76 | 76 | cached, so they can be looked up quickly while rendering wiki |
77 | 77 | text with lots of internal links. |
78 | | - |
Index: branches/liquidthreads/docs/hooks.txt |
— | — | @@ -35,20 +35,20 @@ |
36 | 36 | title to all uppercase letters. Currently, in MediaWiki code, we |
37 | 37 | would handle this as follows (note: not real code, here): |
38 | 38 | |
39 | | - function showAnArticle($article) { |
40 | | - global $wgReverseTitle, $wgCapitalizeTitle; |
41 | | - |
42 | | - if ($wgReverseTitle) { |
43 | | - wfReverseTitle($article); |
44 | | - } |
45 | | - |
46 | | - if ($wgCapitalizeTitle) { |
47 | | - wfCapitalizeTitle($article); |
48 | | - } |
49 | | - |
50 | | - # code to actually show the article goes here |
51 | | - } |
| 39 | + function showAnArticle($article) { |
| 40 | + global $wgReverseTitle, $wgCapitalizeTitle; |
52 | 41 | |
| 42 | + if ($wgReverseTitle) { |
| 43 | + wfReverseTitle($article); |
| 44 | + } |
| 45 | + |
| 46 | + if ($wgCapitalizeTitle) { |
| 47 | + wfCapitalizeTitle($article); |
| 48 | + } |
| 49 | + |
| 50 | + # code to actually show the article goes here |
| 51 | + } |
| 52 | + |
53 | 53 | An extension writer, or a local admin, will often add custom code to |
54 | 54 | the function -- with or without a global variable. For example, |
55 | 55 | someone wanting email notification when an article is shown may add: |
— | — | @@ -75,15 +75,15 @@ |
76 | 76 | option-specific stuff in our mainline code. Using hooks, the function |
77 | 77 | becomes: |
78 | 78 | |
79 | | - function showAnArticle($article) { |
| 79 | + function showAnArticle($article) { |
80 | 80 | |
81 | | - if (wfRunHooks('ArticleShow', array(&$article))) { |
82 | | - |
83 | | - # code to actually show the article goes here |
84 | | - |
85 | | - wfRunHooks('ArticleShowComplete', array(&$article)); |
| 81 | + if (wfRunHooks('ArticleShow', array(&$article))) { |
| 82 | + |
| 83 | + # code to actually show the article goes here |
| 84 | + |
| 85 | + wfRunHooks('ArticleShowComplete', array(&$article)); |
| 86 | + } |
86 | 87 | } |
87 | | - } |
88 | 88 | |
89 | 89 | We've cleaned up the code here by removing clumps of weird, |
90 | 90 | infrequently used code and moving them off somewhere else. It's much |
— | — | @@ -96,25 +96,25 @@ |
97 | 97 | in showAnArticle, deleteAnArticle, exportArticle, etc., we can |
98 | 98 | concentrate it all in an extension file: |
99 | 99 | |
100 | | - function reverseArticleTitle($article) { |
101 | | - # ... |
102 | | - } |
| 100 | + function reverseArticleTitle($article) { |
| 101 | + # ... |
| 102 | + } |
103 | 103 | |
104 | | - function reverseForExport($article) { |
105 | | - # ... |
106 | | - } |
| 104 | + function reverseForExport($article) { |
| 105 | + # ... |
| 106 | + } |
107 | 107 | |
108 | 108 | The setup function for the extension just has to add its hook |
109 | 109 | functions to the appropriate events: |
110 | 110 | |
111 | | - setupTitleReversingExtension() { |
112 | | - global $wgHooks; |
113 | | - |
114 | | - $wgHooks['ArticleShow'][] = 'reverseArticleTitle'; |
115 | | - $wgHooks['ArticleDelete'][] = 'reverseArticleTitle'; |
116 | | - $wgHooks['ArticleExport'][] = 'reverseForExport'; |
117 | | - } |
| 111 | + setupTitleReversingExtension() { |
| 112 | + global $wgHooks; |
118 | 113 | |
| 114 | + $wgHooks['ArticleShow'][] = 'reverseArticleTitle'; |
| 115 | + $wgHooks['ArticleDelete'][] = 'reverseArticleTitle'; |
| 116 | + $wgHooks['ArticleExport'][] = 'reverseForExport'; |
| 117 | + } |
| 118 | + |
119 | 119 | Having all this code related to the title-reversion option in one |
120 | 120 | place means that it's easier to read and understand; you don't have to |
121 | 121 | do a grep-find to see where the $wgReverseTitle variable is used, say. |
— | — | @@ -124,8 +124,8 @@ |
125 | 125 | performance at runtime. Admins who want to have all the reversed |
126 | 126 | titles can add: |
127 | 127 | |
128 | | - require_once('extensions/ReverseTitle.php'); |
129 | | - |
| 128 | + require_once('extensions/ReverseTitle.php'); |
| 129 | + |
130 | 130 | ...to their LocalSettings.php file; those of us who don't want or need |
131 | 131 | it can just leave it out. |
132 | 132 | |
— | — | @@ -143,31 +143,31 @@ |
144 | 144 | Hooks are registered by adding them to the global $wgHooks array for a |
145 | 145 | given event. All the following are valid ways to define hooks: |
146 | 146 | |
147 | | - $wgHooks['EventName'][] = 'someFunction'; # function, no data |
148 | | - $wgHooks['EventName'][] = array('someFunction', $someData); |
149 | | - $wgHooks['EventName'][] = array('someFunction'); # weird, but OK |
150 | | - |
151 | | - $wgHooks['EventName'][] = $object; # object only |
152 | | - $wgHooks['EventName'][] = array($object, 'someMethod'); |
153 | | - $wgHooks['EventName'][] = array($object, 'someMethod', $someData); |
154 | | - $wgHooks['EventName'][] = array($object); # weird but OK |
| 147 | + $wgHooks['EventName'][] = 'someFunction'; # function, no data |
| 148 | + $wgHooks['EventName'][] = array('someFunction', $someData); |
| 149 | + $wgHooks['EventName'][] = array('someFunction'); # weird, but OK |
155 | 150 | |
| 151 | + $wgHooks['EventName'][] = $object; # object only |
| 152 | + $wgHooks['EventName'][] = array($object, 'someMethod'); |
| 153 | + $wgHooks['EventName'][] = array($object, 'someMethod', $someData); |
| 154 | + $wgHooks['EventName'][] = array($object); # weird but OK |
| 155 | + |
156 | 156 | When an event occurs, the function (or object method) will be called |
157 | 157 | with the optional data provided as well as event-specific parameters. |
158 | 158 | The above examples would result in the following code being executed |
159 | 159 | when 'EventName' happened: |
160 | 160 | |
161 | | - # function, no data |
162 | | - someFunction($param1, $param2) |
163 | | - # function with data |
164 | | - someFunction($someData, $param1, $param2) |
| 161 | + # function, no data |
| 162 | + someFunction($param1, $param2) |
| 163 | + # function with data |
| 164 | + someFunction($someData, $param1, $param2) |
165 | 165 | |
166 | | - # object only |
167 | | - $object->onEventName($param1, $param2) |
168 | | - # object with method |
169 | | - $object->someMethod($param1, $param2) |
170 | | - # object with method and data |
171 | | - $object->someMethod($someData, $param1, $param2) |
| 166 | + # object only |
| 167 | + $object->onEventName($param1, $param2) |
| 168 | + # object with method |
| 169 | + $object->someMethod($param1, $param2) |
| 170 | + # object with method and data |
| 171 | + $object->someMethod($someData, $param1, $param2) |
172 | 172 | |
173 | 173 | Note that when an object is the hook, and there's no specified method, |
174 | 174 | the default method called is 'onEventName'. For different events this |
— | — | @@ -176,8 +176,8 @@ |
177 | 177 | The extra data is useful if we want to use the same function or object |
178 | 178 | for different purposes. For example: |
179 | 179 | |
180 | | - $wgHooks['ArticleSaveComplete'][] = array('ircNotify', 'TimStarling'); |
181 | | - $wgHooks['ArticleSaveComplete'][] = array('ircNotify', 'brion'); |
| 180 | + $wgHooks['ArticleSaveComplete'][] = array('ircNotify', 'TimStarling'); |
| 181 | + $wgHooks['ArticleSaveComplete'][] = array('ircNotify', 'brion'); |
182 | 182 | |
183 | 183 | This code would result in ircNotify being run twice when an article is |
184 | 184 | saved: once for 'TimStarling', and once for 'brion'. |
— | — | @@ -195,12 +195,12 @@ |
196 | 196 | users to a custom system (LDAP, another PHP program, whatever), you |
197 | 197 | could do: |
198 | 198 | |
199 | | - $wgHooks['UserLogin'][] = array('ldapLogin', $ldapServer); |
200 | | - |
201 | | - function ldapLogin($username, $password) { |
202 | | - # log user into LDAP |
203 | | - return false; |
204 | | - } |
| 199 | + $wgHooks['UserLogin'][] = array('ldapLogin', $ldapServer); |
| 200 | + |
| 201 | + function ldapLogin($username, $password) { |
| 202 | + # log user into LDAP |
| 203 | + return false; |
| 204 | + } |
205 | 205 | |
206 | 206 | Returning false makes less sense for events where the action is |
207 | 207 | complete, and will normally be ignored. |
— | — | @@ -210,14 +210,15 @@ |
211 | 211 | A calling function or method uses the wfRunHooks() function to run |
212 | 212 | the hooks related to a particular event, like so: |
213 | 213 | |
214 | | - class Article { |
215 | | - # ... |
216 | | - function protect() { |
217 | | - global $wgUser; |
218 | | - if (wfRunHooks('ArticleProtect', array(&$this, &$wgUser))) { |
219 | | - # protect the article |
220 | | - wfRunHooks('ArticleProtectComplete', array(&$this, &$wgUser)); |
221 | | - } |
| 214 | + class Article { |
| 215 | + # ... |
| 216 | + function protect() { |
| 217 | + global $wgUser; |
| 218 | + if (wfRunHooks('ArticleProtect', array(&$this, &$wgUser))) { |
| 219 | + # protect the article |
| 220 | + wfRunHooks('ArticleProtectComplete', array(&$this, &$wgUser)); |
| 221 | + } |
| 222 | + } |
222 | 223 | } |
223 | 224 | |
224 | 225 | wfRunHooks() returns true if the calling function should continue |
Index: branches/liquidthreads/includes/MimeMagic.php |
— | — | @@ -111,56 +111,67 @@ |
112 | 112 | * --- load mime.types --- |
113 | 113 | */ |
114 | 114 | |
115 | | - global $wgMimeTypeFile; |
| 115 | + global $wgMimeTypeFile, $IP; |
116 | 116 | |
117 | | - $types= MM_WELL_KNOWN_MIME_TYPES; |
| 117 | + $types = MM_WELL_KNOWN_MIME_TYPES; |
118 | 118 | |
119 | | - if ($wgMimeTypeFile) { |
120 | | - if (is_file($wgMimeTypeFile) and is_readable($wgMimeTypeFile)) { |
121 | | - wfDebug("MimeMagic::MimeMagic: loading mime types from $wgMimeTypeFile\n"); |
122 | | - |
123 | | - $types.= "\n"; |
124 | | - $types.= file_get_contents($wgMimeTypeFile); |
| 119 | + if ( $wgMimeTypeFile == 'includes/mime.types' ) { |
| 120 | + $wgMimeTypeFile = "$IP/$wgMimeTypeFile"; |
| 121 | + } |
| 122 | + |
| 123 | + if ( $wgMimeTypeFile ) { |
| 124 | + if ( is_file( $wgMimeTypeFile ) and is_readable( $wgMimeTypeFile ) ) { |
| 125 | + wfDebug( __METHOD__.": loading mime types from $wgMimeTypeFile\n" ); |
| 126 | + $types .= "\n"; |
| 127 | + $types .= file_get_contents( $wgMimeTypeFile ); |
| 128 | + } else { |
| 129 | + wfDebug( __METHOD__.": can't load mime types from $wgMimeTypeFile\n" ); |
125 | 130 | } |
126 | | - else wfDebug("MimeMagic::MimeMagic: can't load mime types from $wgMimeTypeFile\n"); |
| 131 | + } else { |
| 132 | + wfDebug( __METHOD__.": no mime types file defined, using build-ins only.\n" ); |
127 | 133 | } |
128 | | - else wfDebug("MimeMagic::MimeMagic: no mime types file defined, using build-ins only.\n"); |
129 | 134 | |
130 | | - $types= str_replace(array("\r\n","\n\r","\n\n","\r\r","\r"),"\n",$types); |
131 | | - $types= str_replace("\t"," ",$types); |
| 135 | + $types = str_replace( array( "\r\n", "\n\r", "\n\n", "\r\r", "\r" ), "\n", $types ); |
| 136 | + $types = str_replace( "\t", " ", $types ); |
132 | 137 | |
133 | | - $this->mMimeToExt= array(); |
134 | | - $this->mToMime= array(); |
| 138 | + $this->mMimeToExt = array(); |
| 139 | + $this->mToMime = array(); |
135 | 140 | |
136 | | - $lines= explode("\n",$types); |
137 | | - foreach ($lines as $s) { |
138 | | - $s= trim($s); |
139 | | - if (empty($s)) continue; |
140 | | - if (strpos($s,'#')===0) continue; |
| 141 | + $lines = explode( "\n",$types ); |
| 142 | + foreach ( $lines as $s ) { |
| 143 | + $s = trim( $s ); |
| 144 | + if ( empty( $s ) ) continue; |
| 145 | + if ( strpos( $s, '#' ) === 0 ) continue; |
141 | 146 | |
142 | | - $s= strtolower($s); |
143 | | - $i= strpos($s,' '); |
| 147 | + $s = strtolower( $s ); |
| 148 | + $i = strpos( $s, ' ' ); |
144 | 149 | |
145 | | - if ($i===false) continue; |
| 150 | + if ( $i === false ) continue; |
146 | 151 | |
147 | 152 | #print "processing MIME line $s<br>"; |
148 | 153 | |
149 | | - $mime= substr($s,0,$i); |
150 | | - $ext= trim(substr($s,$i+1)); |
| 154 | + $mime = substr( $s, 0, $i ); |
| 155 | + $ext = trim( substr($s, $i+1 ) ); |
151 | 156 | |
152 | | - if (empty($ext)) continue; |
| 157 | + if ( empty( $ext ) ) continue; |
153 | 158 | |
154 | | - if ( !empty($this->mMimeToExt[$mime])) $this->mMimeToExt[$mime] .= ' '.$ext; |
155 | | - else $this->mMimeToExt[$mime]= $ext; |
| 159 | + if ( !empty( $this->mMimeToExt[$mime] ) ) { |
| 160 | + $this->mMimeToExt[$mime] .= ' ' . $ext; |
| 161 | + } else { |
| 162 | + $this->mMimeToExt[$mime] = $ext; |
| 163 | + } |
156 | 164 | |
157 | | - $extensions= explode(' ',$ext); |
| 165 | + $extensions = explode( ' ', $ext ); |
158 | 166 | |
159 | | - foreach ($extensions as $e) { |
160 | | - $e= trim($e); |
161 | | - if (empty($e)) continue; |
| 167 | + foreach ( $extensions as $e ) { |
| 168 | + $e = trim( $e ); |
| 169 | + if ( empty( $e ) ) continue; |
162 | 170 | |
163 | | - if ( !empty($this->mExtToMime[$e])) $this->mExtToMime[$e] .= ' '.$mime; |
164 | | - else $this->mExtToMime[$e]= $mime; |
| 171 | + if ( !empty( $this->mExtToMime[$e] ) ) { |
| 172 | + $this->mExtToMime[$e] .= ' ' . $mime; |
| 173 | + } else { |
| 174 | + $this->mExtToMime[$e] = $mime; |
| 175 | + } |
165 | 176 | } |
166 | 177 | } |
167 | 178 | |
— | — | @@ -169,62 +180,69 @@ |
170 | 181 | */ |
171 | 182 | |
172 | 183 | global $wgMimeInfoFile; |
| 184 | + if ( $wgMimeInfoFile == 'includes/mime.info' ) { |
| 185 | + $wgMimeInfoFile = "$IP/$wgMimeInfoFile"; |
| 186 | + } |
173 | 187 | |
174 | | - $info= MM_WELL_KNOWN_MIME_INFO; |
| 188 | + $info = MM_WELL_KNOWN_MIME_INFO; |
175 | 189 | |
176 | | - if ($wgMimeInfoFile) { |
177 | | - if (is_file($wgMimeInfoFile) and is_readable($wgMimeInfoFile)) { |
178 | | - wfDebug("MimeMagic::MimeMagic: loading mime info from $wgMimeInfoFile\n"); |
179 | | - |
180 | | - $info.= "\n"; |
181 | | - $info.= file_get_contents($wgMimeInfoFile); |
| 190 | + if ( $wgMimeInfoFile ) { |
| 191 | + if ( is_file( $wgMimeInfoFile ) and is_readable( $wgMimeInfoFile ) ) { |
| 192 | + wfDebug( __METHOD__.": loading mime info from $wgMimeInfoFile\n" ); |
| 193 | + $info .= "\n"; |
| 194 | + $info .= file_get_contents( $wgMimeInfoFile ); |
| 195 | + } else { |
| 196 | + wfDebug(__METHOD__.": can't load mime info from $wgMimeInfoFile\n"); |
182 | 197 | } |
183 | | - else wfDebug("MimeMagic::MimeMagic: can't load mime info from $wgMimeInfoFile\n"); |
| 198 | + } else { |
| 199 | + wfDebug(__METHOD__.": no mime info file defined, using build-ins only.\n"); |
184 | 200 | } |
185 | | - else wfDebug("MimeMagic::MimeMagic: no mime info file defined, using build-ins only.\n"); |
186 | 201 | |
187 | | - $info= str_replace(array("\r\n","\n\r","\n\n","\r\r","\r"),"\n",$info); |
188 | | - $info= str_replace("\t"," ",$info); |
| 202 | + $info = str_replace( array( "\r\n", "\n\r", "\n\n", "\r\r", "\r" ), "\n", $info); |
| 203 | + $info = str_replace( "\t", " ", $info ); |
189 | 204 | |
190 | | - $this->mMimeTypeAliases= array(); |
191 | | - $this->mMediaTypes= array(); |
| 205 | + $this->mMimeTypeAliases = array(); |
| 206 | + $this->mMediaTypes = array(); |
192 | 207 | |
193 | | - $lines= explode("\n",$info); |
194 | | - foreach ($lines as $s) { |
195 | | - $s= trim($s); |
196 | | - if (empty($s)) continue; |
197 | | - if (strpos($s,'#')===0) continue; |
| 208 | + $lines = explode( "\n", $info ); |
| 209 | + foreach ( $lines as $s ) { |
| 210 | + $s = trim( $s ); |
| 211 | + if ( empty( $s ) ) continue; |
| 212 | + if ( strpos( $s, '#' ) === 0 ) continue; |
198 | 213 | |
199 | | - $s= strtolower($s); |
200 | | - $i= strpos($s,' '); |
| 214 | + $s = strtolower( $s ); |
| 215 | + $i = strpos( $s, ' ' ); |
201 | 216 | |
202 | | - if ($i===false) continue; |
| 217 | + if ( $i === false ) continue; |
203 | 218 | |
204 | 219 | #print "processing MIME INFO line $s<br>"; |
205 | 220 | |
206 | | - $match= array(); |
207 | | - if (preg_match('!\[\s*(\w+)\s*\]!',$s,$match)) { |
208 | | - $s= preg_replace('!\[\s*(\w+)\s*\]!','',$s); |
209 | | - $mtype= trim(strtoupper($match[1])); |
| 221 | + $match = array(); |
| 222 | + if ( preg_match( '!\[\s*(\w+)\s*\]!', $s, $match ) ) { |
| 223 | + $s = preg_replace( '!\[\s*(\w+)\s*\]!', '', $s ); |
| 224 | + $mtype = trim( strtoupper( $match[1] ) ); |
| 225 | + } else { |
| 226 | + $mtype = MEDIATYPE_UNKNOWN; |
210 | 227 | } |
211 | | - else $mtype= MEDIATYPE_UNKNOWN; |
212 | 228 | |
213 | | - $m= explode(' ',$s); |
| 229 | + $m = explode( ' ', $s ); |
214 | 230 | |
215 | | - if (!isset($this->mMediaTypes[$mtype])) $this->mMediaTypes[$mtype]= array(); |
| 231 | + if ( !isset( $this->mMediaTypes[$mtype] ) ) { |
| 232 | + $this->mMediaTypes[$mtype] = array(); |
| 233 | + } |
216 | 234 | |
217 | | - foreach ($m as $mime) { |
218 | | - $mime= trim($mime); |
219 | | - if (empty($mime)) continue; |
| 235 | + foreach ( $m as $mime ) { |
| 236 | + $mime = trim( $mime ); |
| 237 | + if ( empty( $mime ) ) continue; |
220 | 238 | |
221 | | - $this->mMediaTypes[$mtype][]= $mime; |
| 239 | + $this->mMediaTypes[$mtype][] = $mime; |
222 | 240 | } |
223 | 241 | |
224 | | - if (sizeof($m)>1) { |
225 | | - $main= $m[0]; |
226 | | - for ($i=1; $i<sizeof($m); $i+= 1) { |
227 | | - $mime= $m[$i]; |
228 | | - $this->mMimeTypeAliases[$mime]= $main; |
| 242 | + if ( sizeof( $m ) > 1 ) { |
| 243 | + $main = $m[0]; |
| 244 | + for ( $i=1; $i<sizeof($m); $i += 1 ) { |
| 245 | + $mime = $m[$i]; |
| 246 | + $this->mMimeTypeAliases[$mime] = $main; |
229 | 247 | } |
230 | 248 | } |
231 | 249 | } |
— | — | @@ -244,14 +262,14 @@ |
245 | 263 | /** returns a list of file extensions for a given mime type |
246 | 264 | * as a space separated string. |
247 | 265 | */ |
248 | | - function getExtensionsForType($mime) { |
249 | | - $mime= strtolower($mime); |
| 266 | + function getExtensionsForType( $mime ) { |
| 267 | + $mime = strtolower( $mime ); |
250 | 268 | |
251 | | - $r= @$this->mMimeToExt[$mime]; |
| 269 | + $r = @$this->mMimeToExt[$mime]; |
252 | 270 | |
253 | | - if (@!$r and isset($this->mMimeTypeAliases[$mime])) { |
254 | | - $mime= $this->mMimeTypeAliases[$mime]; |
255 | | - $r= @$this->mMimeToExt[$mime]; |
| 271 | + if ( @!$r and isset( $this->mMimeTypeAliases[$mime] ) ) { |
| 272 | + $mime = $this->mMimeTypeAliases[$mime]; |
| 273 | + $r = @$this->mMimeToExt[$mime]; |
256 | 274 | } |
257 | 275 | |
258 | 276 | return $r; |
— | — | @@ -260,22 +278,22 @@ |
261 | 279 | /** returns a list of mime types for a given file extension |
262 | 280 | * as a space separated string. |
263 | 281 | */ |
264 | | - function getTypesForExtension($ext) { |
265 | | - $ext= strtolower($ext); |
| 282 | + function getTypesForExtension( $ext ) { |
| 283 | + $ext = strtolower( $ext ); |
266 | 284 | |
267 | | - $r= isset( $this->mExtToMime[$ext] ) ? $this->mExtToMime[$ext] : null; |
| 285 | + $r = isset( $this->mExtToMime[$ext] ) ? $this->mExtToMime[$ext] : null; |
268 | 286 | return $r; |
269 | 287 | } |
270 | 288 | |
271 | 289 | /** returns a single mime type for a given file extension. |
272 | 290 | * This is always the first type from the list returned by getTypesForExtension($ext). |
273 | 291 | */ |
274 | | - function guessTypesForExtension($ext) { |
275 | | - $m= $this->getTypesForExtension( $ext ); |
276 | | - if( is_null($m) ) return NULL; |
| 292 | + function guessTypesForExtension( $ext ) { |
| 293 | + $m = $this->getTypesForExtension( $ext ); |
| 294 | + if ( is_null( $m ) ) return NULL; |
277 | 295 | |
278 | | - $m= trim( $m ); |
279 | | - $m= preg_replace('/\s.*$/','',$m); |
| 296 | + $m = trim( $m ); |
| 297 | + $m = preg_replace( '/\s.*$/', '', $m ); |
280 | 298 | |
281 | 299 | return $m; |
282 | 300 | } |
— | — | @@ -285,17 +303,17 @@ |
286 | 304 | * returns true if a match was found, NULL if the mime type is unknown, |
287 | 305 | * and false if the mime type is known but no matches where found. |
288 | 306 | */ |
289 | | - function isMatchingExtension($extension,$mime) { |
290 | | - $ext= $this->getExtensionsForType($mime); |
| 307 | + function isMatchingExtension( $extension, $mime ) { |
| 308 | + $ext = $this->getExtensionsForType( $mime ); |
291 | 309 | |
292 | | - if (!$ext) { |
| 310 | + if ( !$ext ) { |
293 | 311 | return NULL; //unknown |
294 | 312 | } |
295 | 313 | |
296 | | - $ext= explode(' ',$ext); |
| 314 | + $ext = explode( ' ', $ext ); |
297 | 315 | |
298 | | - $extension= strtolower($extension); |
299 | | - if (in_array($extension,$ext)) { |
| 316 | + $extension = strtolower( $extension ); |
| 317 | + if ( in_array( $extension, $ext ) ) { |
300 | 318 | return true; |
301 | 319 | } |
302 | 320 | |
— | — | @@ -347,13 +365,13 @@ |
348 | 366 | * or misinterpreter by the default mime detection (namely xml based formats like XHTML or SVG). |
349 | 367 | * |
350 | 368 | * @param string $file The file to check |
351 | | - * @param bool $useExt switch for allowing to use the file extension to guess the mime type. true by default. |
| 369 | + * @param mixed $ext The file extension, or true to extract it from the filename. |
| 370 | + * Set it to false to ignore the extension. |
352 | 371 | * |
353 | 372 | * @return string the mime type of $file |
354 | 373 | */ |
355 | | - function guessMimeType( $file, $useExt=true ) { |
356 | | - $fname = 'MimeMagic::guessMimeType'; |
357 | | - $mime= $this->detectMimeType($file,$useExt); |
| 374 | + function guessMimeType( $file, $ext = true ) { |
| 375 | + $mime = $this->detectMimeType( $file, $ext ); |
358 | 376 | |
359 | 377 | // Read a chunk of the file |
360 | 378 | $f = fopen( $file, "rt" ); |
— | — | @@ -369,67 +387,88 @@ |
370 | 388 | $mime = "application/x-msmetafile"; |
371 | 389 | } |
372 | 390 | |
373 | | - if (strpos($mime,"text/")===0 || $mime==="application/xml") { |
| 391 | + if ( strpos( $mime, "text/" ) === 0 || $mime === "application/xml" ) { |
374 | 392 | |
375 | | - $xml_type= NULL; |
376 | | - $script_type= NULL; |
| 393 | + $xml_type = NULL; |
| 394 | + $script_type = NULL; |
377 | 395 | |
378 | 396 | /* |
379 | 397 | * look for XML formats (XHTML and SVG) |
380 | 398 | */ |
381 | | - if ($mime==="text/sgml" || |
382 | | - $mime==="text/plain" || |
383 | | - $mime==="text/html" || |
384 | | - $mime==="text/xml" || |
385 | | - $mime==="application/xml") { |
| 399 | + if ($mime === "text/sgml" || |
| 400 | + $mime === "text/plain" || |
| 401 | + $mime === "text/html" || |
| 402 | + $mime === "text/xml" || |
| 403 | + $mime === "application/xml") { |
386 | 404 | |
387 | | - if (substr($head,0,5)=="<?xml") $xml_type= "ASCII"; |
388 | | - elseif (substr($head,0,8)=="\xef\xbb\xbf<?xml") $xml_type= "UTF-8"; |
389 | | - elseif (substr($head,0,10)=="\xfe\xff\x00<\x00?\x00x\x00m\x00l") $xml_type= "UTF-16BE"; |
390 | | - elseif (substr($head,0,10)=="\xff\xfe<\x00?\x00x\x00m\x00l\x00") $xml_type= "UTF-16LE"; |
| 405 | + if ( substr( $head, 0, 5 ) == "<?xml" ) { |
| 406 | + $xml_type = "ASCII"; |
| 407 | + } elseif ( substr( $head, 0, 8 ) == "\xef\xbb\xbf<?xml") { |
| 408 | + $xml_type = "UTF-8"; |
| 409 | + } elseif ( substr( $head, 0, 10 ) == "\xfe\xff\x00<\x00?\x00x\x00m\x00l" ) { |
| 410 | + $xml_type = "UTF-16BE"; |
| 411 | + } elseif ( substr( $head, 0, 10 ) == "\xff\xfe<\x00?\x00x\x00m\x00l\x00") { |
| 412 | + $xml_type = "UTF-16LE"; |
| 413 | + } |
391 | 414 | |
392 | | - if ($xml_type) { |
393 | | - if ($xml_type!=="UTF-8" && $xml_type!=="ASCII") $head= iconv($xml_type,"ASCII//IGNORE",$head); |
| 415 | + if ( $xml_type ) { |
| 416 | + if ( $xml_type !== "UTF-8" && $xml_type !== "ASCII" ) { |
| 417 | + $head = iconv( $xml_type, "ASCII//IGNORE", $head ); |
| 418 | + } |
394 | 419 | |
395 | | - $match= array(); |
396 | | - $doctype= ""; |
397 | | - $tag= ""; |
| 420 | + $match = array(); |
| 421 | + $doctype = ""; |
| 422 | + $tag = ""; |
398 | 423 | |
399 | | - if (preg_match('%<!DOCTYPE\s+[\w-]+\s+PUBLIC\s+["'."'".'"](.*?)["'."'".'"].*>%sim',$head,$match)) $doctype= $match[1]; |
400 | | - if (preg_match('%<(\w+).*>%sim',$head,$match)) $tag= $match[1]; |
| 424 | + if ( preg_match( '%<!DOCTYPE\s+[\w-]+\s+PUBLIC\s+["'."'".'"](.*?)["'."'".'"].*>%sim', |
| 425 | + $head, $match ) ) { |
| 426 | + $doctype = $match[1]; |
| 427 | + } |
| 428 | + if ( preg_match( '%<(\w+).*>%sim', $head, $match ) ) { |
| 429 | + $tag = $match[1]; |
| 430 | + } |
401 | 431 | |
402 | 432 | #print "<br>ANALYSING $file ($mime): doctype= $doctype; tag= $tag<br>"; |
403 | 433 | |
404 | | - if (strpos($doctype,"-//W3C//DTD SVG")===0) $mime= "image/svg+xml"; |
405 | | - elseif ($tag==="svg") $mime= "image/svg+xml"; |
406 | | - elseif (strpos($doctype,"-//W3C//DTD XHTML")===0) $mime= "text/html"; |
407 | | - elseif ($tag==="html") $mime= "text/html"; |
| 434 | + if ( strpos( $doctype, "-//W3C//DTD SVG" ) === 0 ) { |
| 435 | + $mime = "image/svg+xml"; |
| 436 | + } elseif ( $tag === "svg" ) { |
| 437 | + $mime = "image/svg+xml"; |
| 438 | + } elseif ( strpos( $doctype, "-//W3C//DTD XHTML" ) === 0 ) { |
| 439 | + $mime = "text/html"; |
| 440 | + } elseif ( $tag === "html" ) { |
| 441 | + $mime = "text/html"; |
| 442 | + } |
408 | 443 | } |
409 | 444 | } |
410 | 445 | |
411 | 446 | /* |
412 | 447 | * look for shell scripts |
413 | 448 | */ |
414 | | - if (!$xml_type) { |
415 | | - $script_type= NULL; |
| 449 | + if ( !$xml_type ) { |
| 450 | + $script_type = NULL; |
416 | 451 | |
417 | | - #detect by shebang |
418 | | - if (substr($head,0,2)=="#!") $script_type= "ASCII"; |
419 | | - elseif (substr($head,0,5)=="\xef\xbb\xbf#!") $script_type= "UTF-8"; |
420 | | - elseif (substr($head,0,7)=="\xfe\xff\x00#\x00!") $script_type= "UTF-16BE"; |
421 | | - elseif (substr($head,0,7)=="\xff\xfe#\x00!") $script_type= "UTF-16LE"; |
| 452 | + # detect by shebang |
| 453 | + if ( substr( $head, 0, 2) == "#!" ) { |
| 454 | + $script_type = "ASCII"; |
| 455 | + } elseif ( substr( $head, 0, 5) == "\xef\xbb\xbf#!" ) { |
| 456 | + $script_type = "UTF-8"; |
| 457 | + } elseif ( substr( $head, 0, 7) == "\xfe\xff\x00#\x00!" ) { |
| 458 | + $script_type = "UTF-16BE"; |
| 459 | + } elseif ( substr( $head, 0, 7 ) == "\xff\xfe#\x00!" ) { |
| 460 | + $script_type= "UTF-16LE"; |
| 461 | + } |
422 | 462 | |
423 | | - if ($script_type) { |
424 | | - if ($script_type!=="UTF-8" && $script_type!=="ASCII") $head= iconv($script_type,"ASCII//IGNORE",$head); |
| 463 | + if ( $script_type ) { |
| 464 | + if ( $script_type !== "UTF-8" && $script_type !== "ASCII") { |
| 465 | + $head = iconv( $script_type, "ASCII//IGNORE", $head); |
| 466 | + } |
425 | 467 | |
426 | | - $match= array(); |
427 | | - $prog= ""; |
| 468 | + $match = array(); |
428 | 469 | |
429 | | - if (preg_match('%/?([^\s]+/)(w+)%sim',$head,$match)) { |
430 | | - $script= $match[2]; // FIXME: $script variable not used; should this be "$prog = $match[2];" instead? |
| 470 | + if ( preg_match( '%/?([^\s]+/)(\w+)%', $head, $match ) ) { |
| 471 | + $mime = "application/x-{$match[2]}"; |
431 | 472 | } |
432 | | - |
433 | | - $mime= "application/x-$prog"; |
434 | 473 | } |
435 | 474 | } |
436 | 475 | |
— | — | @@ -450,42 +489,43 @@ |
451 | 490 | ( strpos( $head, "<\x00?\x00\t" ) !== false ) || |
452 | 491 | ( strpos( $head, "<\x00?\x00=" ) !== false ) ) { |
453 | 492 | |
454 | | - $mime= "application/x-php"; |
| 493 | + $mime = "application/x-php"; |
455 | 494 | } |
456 | 495 | } |
457 | 496 | |
458 | 497 | } |
459 | 498 | |
460 | | - if (isset($this->mMimeTypeAliases[$mime])) $mime= $this->mMimeTypeAliases[$mime]; |
| 499 | + if ( isset( $this->mMimeTypeAliases[$mime] ) ) { |
| 500 | + $mime = $this->mMimeTypeAliases[$mime]; |
| 501 | + } |
461 | 502 | |
462 | | - wfDebug("$fname: final mime type of $file: $mime\n"); |
| 503 | + wfDebug(__METHOD__.": final mime type of $file: $mime\n"); |
463 | 504 | return $mime; |
464 | 505 | } |
465 | 506 | |
466 | 507 | /** Internal mime type detection, please use guessMimeType() for application code instead. |
467 | 508 | * Detection is done using an external program, if $wgMimeDetectorCommand is set. |
468 | 509 | * Otherwise, the fileinfo extension and mime_content_type are tried (in this order), if they are available. |
469 | | - * If the dections fails and $useExt is true, the mime type is guessed from the file extension, using guessTypesForExtension. |
| 510 | + * If the dections fails and $ext is not false, the mime type is guessed from the file extension, using |
| 511 | + * guessTypesForExtension. |
470 | 512 | * If the mime type is still unknown, getimagesize is used to detect the mime type if the file is an image. |
471 | 513 | * If no mime type can be determined, this function returns "unknown/unknown". |
472 | 514 | * |
473 | 515 | * @param string $file The file to check |
474 | | - * @param bool $useExt switch for allowing to use the file extension to guess the mime type. true by default. |
| 516 | + * @param mixed $ext The file extension, or true to extract it from the filename. |
| 517 | + * Set it to false to ignore the extension. |
475 | 518 | * |
476 | 519 | * @return string the mime type of $file |
477 | 520 | * @access private |
478 | 521 | */ |
479 | | - function detectMimeType( $file, $useExt=true ) { |
480 | | - $fname = 'MimeMagic::detectMimeType'; |
481 | | - |
| 522 | + function detectMimeType( $file, $ext = true ) { |
482 | 523 | global $wgMimeDetectorCommand; |
483 | 524 | |
484 | | - $m= NULL; |
485 | | - if ($wgMimeDetectorCommand) { |
486 | | - $fn= wfEscapeShellArg($file); |
487 | | - $m= `$wgMimeDetectorCommand $fn`; |
488 | | - } |
489 | | - else if (function_exists("finfo_open") && function_exists("finfo_file")) { |
| 525 | + $m = NULL; |
| 526 | + if ( $wgMimeDetectorCommand ) { |
| 527 | + $fn = wfEscapeShellArg( $file ); |
| 528 | + $m = `$wgMimeDetectorCommand $fn`; |
| 529 | + } elseif ( function_exists( "finfo_open" ) && function_exists( "finfo_file" ) ) { |
490 | 530 | |
491 | 531 | # This required the fileinfo extension by PECL, |
492 | 532 | # see http://pecl.php.net/package/fileinfo |
— | — | @@ -500,13 +540,12 @@ |
501 | 541 | $mime_magic_resource = finfo_open(FILEINFO_MIME); /* return mime type ala mimetype extension */ |
502 | 542 | |
503 | 543 | if ($mime_magic_resource) { |
504 | | - $m= finfo_file($mime_magic_resource, $file); |
505 | | - |
506 | | - finfo_close($mime_magic_resource); |
| 544 | + $m = finfo_file( $mime_magic_resource, $file ); |
| 545 | + finfo_close( $mime_magic_resource ); |
| 546 | + } else { |
| 547 | + wfDebug( __METHOD__.": finfo_open failed on ".FILEINFO_MIME."!\n" ); |
507 | 548 | } |
508 | | - else wfDebug("$fname: finfo_open failed on ".FILEINFO_MIME."!\n"); |
509 | | - } |
510 | | - else if (function_exists("mime_content_type")) { |
| 549 | + } elseif ( function_exists( "mime_content_type" ) ) { |
511 | 550 | |
512 | 551 | # NOTE: this function is available since PHP 4.3.0, but only if |
513 | 552 | # PHP was compiled with --with-mime-magic or, before 4.3.2, with --enable-mime-magic. |
— | — | @@ -517,93 +556,99 @@ |
518 | 557 | # Also note that this has been DEPRECATED in favor of the fileinfo extension by PECL, see above. |
519 | 558 | # see http://www.php.net/manual/en/ref.mime-magic.php for details. |
520 | 559 | |
521 | | - $m= mime_content_type($file); |
| 560 | + $m = mime_content_type($file); |
522 | 561 | |
523 | 562 | if ( $m == 'text/plain' ) { |
524 | 563 | // mime_content_type sometimes considers DJVU files to be text/plain. |
525 | 564 | $deja = new DjVuImage( $file ); |
526 | 565 | if( $deja->isValid() ) { |
527 | | - wfDebug("$fname: (re)detected $file as image/vnd.djvu\n"); |
| 566 | + wfDebug( __METHOD__.": (re)detected $file as image/vnd.djvu\n" ); |
528 | 567 | $m = 'image/vnd.djvu'; |
529 | 568 | } |
530 | 569 | } |
| 570 | + } else { |
| 571 | + wfDebug( __METHOD__.": no magic mime detector found!\n" ); |
531 | 572 | } |
532 | | - else wfDebug("$fname: no magic mime detector found!\n"); |
533 | 573 | |
534 | | - if ($m) { |
535 | | - #normalize |
536 | | - $m= preg_replace('![;, ].*$!','',$m); #strip charset, etc |
537 | | - $m= trim($m); |
538 | | - $m= strtolower($m); |
| 574 | + if ( $m ) { |
| 575 | + # normalize |
| 576 | + $m = preg_replace( '![;, ].*$!', '', $m ); #strip charset, etc |
| 577 | + $m = trim( $m ); |
| 578 | + $m = strtolower( $m ); |
539 | 579 | |
540 | | - if (strpos($m,'unknown')!==false) $m= NULL; |
541 | | - else { |
542 | | - wfDebug("$fname: magic mime type of $file: $m\n"); |
| 580 | + if ( strpos( $m, 'unknown' ) !== false ) { |
| 581 | + $m = NULL; |
| 582 | + } else { |
| 583 | + wfDebug( __METHOD__.": magic mime type of $file: $m\n" ); |
543 | 584 | return $m; |
544 | 585 | } |
545 | 586 | } |
546 | 587 | |
547 | | - #if still not known, use getimagesize to find out the type of image |
548 | | - #TODO: skip things that do not have a well-known image extension? Would that be safe? |
| 588 | + # if still not known, use getimagesize to find out the type of image |
| 589 | + # TODO: skip things that do not have a well-known image extension? Would that be safe? |
549 | 590 | wfSuppressWarnings(); |
550 | 591 | $gis = getimagesize( $file ); |
551 | 592 | wfRestoreWarnings(); |
552 | 593 | |
553 | | - $notAnImage= false; |
| 594 | + $notAnImage = false; |
554 | 595 | |
555 | | - if ($gis && is_array($gis) && $gis[2]) { |
556 | | - switch ($gis[2]) { |
557 | | - case IMAGETYPE_GIF: $m= "image/gif"; break; |
558 | | - case IMAGETYPE_JPEG: $m= "image/jpeg"; break; |
559 | | - case IMAGETYPE_PNG: $m= "image/png"; break; |
560 | | - case IMAGETYPE_SWF: $m= "application/x-shockwave-flash"; break; |
561 | | - case IMAGETYPE_PSD: $m= "application/photoshop"; break; |
562 | | - case IMAGETYPE_BMP: $m= "image/bmp"; break; |
563 | | - case IMAGETYPE_TIFF_II: $m= "image/tiff"; break; |
564 | | - case IMAGETYPE_TIFF_MM: $m= "image/tiff"; break; |
565 | | - case IMAGETYPE_JPC: $m= "image"; break; |
566 | | - case IMAGETYPE_JP2: $m= "image/jpeg2000"; break; |
567 | | - case IMAGETYPE_JPX: $m= "image/jpeg2000"; break; |
568 | | - case IMAGETYPE_JB2: $m= "image"; break; |
569 | | - case IMAGETYPE_SWC: $m= "application/x-shockwave-flash"; break; |
570 | | - case IMAGETYPE_IFF: $m= "image/vnd.xiff"; break; |
571 | | - case IMAGETYPE_WBMP: $m= "image/vnd.wap.wbmp"; break; |
572 | | - case IMAGETYPE_XBM: $m= "image/x-xbitmap"; break; |
| 596 | + if ( $gis && is_array($gis) && $gis[2] ) { |
| 597 | + |
| 598 | + switch ( $gis[2] ) { |
| 599 | + case IMAGETYPE_GIF: $m = "image/gif"; break; |
| 600 | + case IMAGETYPE_JPEG: $m = "image/jpeg"; break; |
| 601 | + case IMAGETYPE_PNG: $m = "image/png"; break; |
| 602 | + case IMAGETYPE_SWF: $m = "application/x-shockwave-flash"; break; |
| 603 | + case IMAGETYPE_PSD: $m = "application/photoshop"; break; |
| 604 | + case IMAGETYPE_BMP: $m = "image/bmp"; break; |
| 605 | + case IMAGETYPE_TIFF_II: $m = "image/tiff"; break; |
| 606 | + case IMAGETYPE_TIFF_MM: $m = "image/tiff"; break; |
| 607 | + case IMAGETYPE_JPC: $m = "image"; break; |
| 608 | + case IMAGETYPE_JP2: $m = "image/jpeg2000"; break; |
| 609 | + case IMAGETYPE_JPX: $m = "image/jpeg2000"; break; |
| 610 | + case IMAGETYPE_JB2: $m = "image"; break; |
| 611 | + case IMAGETYPE_SWC: $m = "application/x-shockwave-flash"; break; |
| 612 | + case IMAGETYPE_IFF: $m = "image/vnd.xiff"; break; |
| 613 | + case IMAGETYPE_WBMP: $m = "image/vnd.wap.wbmp"; break; |
| 614 | + case IMAGETYPE_XBM: $m = "image/x-xbitmap"; break; |
573 | 615 | } |
574 | 616 | |
575 | | - if ($m) { |
576 | | - wfDebug("$fname: image mime type of $file: $m\n"); |
| 617 | + if ( $m ) { |
| 618 | + wfDebug( __METHOD__.": image mime type of $file: $m\n" ); |
577 | 619 | return $m; |
578 | 620 | } |
579 | | - else $notAnImage= true; |
| 621 | + else { |
| 622 | + $notAnImage = true; |
| 623 | + } |
580 | 624 | } else { |
581 | 625 | // Also test DjVu |
582 | 626 | $deja = new DjVuImage( $file ); |
583 | 627 | if( $deja->isValid() ) { |
584 | | - wfDebug("$fname: detected $file as image/vnd.djvu\n"); |
| 628 | + wfDebug( __METHOD__.": detected $file as image/vnd.djvu\n" ); |
585 | 629 | return 'image/vnd.djvu'; |
586 | 630 | } |
587 | 631 | } |
588 | 632 | |
589 | | - #if desired, look at extension as a fallback. |
590 | | - if ($useExt) { |
| 633 | + # if desired, look at extension as a fallback. |
| 634 | + if ( $ext === true ) { |
591 | 635 | $i = strrpos( $file, '.' ); |
592 | | - $e= strtolower( $i ? substr( $file, $i + 1 ) : '' ); |
| 636 | + $ext = strtolower( $i ? substr( $file, $i + 1 ) : '' ); |
| 637 | + } |
| 638 | + if ( $ext ) { |
| 639 | + $m = $this->guessTypesForExtension( $ext ); |
593 | 640 | |
594 | | - $m= $this->guessTypesForExtension($e); |
595 | | - |
596 | | - #TODO: if $notAnImage is set, do not trust the file extension if |
| 641 | + # TODO: if $notAnImage is set, do not trust the file extension if |
597 | 642 | # the results is one of the image types that should have been recognized |
598 | 643 | # by getimagesize |
599 | 644 | |
600 | | - if ($m) { |
601 | | - wfDebug("$fname: extension mime type of $file: $m\n"); |
| 645 | + if ( $m ) { |
| 646 | + wfDebug( __METHOD__.": extension mime type of $file: $m\n" ); |
602 | 647 | return $m; |
603 | 648 | } |
604 | 649 | } |
605 | 650 | |
606 | 651 | #unknown type |
607 | | - wfDebug("$fname: failed to guess mime type for $file!\n"); |
| 652 | + wfDebug( __METHOD__.": failed to guess mime type for $file!\n" ); |
608 | 653 | return "unknown/unknown"; |
609 | 654 | } |
610 | 655 | |
— | — | @@ -623,61 +668,61 @@ |
624 | 669 | * |
625 | 670 | * @return (int?string?) a value to be used with the MEDIATYPE_xxx constants. |
626 | 671 | */ |
627 | | - function getMediaType($path=NULL,$mime=NULL) { |
| 672 | + function getMediaType( $path = NULL, $mime = NULL ) { |
628 | 673 | if( !$mime && !$path ) return MEDIATYPE_UNKNOWN; |
629 | 674 | |
630 | | - #if mime type is unknown, guess it |
631 | | - if( !$mime ) $mime= $this->guessMimeType($path,false); |
| 675 | + # If mime type is unknown, guess it |
| 676 | + if( !$mime ) $mime = $this->guessMimeType( $path, false ); |
632 | 677 | |
633 | | - #special code for ogg - detect if it's video (theora), |
634 | | - #else label it as sound. |
635 | | - if( $mime=="application/ogg" && file_exists($path) ) { |
| 678 | + # Special code for ogg - detect if it's video (theora), |
| 679 | + # else label it as sound. |
| 680 | + if( $mime == "application/ogg" && file_exists( $path ) ) { |
636 | 681 | |
637 | 682 | // Read a chunk of the file |
638 | 683 | $f = fopen( $path, "rt" ); |
639 | | - if( !$f ) return MEDIATYPE_UNKNOWN; |
| 684 | + if ( !$f ) return MEDIATYPE_UNKNOWN; |
640 | 685 | $head = fread( $f, 256 ); |
641 | 686 | fclose( $f ); |
642 | 687 | |
643 | | - $head= strtolower( $head ); |
| 688 | + $head = strtolower( $head ); |
644 | 689 | |
645 | | - #This is an UGLY HACK, file should be parsed correctly |
646 | | - if( strpos($head,'theora')!==false ) return MEDIATYPE_VIDEO; |
647 | | - elseif( strpos($head,'vorbis')!==false ) return MEDIATYPE_AUDIO; |
648 | | - elseif( strpos($head,'flac')!==false ) return MEDIATYPE_AUDIO; |
649 | | - elseif( strpos($head,'speex')!==false ) return MEDIATYPE_AUDIO; |
| 690 | + # This is an UGLY HACK, file should be parsed correctly |
| 691 | + if ( strpos( $head, 'theora' ) !== false ) return MEDIATYPE_VIDEO; |
| 692 | + elseif ( strpos( $head, 'vorbis' ) !== false ) return MEDIATYPE_AUDIO; |
| 693 | + elseif ( strpos( $head, 'flac' ) !== false ) return MEDIATYPE_AUDIO; |
| 694 | + elseif ( strpos( $head, 'speex' ) !== false ) return MEDIATYPE_AUDIO; |
650 | 695 | else return MEDIATYPE_MULTIMEDIA; |
651 | 696 | } |
652 | 697 | |
653 | | - #check for entry for full mime type |
| 698 | + # check for entry for full mime type |
654 | 699 | if( $mime ) { |
655 | | - $type= $this->findMediaType($mime); |
656 | | - if( $type!==MEDIATYPE_UNKNOWN ) return $type; |
| 700 | + $type = $this->findMediaType( $mime ); |
| 701 | + if( $type !== MEDIATYPE_UNKNOWN ) return $type; |
657 | 702 | } |
658 | 703 | |
659 | | - #check for entry for file extension |
660 | | - $e= NULL; |
661 | | - if( $path ) { |
| 704 | + # Check for entry for file extension |
| 705 | + $e = NULL; |
| 706 | + if ( $path ) { |
662 | 707 | $i = strrpos( $path, '.' ); |
663 | | - $e= strtolower( $i ? substr( $path, $i + 1 ) : '' ); |
| 708 | + $e = strtolower( $i ? substr( $path, $i + 1 ) : '' ); |
664 | 709 | |
665 | | - #TODO: look at multi-extension if this fails, parse from full path |
| 710 | + # TODO: look at multi-extension if this fails, parse from full path |
666 | 711 | |
667 | | - $type= $this->findMediaType('.'.$e); |
668 | | - if( $type!==MEDIATYPE_UNKNOWN ) return $type; |
| 712 | + $type = $this->findMediaType( '.' . $e ); |
| 713 | + if ( $type !== MEDIATYPE_UNKNOWN ) return $type; |
669 | 714 | } |
670 | 715 | |
671 | | - #check major mime type |
| 716 | + # Check major mime type |
672 | 717 | if( $mime ) { |
673 | | - $i= strpos($mime,'/'); |
| 718 | + $i = strpos( $mime, '/' ); |
674 | 719 | if( $i !== false ) { |
675 | | - $major= substr($mime,0,$i); |
676 | | - $type= $this->findMediaType($major); |
677 | | - if( $type!==MEDIATYPE_UNKNOWN ) return $type; |
| 720 | + $major = substr( $mime, 0, $i ); |
| 721 | + $type = $this->findMediaType( $major ); |
| 722 | + if( $type !== MEDIATYPE_UNKNOWN ) return $type; |
678 | 723 | } |
679 | 724 | } |
680 | 725 | |
681 | | - if( !$type ) $type= MEDIATYPE_UNKNOWN; |
| 726 | + if( !$type ) $type = MEDIATYPE_UNKNOWN; |
682 | 727 | |
683 | 728 | return $type; |
684 | 729 | } |
— | — | @@ -689,25 +734,26 @@ |
690 | 735 | * This funktion relies on the mapping defined by $this->mMediaTypes |
691 | 736 | * @access private |
692 | 737 | */ |
693 | | - function findMediaType($extMime) { |
| 738 | + function findMediaType( $extMime ) { |
| 739 | + if ( strpos( $extMime, '.' ) === 0 ) { #if it's an extension, look up the mime types |
| 740 | + $m = $this->getTypesForExtension( substr( $extMime, 1 ) ); |
| 741 | + if ( !$m ) return MEDIATYPE_UNKNOWN; |
694 | 742 | |
695 | | - if (strpos($extMime,'.')===0) { #if it's an extension, look up the mime types |
696 | | - $m= $this->getTypesForExtension(substr($extMime,1)); |
697 | | - if (!$m) return MEDIATYPE_UNKNOWN; |
698 | | - |
699 | | - $m= explode(' ',$m); |
700 | | - } |
701 | | - else { #normalize mime type |
702 | | - if (isset($this->mMimeTypeAliases[$extMime])) { |
703 | | - $extMime= $this->mMimeTypeAliases[$extMime]; |
| 743 | + $m = explode( ' ', $m ); |
| 744 | + } else { |
| 745 | + # Normalize mime type |
| 746 | + if ( isset( $this->mMimeTypeAliases[$extMime] ) ) { |
| 747 | + $extMime = $this->mMimeTypeAliases[$extMime]; |
704 | 748 | } |
705 | 749 | |
706 | | - $m= array($extMime); |
| 750 | + $m = array($extMime); |
707 | 751 | } |
708 | 752 | |
709 | | - foreach ($m as $mime) { |
710 | | - foreach ($this->mMediaTypes as $type => $codes) { |
711 | | - if (in_array($mime,$codes,true)) return $type; |
| 753 | + foreach ( $m as $mime ) { |
| 754 | + foreach ( $this->mMediaTypes as $type => $codes ) { |
| 755 | + if ( in_array($mime, $codes, true ) ) { |
| 756 | + return $type; |
| 757 | + } |
712 | 758 | } |
713 | 759 | } |
714 | 760 | |
Index: branches/liquidthreads/includes/Parser.php |
— | — | @@ -2455,25 +2455,25 @@ |
2456 | 2456 | case 'localday2': |
2457 | 2457 | return $varCache[$index] = $wgContLang->formatNum( $localDay2 ); |
2458 | 2458 | case 'pagename': |
2459 | | - return $this->mTitle->getText(); |
| 2459 | + return wfEscapeWikiText( $this->mTitle->getText() ); |
2460 | 2460 | case 'pagenamee': |
2461 | 2461 | return $this->mTitle->getPartialURL(); |
2462 | 2462 | case 'fullpagename': |
2463 | | - return $this->mTitle->getPrefixedText(); |
| 2463 | + return wfEscapeWikiText( $this->mTitle->getPrefixedText() ); |
2464 | 2464 | case 'fullpagenamee': |
2465 | 2465 | return $this->mTitle->getPrefixedURL(); |
2466 | 2466 | case 'subpagename': |
2467 | | - return $this->mTitle->getSubpageText(); |
| 2467 | + return wfEscapeWikiText( $this->mTitle->getSubpageText() ); |
2468 | 2468 | case 'subpagenamee': |
2469 | 2469 | return $this->mTitle->getSubpageUrlForm(); |
2470 | 2470 | case 'basepagename': |
2471 | | - return $this->mTitle->getBaseText(); |
| 2471 | + return wfEscapeWikiText( $this->mTitle->getBaseText() ); |
2472 | 2472 | case 'basepagenamee': |
2473 | 2473 | return wfUrlEncode( str_replace( ' ', '_', $this->mTitle->getBaseText() ) ); |
2474 | 2474 | case 'talkpagename': |
2475 | 2475 | if( $this->mTitle->canTalk() ) { |
2476 | 2476 | $talkPage = $this->mTitle->getTalkPage(); |
2477 | | - return $talkPage->getPrefixedText(); |
| 2477 | + return wfEscapeWikiText( $talkPage->getPrefixedText() ); |
2478 | 2478 | } else { |
2479 | 2479 | return ''; |
2480 | 2480 | } |
— | — | @@ -2486,7 +2486,7 @@ |
2487 | 2487 | } |
2488 | 2488 | case 'subjectpagename': |
2489 | 2489 | $subjPage = $this->mTitle->getSubjectPage(); |
2490 | | - return $subjPage->getPrefixedText(); |
| 2490 | + return wfEscapeWikiText( $subjPage->getPrefixedText() ); |
2491 | 2491 | case 'subjectpagenamee': |
2492 | 2492 | $subjPage = $this->mTitle->getSubjectPage(); |
2493 | 2493 | return $subjPage->getPrefixedUrl(); |
Index: branches/liquidthreads/includes/SpecialContributions.php |
— | — | @@ -138,6 +138,13 @@ |
139 | 139 | |
140 | 140 | $comment = $sk->revComment( $rev ); |
141 | 141 | $d = $wgLang->timeanddate( wfTimestamp( TS_MW, $row->rev_timestamp ), true ); |
| 142 | + |
| 143 | + if( $this->target == 'newbies' ) { |
| 144 | + $userlink = ' . . ' . $sk->userLink( $row->rev_user, $row->rev_user_text ); |
| 145 | + $userlink .= ' (' . $sk->userTalkLink( $row->rev_user, $row->rev_user_text ) . ') '; |
| 146 | + } else { |
| 147 | + $userlink = ''; |
| 148 | + } |
142 | 149 | |
143 | 150 | if( $rev->isDeleted( Revision::DELETED_TEXT ) ) { |
144 | 151 | $d = '<span class="history-deleted">' . $d . '</span>'; |
— | — | @@ -149,7 +156,7 @@ |
150 | 157 | $mflag = ''; |
151 | 158 | } |
152 | 159 | |
153 | | - $ret = "{$d} {$histlink} {$difftext} {$mflag} {$link} {$comment} {$topmarktext}"; |
| 160 | + $ret = "{$d} {$histlink} {$difftext} {$mflag} {$link}{$userlink}{$comment} {$topmarktext}"; |
154 | 161 | if( $rev->isDeleted( Revision::DELETED_TEXT ) ) { |
155 | 162 | $ret .= ' ' . wfMsgHtml( 'deletedrev' ); |
156 | 163 | } |
Index: branches/liquidthreads/includes/filerepo/File.php |
— | — | @@ -1001,9 +1001,13 @@ |
1002 | 1002 | } |
1003 | 1003 | |
1004 | 1004 | /** |
1005 | | - * Get an associative array containing information about a file in the local filesystem |
| 1005 | + * Get an associative array containing information about a file in the local filesystem\ |
| 1006 | + * |
| 1007 | + * @param string $path Absolute local filesystem path |
| 1008 | + * @param mixed $ext The file extension, or true to extract it from the filename. |
| 1009 | + * Set it to false to ignore the extension. |
1006 | 1010 | */ |
1007 | | - static function getPropsFromPath( $path ) { |
| 1011 | + static function getPropsFromPath( $path, $ext = true ) { |
1008 | 1012 | wfProfileIn( __METHOD__ ); |
1009 | 1013 | wfDebug( __METHOD__.": Getting file info for $path\n" ); |
1010 | 1014 | $info = array( 'fileExists' => file_exists( $path ) ); |
— | — | @@ -1011,7 +1015,7 @@ |
1012 | 1016 | if ( $info['fileExists'] ) { |
1013 | 1017 | $magic = MimeMagic::singleton(); |
1014 | 1018 | |
1015 | | - $info['mime'] = $magic->guessMimeType( $path, true ); |
| 1019 | + $info['mime'] = $magic->guessMimeType( $path, $ext ); |
1016 | 1020 | list( $info['major_mime'], $info['minor_mime'] ) = self::splitMime( $info['mime'] ); |
1017 | 1021 | $info['media_type'] = $magic->getMediaType( $path, $info['mime'] ); |
1018 | 1022 | |
Index: branches/liquidthreads/includes/SpecialUpload.php |
— | — | @@ -108,7 +108,6 @@ |
109 | 109 | $this->mFileSize = $request->getFileSize( 'wpUploadFile' ); |
110 | 110 | $this->mSrcName = $request->getFileName( 'wpUploadFile' ); |
111 | 111 | $this->mCurlError = $request->getUploadError( 'wpUploadFile' ); |
112 | | - $this->mFileProps = File::getPropsFromPath( $this->mTempPath ); |
113 | 112 | $this->mSessionKey = false; |
114 | 113 | $this->mStashed = false; |
115 | 114 | $this->mRemoveTempFile = false; // PHP will handle this |
— | — | @@ -360,6 +359,7 @@ |
361 | 360 | * probably not accept it. |
362 | 361 | */ |
363 | 362 | if( !$this->mStashed ) { |
| 363 | + $this->mFileProps = File::getPropsFromPath( $this->mTempPath, $finalExt ); |
364 | 364 | $this->checkMacBinary(); |
365 | 365 | $veri = $this->verify( $this->mTempPath, $finalExt ); |
366 | 366 | |
Index: branches/liquidthreads/includes/api/ApiQueryInfo.php |
— | — | @@ -36,7 +36,7 @@ |
37 | 37 | class ApiQueryInfo extends ApiQueryBase { |
38 | 38 | |
39 | 39 | public function __construct($query, $moduleName) { |
40 | | - parent :: __construct($query, $moduleName); |
| 40 | + parent :: __construct($query, $moduleName, 'in'); |
41 | 41 | } |
42 | 42 | |
43 | 43 | public function requestExtraData($pageSet) { |
— | — | @@ -50,6 +50,13 @@ |
51 | 51 | |
52 | 52 | public function execute() { |
53 | 53 | |
| 54 | + $params = $this->extractRequestParams(); |
| 55 | + $fld_protection = false; |
| 56 | + if(!is_null($params['prop'])) { |
| 57 | + $prop = array_flip($params['prop']); |
| 58 | + $fld_protection = isset($prop['protection']); |
| 59 | + } |
| 60 | + |
54 | 61 | $pageSet = $this->getPageSet(); |
55 | 62 | $titles = $pageSet->getGoodTitles(); |
56 | 63 | $result = $this->getResult(); |
— | — | @@ -61,6 +68,23 @@ |
62 | 69 | $pageLatest = $pageSet->getCustomField('page_latest'); |
63 | 70 | $pageLength = $pageSet->getCustomField('page_len'); |
64 | 71 | |
| 72 | + if ($fld_protection) { |
| 73 | + $this->addTables('page_restrictions'); |
| 74 | + $this->addFields(array('pr_page', 'pr_type', 'pr_level', 'pr_expiry')); |
| 75 | + $this->addWhereFld('pr_page', array_keys($titles)); |
| 76 | + |
| 77 | + $db = $this->getDB(); |
| 78 | + $res = $this->select(__METHOD__); |
| 79 | + while($row = $db->fetchObject($res)) { |
| 80 | + $protections[$row->pr_page][] = array( |
| 81 | + 'type' => $row->pr_type, |
| 82 | + 'level' => $row->pr_level, |
| 83 | + 'expiry' => Block::decodeExpiry( $row->pr_expiry, TS_ISO_8601 ) |
| 84 | + ); |
| 85 | + } |
| 86 | + $db->freeResult($res); |
| 87 | + } |
| 88 | + |
65 | 89 | foreach ( $titles as $pageid => $unused ) { |
66 | 90 | $pageInfo = array ( |
67 | 91 | 'touched' => wfTimestamp(TS_ISO_8601, $pageTouched[$pageid]), |
— | — | @@ -75,6 +99,15 @@ |
76 | 100 | if ($pageIsNew[$pageid]) |
77 | 101 | $pageInfo['new'] = ''; |
78 | 102 | |
| 103 | + if($fld_protection) { |
| 104 | + if (isset($protections[$pageid])) { |
| 105 | + $pageInfo['protection'] = $protections[$pageid]; |
| 106 | + $result->setIndexedTagName($pageInfo['protection'], 'pr'); |
| 107 | + } else { |
| 108 | + $pageInfo['protection'] = array(); |
| 109 | + } |
| 110 | + } |
| 111 | + |
79 | 112 | $result->addValue(array ( |
80 | 113 | 'query', |
81 | 114 | 'pages' |
— | — | @@ -82,13 +115,35 @@ |
83 | 116 | } |
84 | 117 | } |
85 | 118 | |
| 119 | + protected function getAllowedParams() { |
| 120 | + return array ( |
| 121 | + 'prop' => array ( |
| 122 | + ApiBase :: PARAM_DFLT => NULL, |
| 123 | + ApiBase :: PARAM_ISMULTI => true, |
| 124 | + ApiBase :: PARAM_TYPE => array ( |
| 125 | + 'protection' |
| 126 | + )) |
| 127 | + ); |
| 128 | + } |
| 129 | + |
| 130 | + protected function getParamDescription() { |
| 131 | + return array ( |
| 132 | + 'prop' => array ( |
| 133 | + 'Which additional properties to get:', |
| 134 | + ' "protection" - List the protection level of each page' |
| 135 | + ) |
| 136 | + ); |
| 137 | + } |
| 138 | + |
| 139 | + |
86 | 140 | protected function getDescription() { |
87 | 141 | return 'Get basic page information such as namespace, title, last touched date, ...'; |
88 | 142 | } |
89 | 143 | |
90 | 144 | protected function getExamples() { |
91 | 145 | return array ( |
92 | | - 'api.php?action=query&prop=info&titles=Main%20Page' |
| 146 | + 'api.php?action=query&prop=info&titles=Main%20Page', |
| 147 | + 'api.php?action=query&prop=info&inprop=protection&titles=Main%20Page' |
93 | 148 | ); |
94 | 149 | } |
95 | 150 | |
Index: branches/liquidthreads/includes/SpecialStatistics.php |
— | — | @@ -24,6 +24,10 @@ |
25 | 25 | |
26 | 26 | $admins = $dbr->selectField( 'user_groups', 'COUNT(*)', array( 'ug_group' => 'sysop' ), $fname ); |
27 | 27 | $numJobs = $dbr->estimateRowCount('job'); |
| 28 | + /* Zero rows still do single row read for row that doesn't exist, but people are annoyed by that */ |
| 29 | + if ($numJobs == 1) { |
| 30 | + $numJobs = 0; |
| 31 | + } |
28 | 32 | |
29 | 33 | if ($action == 'raw') { |
30 | 34 | $wgOut->disable(); |
Index: branches/liquidthreads/includes/Block.php |
— | — | @@ -628,11 +628,11 @@ |
629 | 629 | /** |
630 | 630 | * Decode expiry which has come from the DB |
631 | 631 | */ |
632 | | - static function decodeExpiry( $expiry ) { |
| 632 | + static function decodeExpiry( $expiry, $timestampType = TS_MW ) { |
633 | 633 | if ( $expiry == '' || $expiry == Block::infinity() ) { |
634 | 634 | return Block::infinity(); |
635 | 635 | } else { |
636 | | - return wfTimestamp( TS_MW, $expiry ); |
| 636 | + return wfTimestamp( $timestampType, $expiry ); |
637 | 637 | } |
638 | 638 | } |
639 | 639 | |
Index: branches/liquidthreads/languages/messages/MessagesEn.php |
— | — | @@ -2426,6 +2426,11 @@ |
2427 | 2427 | 'variantname-kk-cn' => 'kk-cn', # only translate this message to other languages if you have to change it |
2428 | 2428 | 'variantname-kk' => 'kk', # only translate this message to other languages if you have to change it |
2429 | 2429 | |
| 2430 | +# Variants for Kurdish language |
| 2431 | +'variantname-ku-latn' => 'ku-latn', # only translate this message to other languages if you have to change it |
| 2432 | +'variantname-ku-arab' => 'ku-arab', # only translate this message to other languages if you have to change it |
| 2433 | +'variantname-ku' => 'ku', # only translate this message to other languages if you have to change it |
| 2434 | + |
2430 | 2435 | 'passwordtooshort' => 'Your password is invalid or too short. It must have at least $1 characters and be different from your username.', |
2431 | 2436 | |
2432 | 2437 | # Metadata |
Index: branches/liquidthreads/languages/messages/MessagesKu_latn.php |
— | — | @@ -0,0 +1,940 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Kurdish (Latin) |
| 5 | + * |
| 6 | + * @addtogroup Language |
| 7 | + * |
| 8 | + */ |
| 9 | + |
| 10 | +$namespaceNames = array( |
| 11 | + NS_MEDIA => 'Medya', |
| 12 | + NS_SPECIAL => 'Taybet', |
| 13 | + NS_MAIN => '', |
| 14 | + NS_TALK => 'Nîqaş', |
| 15 | + NS_USER => 'Bikarhêner', |
| 16 | + NS_USER_TALK => 'Bikarhêner_nîqaş', |
| 17 | + # NS_PROJECT set by $wgMetaNamespace |
| 18 | + NS_PROJECT_TALK => '$1_nîqaş', |
| 19 | + NS_IMAGE => 'Wêne', |
| 20 | + NS_IMAGE_TALK => 'Wêne_nîqaş', |
| 21 | + NS_MEDIAWIKI => 'MediaWiki', |
| 22 | + NS_MEDIAWIKI_TALK => 'MediaWiki_nîqaş', |
| 23 | + NS_TEMPLATE => 'Şablon', |
| 24 | + NS_TEMPLATE_TALK => 'Şablon_nîqaş', |
| 25 | + NS_HELP => 'Alîkarî', |
| 26 | + NS_HELP_TALK => 'Alîkarî_nîqaş', |
| 27 | + NS_CATEGORY => 'Kategorî', |
| 28 | + NS_CATEGORY_TALK => 'Kategorî_nîqaş' |
| 29 | +); |
| 30 | + |
| 31 | +$messages = array( |
| 32 | +# User preference toggles |
| 33 | +'tog-watchlisthideminor' => 'Xeyrandinên biçûk pêşneke', |
| 34 | + |
| 35 | +'underline-always' => 'Tim', |
| 36 | +'underline-never' => 'Ne carekê', |
| 37 | + |
| 38 | +'skinpreview' => '(Pêşdîtin)', |
| 39 | + |
| 40 | +# Dates |
| 41 | +'sunday' => 'yekşem', |
| 42 | +'monday' => 'duşem', |
| 43 | +'tuesday' => 'Sêşem', |
| 44 | +'wednesday' => 'Çarşem', |
| 45 | +'thursday' => 'Pêncşem', |
| 46 | +'friday' => 'În', |
| 47 | +'saturday' => 'şemî', |
| 48 | +'wed' => 'Çarş', |
| 49 | +'january' => 'Rêbendan', |
| 50 | +'february' => 'reşemî', |
| 51 | +'march' => 'adar', |
| 52 | +'april' => 'avrêl', |
| 53 | +'may_long' => 'gulan', |
| 54 | +'june' => 'pûşper', |
| 55 | +'july' => 'Tîrmeh', |
| 56 | +'august' => 'tebax', |
| 57 | +'september' => 'rezber', |
| 58 | +'october' => 'kewçêr', |
| 59 | +'november' => 'sermawez', |
| 60 | +'december' => 'Berfanbar', |
| 61 | +'december-gen' => 'Berfanbar', |
| 62 | +'jan' => 'rêb', |
| 63 | +'feb' => 'reş', |
| 64 | +'mar' => 'adr', |
| 65 | +'apr' => 'avr', |
| 66 | +'may' => 'gul', |
| 67 | +'jun' => 'pşr', |
| 68 | +'jul' => 'tîr', |
| 69 | +'aug' => 'teb', |
| 70 | +'sep' => 'rez', |
| 71 | +'oct' => 'kew', |
| 72 | +'nov' => 'ser', |
| 73 | +'dec' => 'ber', |
| 74 | + |
| 75 | +# Bits of text used by many pages |
| 76 | +'categories' => 'Kategorî', |
| 77 | +'pagecategories' => '$1 Kategorîyan', |
| 78 | +'category_header' => 'Gotarên di kategoriya "$1" de', |
| 79 | +'subcategories' => 'Binekategorî', |
| 80 | + |
| 81 | +'about' => 'Der barê', |
| 82 | +'article' => 'Gotar', |
| 83 | +'cancel' => 'Betal', |
| 84 | +'qbfind' => 'Bibîne', |
| 85 | +'qbbrowse' => 'Bigere', |
| 86 | +'qbedit' => 'Biguherîne', |
| 87 | +'qbpageoptions' => 'Ev rûpel', |
| 88 | +'qbmyoptions' => 'Rûpelên min', |
| 89 | +'qbspecialpages' => 'Rûpelên taybet', |
| 90 | +'moredotdotdot' => 'Zêde...', |
| 91 | +'mypage' => 'Rûpela min', |
| 92 | +'mytalk' => 'Rûpela guftûgo ya min', |
| 93 | +'anontalk' => 'Guftûgo ji bo vê IPê', |
| 94 | +'navigation' => 'Navîgasyon', |
| 95 | + |
| 96 | +'errorpagetitle' => 'Çewtî (Error)', |
| 97 | +'returnto' => 'Bizivire $1.', |
| 98 | +'tagline' => 'Ji {{SITENAME}}', |
| 99 | +'help' => 'Alîkarî', |
| 100 | +'search' => 'Lêbigere', |
| 101 | +'searchbutton' => 'Lêbigere', |
| 102 | +'go' => 'Gotar', |
| 103 | +'searcharticle' => 'Gotar', |
| 104 | +'history' => 'Dîroka rûpelê', |
| 105 | +'history_short' => 'Dîrok / Nivîskar', |
| 106 | +'info_short' => 'Zanyarî', |
| 107 | +'printableversion' => 'Versiyon ji bo çapkirinê', |
| 108 | +'print' => 'Çap', |
| 109 | +'edit' => 'Biguherîne', |
| 110 | +'editthispage' => 'Vê rûpelê biguherîne', |
| 111 | +'delete' => 'Jê bibe', |
| 112 | +'deletethispage' => 'Vê rûpelê jê bibe', |
| 113 | +'protect' => 'Biparêze', |
| 114 | +'protectthispage' => 'Vê rûpelê biparêze', |
| 115 | +'unprotect' => 'Parastinê rake', |
| 116 | +'unprotectthispage' => 'Parastina vê rûpelê rake', |
| 117 | +'newpage' => 'Rûpela nû', |
| 118 | +'talkpage' => 'Vê rûpelê guftûgo bike', |
| 119 | +'specialpage' => 'Rûpela taybet', |
| 120 | +'personaltools' => 'Amûrên şexsî', |
| 121 | +'postcomment' => 'Şîroveyekê bişîne', |
| 122 | +'articlepage' => 'Li naveroka rûpelê binêre', |
| 123 | +'talk' => 'Guftûgo (nîqaş)', |
| 124 | +'views' => 'Dîtin', |
| 125 | +'toolbox' => 'Qutiya amûran', |
| 126 | +'userpage' => 'Rûpelê vê/vî bikarhênerê/î temaşe bike', |
| 127 | +'templatepage' => 'Rûpelê şablonê seke', |
| 128 | +'viewhelppage' => 'Rûpelê alîkarîyê seke', |
| 129 | +'viewtalkpage' => 'Guftûgoyê temaşe bike', |
| 130 | +'otherlanguages' => 'Zimanên din', |
| 131 | +'redirectedfrom' => '(Hat ragihandin ji $1)', |
| 132 | +'lastmodifiedat' => 'Ev rûpel carî dawî di $2, $1 de hat guherandin.', # $1 date, $2 time |
| 133 | +'viewcount' => 'Ev rûpel $1 car hat xwestin.', |
| 134 | +'protectedpage' => 'Rûpela parastî', |
| 135 | + |
| 136 | +# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations). |
| 137 | +'aboutsite' => 'Der barê {{SITENAME}}', |
| 138 | +'aboutpage' => '{{SITENAME}}:Der barê', |
| 139 | +'bugreports' => 'Raporên çewtiyan', |
| 140 | +'bugreportspage' => '{{ns:project}}:Raporên çewtiyan', |
| 141 | +'copyright' => 'Ji bo naverokê $1 derbas dibe.', |
| 142 | +'copyrightpagename' => 'Mafên nivîsanê', |
| 143 | +'copyrightpage' => '{{ns:project}}:Mafên nivîsanê', |
| 144 | +'currentevents' => 'Bûyerên rojane', |
| 145 | +'currentevents-url' => 'Bûyerên rojane', |
| 146 | +'disclaimers' => 'Ferexetname', |
| 147 | +'edithelp' => 'Alîkarî ji bo guherandin', |
| 148 | +'edithelppage' => '{{ns:project}}: Rûpelekê çawa biguherînim', |
| 149 | +'faq' => 'Pirs û Bersîv (FAQ)', |
| 150 | +'faqpage' => '{{SITENAME}}: Pirs û Bersîv', |
| 151 | +'helppage' => '{{SITENAME}}: Alîkarî', |
| 152 | +'mainpage' => 'Destpêk', |
| 153 | +'portal' => 'Portala komê', |
| 154 | +'portal-url' => '{{ns:project}}:Portala komê', |
| 155 | +'sitesupport' => 'Ji bo Weqfa Wikimedia Beş', |
| 156 | + |
| 157 | +'badaccess' => 'Eror li bi dest Hînan', |
| 158 | + |
| 159 | +'versionrequired' => 'Verzîyonê $1 ji MediaWiki pêwîste', |
| 160 | +'versionrequiredtext' => 'Verzîyonê $1 ji MediaWiki pêwîste ji bo bikaranîna vê rûpelê. Li [[{{ns:special}}:version|versyon]] seke.', |
| 161 | + |
| 162 | +'ok' => 'Temam', |
| 163 | +'retrievedfrom' => 'Ji "$1" hatiye standin.', |
| 164 | +'youhavenewmessages' => '$1 yên te hene ($2).', |
| 165 | +'newmessageslink' => 'Nameyên nû', |
| 166 | +'newmessagesdifflink' => 'Ciyawazî ji revîzyona berê re', |
| 167 | +'editsection' => 'biguherîne', |
| 168 | +'editold' => 'biguherîne', |
| 169 | +'toc' => 'Tabloya Naverokê', |
| 170 | +'showtoc' => 'nîşan bide', |
| 171 | +'hidetoc' => 'veşêre', |
| 172 | +'viewdeleted' => 'Li $1 seke?', |
| 173 | + |
| 174 | +# Short words for each namespace, by default used in the 'article' tab in monobook |
| 175 | +'nstab-main' => 'Gotar', |
| 176 | +'nstab-user' => 'Bikarhêner', |
| 177 | +'nstab-media' => 'Medya', |
| 178 | +'nstab-special' => 'Taybet', |
| 179 | +'nstab-project' => 'Rûpela projeyê', |
| 180 | +'nstab-image' => 'Wêne', |
| 181 | +'nstab-mediawiki' => 'Peyam', |
| 182 | +'nstab-template' => 'Şablon', |
| 183 | +'nstab-help' => 'Alîkarî', |
| 184 | +'nstab-category' => 'Kategorî', |
| 185 | + |
| 186 | +# Main script and global functions |
| 187 | +'nosuchaction' => 'Çalakiyek bi vê rengê tune', |
| 188 | +'nosuchspecialpage' => 'Rûpeleke taybet bi vê rengê tune', |
| 189 | + |
| 190 | +# General errors |
| 191 | +'error' => 'Çewtî (Error)', |
| 192 | +'noconnect' => 'Bibexşîne! Çend pirsgrêkên teknîkî heye, girêdan ji pêşkêşvanê (suxrekirê, server) re niha ne gengaz e.<br />$1', |
| 193 | +'enterlockreason' => 'Hoyek ji bo bestin binav bike, herweha zemaneke mezende kirî ji bo helgirtina bestinê!', |
| 194 | +'filerenameerror' => 'Navê faylê "$1" nebû "$2".', |
| 195 | +'filenotfound' => 'Dosya bi navê "$1" nehat dîtin.', |
| 196 | +'badarticleerror' => 'Ev çalakî di vê rûpelê de nabe.', |
| 197 | +'badtitle' => 'Sernivîsa nebaş', |
| 198 | +'viewsource' => 'Çavkanî', |
| 199 | +'viewsourcefor' => 'ji $1 ra', |
| 200 | + |
| 201 | +# Login and logout pages |
| 202 | +'logouttitle' => 'Derketina bikarhêner', |
| 203 | +'logouttext' => 'Tu niha derketî (logged out). |
| 204 | + |
| 205 | +Tu dikarî di {{SITENAME}} da niha wekî bikarhênerekî nedîyarkirî bikarbînê, yan jî tu dikarî dîsa bi vî navê xwe yan navekî din wek bikarhêner têkevî {{SITENAME}}. Bila di bîra te de be ku gengaz e hin rûpel mîna ku tu hîn bi navê xwe qeyd kirîyî werin nîşandan, heta ku tu nîşanên çavlêgerandina (browser) xwe jênebî.', |
| 206 | +'welcomecreation' => '<h2>Bi xêr hatî, $1!</h2><p>Hesaba te hat afirandin. Tu dikarî niha tercîhên xwe eyar bikî.', |
| 207 | +'loginpagetitle' => 'Qeyda bikarhêner (User login)', |
| 208 | +'yourname' => 'Navê te wek bikarhêner (user name)', |
| 209 | +'yourpassword' => 'Şîfreya te (password)', |
| 210 | +'yourpasswordagain' => 'Şîfreya xwe careke din binîvîse', |
| 211 | +'remembermypassword' => 'Şifreya min di her rûniştdemê de bîne bîra xwe.', |
| 212 | +'yourdomainname' => 'Domaînê te', |
| 213 | +'loginproblem' => '<b>Di qeyda te (login) de pirsgirêkek derket.</b><br />Careke din biceribîne!', |
| 214 | +'alreadyloggedin' => '<font color=red><b>Bikarhêner $1, tu jixwe têketî!</b></font><br />', |
| 215 | +'login' => 'Têkeve (login)', |
| 216 | +'loginprompt' => "<b>Eger tu xwe nû qeyd bikî, nav û şîfreya xwe hilbijêre.</b> Ji bo xwe qeyd kirinê di {{SITENAME}} de divê ku ''cookies'' gengaz be.", |
| 217 | +'userlogin' => 'Têkeve an hesabeke nû çêke', |
| 218 | +'logout' => 'Derkeve (log out)', |
| 219 | +'userlogout' => 'Derkeve', |
| 220 | +'notloggedin' => 'Xwe qeyd nekir (not logged in)', |
| 221 | +'nologin' => 'Tu hêj ne endamî? $1.', |
| 222 | +'nologinlink' => 'Bibe endam', |
| 223 | +'createaccount' => 'Hesabê nû çêke', |
| 224 | +'gotaccount' => 'Hesabê te heye? $1.', |
| 225 | +'gotaccountlink' => 'Têkeve (login)', |
| 226 | +'createaccountmail' => 'bi e-name', |
| 227 | +'badretype' => 'Herdu şîfreyên ku te nivîsîn hevûdin nagirin.', |
| 228 | +'youremail' => 'E-maila te*', |
| 229 | +'username' => 'Navê bikarhêner:', |
| 230 | +'yourrealname' => 'Navê te yê rastî*', |
| 231 | +'yourlanguage' => 'Ziman', |
| 232 | +'yournick' => 'Leqeba te (ji bo îmza)', |
| 233 | +'loginerror' => 'Çewtî (Login error)', |
| 234 | +'nocookieslogin' => 'Ji bo qeydkirina bikarhêneran {{SITENAME}} "cookies" bikartîne. Te fonksîyona "cookies" girtîye. Xêra xwe kerema xwe "cookies" gengaz bike û careke din biceribîne.', |
| 235 | +'noname' => 'Navê ku te nivîsand derbas nabe.', |
| 236 | +'loginsuccesstitle' => 'Têketin serkeftî!', |
| 237 | +'loginsuccess' => 'Tu niha di {{SITENAME}} de qeydkirî yî wek "$1".', |
| 238 | +'nosuchuser' => 'Bikarhênera/ê bi navê "$1" tune. Navê rast binivîse an bi vê formê <b>hesabeke nû çêke</b>. (Ji bo hevalên nû "Têkeve" çênabe!)', |
| 239 | +'wrongpassword' => 'Şifreya ku te nivîsand şaşe. Ji kerema xwe careke din biceribîne.', |
| 240 | +'wrongpasswordempty' => 'Cîhê şîfreya te vala ye. Carekê din binivisîne.', |
| 241 | +'mailmypassword' => 'Şîfreyeke nû bi e-mail ji min re bişîne', |
| 242 | +'noemail' => 'Navnîşana bikarhênerê/î "$1" nehat tomar kirine.', |
| 243 | +'passwordsent' => 'Ji navnîşana e-mail ku ji bo "$1" hat tomarkirin şîfreyekê nû hat şandin. Vê bistîne û dîsa têkeve.', |
| 244 | +'acct_creation_throttle_hit' => 'Biborîne! Te hesab $1 vekirine. Tu êdî nikarî hesabên din vekî.', |
| 245 | + |
| 246 | +# Edit page toolbar |
| 247 | +'bold_sample' => 'Nivîsa estûr', |
| 248 | +'bold_tip' => 'Nivîsa estûr', |
| 249 | +'italic_sample' => 'Nivîsa xwar (îtalîk)', |
| 250 | +'italic_tip' => 'Nivîsa xwar (îtalîk)', |
| 251 | +'link_sample' => 'Navê lînkê', |
| 252 | +'link_tip' => 'Lînka hundir', |
| 253 | +'extlink_sample' => 'http://www.minak.com navê lînkê', |
| 254 | +'extlink_tip' => 'Lînka derve (http:// di destpêkê de ji bîr neke)', |
| 255 | +'headline_sample' => 'Nivîsara sernameyê', |
| 256 | +'headline_tip' => 'Sername asta 2', |
| 257 | +'nowiki_sample' => 'Nivîs ku nebe formatkirin', |
| 258 | +'image_sample' => 'Mînak.jpg', |
| 259 | +'image_tip' => 'Wêne li hundirê gotarê', |
| 260 | +'media_sample' => 'Mînak.ogg', |
| 261 | +'sig_tip' => 'Îmze û demxeya wext ya te', |
| 262 | +'hr_tip' => 'Rastexêza berwarî (kêm bi kar bîne)', |
| 263 | + |
| 264 | +# Edit pages |
| 265 | +'summary' => 'Kurte û çavkanî (Te çi kir?)', |
| 266 | +'subject' => 'Mijar/sernivîs', |
| 267 | +'minoredit' => 'Ev guheraniyekê biçûk e', |
| 268 | +'watchthis' => 'Vê gotarê bişopîne', |
| 269 | +'savearticle' => 'Rûpelê tomar bike', |
| 270 | +'preview' => 'Pêşdîtin', |
| 271 | +'showpreview' => 'Pêşdîtin', |
| 272 | +'showdiff' => 'Guherandinê nîşan bide', |
| 273 | +'anoneditwarning' => 'Tu ne têketî. Navnîşana IP ya te wê di dîroka guherandina vê rûpelê de bê tomar kirin.', |
| 274 | +'subject-preview' => 'Pêşdîtinê sernivîsê', |
| 275 | +'blockedtitle' => 'Bikarhêner hat asteng kirin', |
| 276 | +'blockedtext' => 'Navê bikarhêner an jî navnîşana IP ya te ji aliyê $1 hat asteng kirin. Sedema vê ev e:<br />\'\'$2\'\'<p>Tu dikarî bi $1 an yek ji [[{{SITENAME}}:Koordînator|koordînatorên din]] re ser vê blokê guftûgo bikî. |
| 277 | + |
| 278 | +Têbînî: Tu nikarî fonksiyona "Ji vê bikarhêner re E-mail bişîne" bi kar bîne eger te navnîşana email a xwe di "[[{{ns:special}}:Preferences|Tercîhên min]]" de nenivîsand. |
| 279 | + |
| 280 | +Navnîşana te ya IP $3 ye. Ji kerema xwe eger pirsên te hebe vê navnîşanê bibêje.', |
| 281 | +'whitelistedittitle' => 'Ji bo guherandinê vê gotarê tu gireke xwe qeydbikê.', |
| 282 | +'whitelistedittext' => 'Ji bo guherandinê vê gotarê tu gireke xwe [[{{ns:special}}:Userlogin|li vir]] qeydbikê.', |
| 283 | +'whitelistreadtitle' => 'Ji xandinê vê gotarê tu gireke xwe qeydbikê', |
| 284 | +'whitelistreadtext' => 'Ji bo xandinê vê gotarê tu gireke xwe [[{{ns:special}}:Userlogin|li vir]] qedybikê.', |
| 285 | +'whitelistacctitle' => 'Tu nikanê xwe qeydbikê.', |
| 286 | +'whitelistacctext' => 'To be allowed to create accounts in this wiki you have to [[{{ns:special}}:Userlogin|log]] in and have the appropriate permissions.', |
| 287 | +'loginreqtitle' => 'Têketin pêwîst e', |
| 288 | +'accmailtitle' => 'Şîfre hat şandin.', |
| 289 | +'accmailtext' => "Şîfreya '$1' hat şandin ji $2 re.", |
| 290 | +'newarticle' => '(Nû)', |
| 291 | +'newarticletext' => "<div style=\"font-size:small;color:#003333;border-width:1px;border-style:solid;border-color:#aaaaaa;padding:3px\"> |
| 292 | +Ev rûpel hîn tune. Eger tu bixwazî vê rûpelê çêkî, dest bi nivîsandinê bike û piştre qeyd bike. |
| 293 | +'''Wêrek be''', biceribîne!<br /> Ji bo alîkarî binêre: [[Help:Alîkarî|Alîkarî]].<br /> Eger tu bi şaştî hatî, bizivire rûpela berê. </div>", |
| 294 | +'anontalkpagetext' => "---- |
| 295 | +''Ev rûpela guftûgo ye ji bo bikarhênerên nediyarkirî ku hîn hesabekî xwe çênekirine an jî bikarnaînin. |
| 296 | +Ji ber vê yekê divê em wan bi navnîşana IP ya hejmarî nîşan bikin. Navnîşaneke IP dikare ji aliyê gelek kesan ve were bikaranîn. |
| 297 | +Heger tu bikarhênerekî nediyarkirî bî û bawerdikî ku nirxandinên bê peywend di der barê te de hatine kirin ji kerema xwe re |
| 298 | +[[{{ns:special}}:Userlogin|hesabekî xwe veke an jî têkeve Ensîklopediya Azad]] da ku tu xwe ji tevlîheviyên bi bikarhênerên din re biparêzî.''", |
| 299 | +'noarticletext' => 'Ev rûpel niha vala ye, tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigere]] an |
| 300 | +[{{fullurl:{{FULLPAGENAME}}|action=edit}} vê rûpelê biguherînî].', |
| 301 | +'usercssjsyoucanpreview' => "<strong>Tîp:</strong> 'Pêşdîtin' bikarwîne ji bo tu bibînê çawa CSS/JS'ê te yê nuh e berî tomarkirinê.", |
| 302 | +'usercsspreview' => "'''Zanibe ku tu bes CSS'ê xwe pêşdibînê, ew ne hatîye tomarkirin!'''", |
| 303 | +'updated' => '(Hat taze kirin)', |
| 304 | +'note' => '<strong>Not:</strong>', |
| 305 | +'previewnote' => 'Ji bîr neke ku ev bi tenê çavdêriyek e, ev rûpel hîn nehat qeyd kirin!', |
| 306 | +'editing' => 'Biguherîne: "$1"', |
| 307 | +'editinguser' => 'Biguherîne: "$1"', |
| 308 | +'editingsection' => 'Tê guherandin: $1 (beş)', |
| 309 | +'editingcomment' => '$1 (şîrove) tê guherandin.', |
| 310 | +'editconflict' => 'Têkçûna guherandinan: $1', |
| 311 | +'explainconflict' => 'Ji dema te dest bi guherandinê kir heta niha kesekê/î din ev rûpel guherand. |
| 312 | + |
| 313 | +Jor guhartoya heyî tê dîtîn. Guherandinên te jêr tên nîşan dan. Divê tû wan bikî yek. Heke niha tomar bikî, <b>bi tene</b> nivîsara qutiya jor wê bê tomarkirin. <p>', |
| 314 | +'yourtext' => 'Nivîsara te', |
| 315 | +'storedversion' => 'Versiyona qeydkirî', |
| 316 | +'editingold' => '<strong>HÎŞYAR: Tu ser revîsyoneke kevn a vê rûpelê dixebitî. |
| 317 | +Eger tu qeyd bikî, hemû guhertinên ji vê revîzyonê piştre winda dibin. |
| 318 | +</strong>', |
| 319 | +'yourdiff' => 'Ciyawazî', |
| 320 | +'copyrightwarning' => "Dîqat bike: Hemû tevkariyên {{SITENAME}} di bin $2 de tên belav kirin (ji bo hûragahiyan li $1 binêre). |
| 321 | +Eger tu nexwazî ku nivîsên te bê dilrehmî bên guherandin û li gora keyfa herkesî bên belavkirin, li vir neweşîne.<br /> |
| 322 | +Tu soz didî ku te ev bi xwe nivîsand an jî ji çavkaniyekê azad an geliyane ''(public domain)'' girt. <strong>BERHEMÊN MAFÊN WAN PARASTÎ (©) BÊ DESTÛR NEWEŞÎNE!</strong>", |
| 323 | +'longpagewarning' => "HIŞYAR: Drêjahiya vê rûpelê $1 kB (kilobayt) e, ev pir e. Dibe ku çend ''browser'' |
| 324 | +baş nikarin rûpelên ku ji 32 kB drêjtir in biguherînin. Eger tu vê rûpelê beş beş bikî gelo ne çêtir e?", |
| 325 | +'protectedpagewarning' => "'''ŞIYARÎ''': Ev rûpela tê parastin. Bi tenê bikarhênerên ku xwediyên mafên \"koordînator\" (sysop) ne dikarin vê rûpelê biguherînin.<br /> |
| 326 | + |
| 327 | +Zanibe tu bi qebûlkirinên rûpelên astengkirinê kardikê!", |
| 328 | +'templatesused' => 'Şablon di van rûpelan da tê bikaranîn', |
| 329 | +'templatesusedpreview' => 'Şablon yê di vê pêşdîtinê da tên bikaranîn:', |
| 330 | +'templatesusedsection' => 'Şablon yê di vê perçê da tên bikaranîn:', |
| 331 | +'template-protected' => '(tê parastin)', |
| 332 | +'template-semiprotected' => '(nîv-parastî)', |
| 333 | + |
| 334 | +# "Undo" feature |
| 335 | +'undo-summary' => 'Rêvîsyona $1 yê [[{{ns:special}}:Contributions/$2|$2]] ([[User talk:$2|guftûgo]]) şondakir', |
| 336 | + |
| 337 | +# History pages |
| 338 | +'revhistory' => 'Dîroka revîzyonan', |
| 339 | +'viewpagelogs' => 'Înformasîyonan li ser vê rûpelê seke', |
| 340 | +'nohistory' => 'Ew rûpel dîroka guherandinê tune.', |
| 341 | +'revnotfound' => 'Revîzyon nehat dîtin', |
| 342 | +'currentrev' => 'Revîzyona niha', |
| 343 | +'revisionasof' => 'Revîzyon a $1', |
| 344 | +'previousrevision' => '←Rêvîzyona kevintir', |
| 345 | +'nextrevision' => 'Revîzyona nûtir→', |
| 346 | +'currentrevisionlink' => 'Revîzyona niha nîşan bide', |
| 347 | +'cur' => 'ferq', |
| 348 | +'next' => 'pêş', |
| 349 | +'last' => 'berê', |
| 350 | +'orig' => 'orîj', |
| 351 | +'histlegend' => 'Legend: (ferq) = cudayî nav vê û versiyon a niha, |
| 352 | +(berê) = cudayî nav vê û yê berê vê, B = guhêrka biçûk', |
| 353 | +'histfirst' => 'Kevintirîn', |
| 354 | +'histlast' => 'Nûtirîn', |
| 355 | + |
| 356 | +# Revision feed |
| 357 | +'history-feed-empty' => "The requested page doesn't exist. |
| 358 | +It may have been deleted from the wiki, or renamed. |
| 359 | +Try [[{{ns:special}}:Search|searching on the wiki]] for relevant new pages.", |
| 360 | + |
| 361 | +# Revision deletion |
| 362 | +'rev-delundel' => 'nîşan bide/veşêre', |
| 363 | + |
| 364 | +# Diffs |
| 365 | +'difference' => '(Ciyawaziya nav revîzyonan)', |
| 366 | +'lineno' => 'Dêrra $1:', |
| 367 | +'compareselectedversions' => 'Guhartoyan Helsengêne', |
| 368 | +'editundo' => 'Betalbike', |
| 369 | + |
| 370 | +# Search results |
| 371 | +'searchresults' => 'Encamên lêgerînê', |
| 372 | +'searchresulttext' => 'Ji bo zêdetir agahî der barê lêgerînê di {{SITENAME}} da, binêre $1.', |
| 373 | +'searchsubtitle' => 'Ji bo query "[[:$1]]"', |
| 374 | +'searchsubtitleinvalid' => 'Ji bo query "$1"', |
| 375 | +'noexactmatch' => "'''Rûpeleke bi navê \"\$1\" tune.''' Tu dikarî [[:\$1|vê rûpelê biafirînî]]", |
| 376 | +'titlematches' => 'Dîtinên di sernivîsên gotaran de', |
| 377 | +'notitlematches' => 'Di nav sernivîsan de nehat dîtin.', |
| 378 | +'textmatches' => 'Dîtinên di nivîsara rûpelan de', |
| 379 | +'notextmatches' => 'Di nivîsarê de nehat dîtin.', |
| 380 | +'prevn' => '$1 paş', |
| 381 | +'nextn' => '$1 pêş', |
| 382 | +'viewprevnext' => '($1) ($2) ($3).', |
| 383 | +'showingresults' => '<b>$1</b> encam, bi #<b>$2</b> dest pê dike.', |
| 384 | +'showingresultsnum' => '<b>$3</b> encam, bi #<b>$2</b> dest pê dike.', |
| 385 | +'powersearch' => 'Lê bigere', |
| 386 | +'powersearchtext' => 'Lêgerîn di nav cihên navan de:<br /> |
| 387 | +$1<br /> |
| 388 | +$2 Ragihandinan nîşan bide &nbsp; Lêbigere: $3 $9', |
| 389 | +'searchdisabled' => '<p>Tu dikarî li {{SITENAME}} bi Google an Yahoo! bigere. Têbînî: Dibe ku encamen lêgerîne ne yên herî nû ne. |
| 390 | +</p>', |
| 391 | +'blanknamespace' => '(Serekî)', |
| 392 | + |
| 393 | +# Preferences page |
| 394 | +'preferences' => 'Tercîhên min', |
| 395 | +'prefsnologin' => 'Xwe qeyd nekir', |
| 396 | +'changepassword' => 'Şîfre biguherîne', |
| 397 | +'skin' => 'Pêste', |
| 398 | +'datetime' => 'Dem û rêkewt', |
| 399 | +'prefs-personal' => 'Agahiyên bikarhênerê/î', |
| 400 | +'prefs-rc' => 'Guherandinên dawî', |
| 401 | +'prefs-misc' => 'Eyaren cuda', |
| 402 | +'saveprefs' => 'Tercîhan qeyd bike', |
| 403 | +'oldpassword' => 'Şîfreya kevn', |
| 404 | +'newpassword' => 'Şîfreya nû', |
| 405 | +'retypenew' => 'Şîfreya nû careke din binîvîse', |
| 406 | +'textboxsize' => 'Guheranin', |
| 407 | +'rows' => 'Rêz', |
| 408 | +'columns' => 'sitûn', |
| 409 | +'searchresultshead' => 'Eyarên encamên lêgerinê', |
| 410 | +'savedprefs' => 'Tercîhên te qeyd kirî ne.', |
| 411 | +'default' => 'asayî', |
| 412 | +'files' => 'Dosya', |
| 413 | + |
| 414 | +# User rights |
| 415 | +'userrights-lookup-user' => 'Îdarekirina grûpan', |
| 416 | +'userrights-user-editname' => 'Navî bikarhênerê têke:', |
| 417 | +'userrights-groupsmember' => 'Endamê:', |
| 418 | + |
| 419 | +# Groups |
| 420 | +'group-sysop' => 'Koordînatoran', |
| 421 | + |
| 422 | +'group-sysop-member' => 'Koordînator', |
| 423 | + |
| 424 | +# User rights log |
| 425 | +'rightsnone' => '(tune)', |
| 426 | + |
| 427 | +# Recent changes |
| 428 | +'nchanges' => '$1 guherandin', |
| 429 | +'recentchanges' => 'Guherandinên dawî', |
| 430 | +'rcnote' => "Jêr {{PLURAL:$1|'''1''' xeyrandin|'''$1''' xeyrandinên dawî}} tên wêşandin yê {{PLURAL:$2|rojê dawî|'''$2''' rojên dawî}}. Ji $3.", |
| 431 | +'rclistfrom' => 'an jî guherandinên ji $1 şûnda nîşan bide.', |
| 432 | +'rclinks' => '$1 guherandinên di $2 rojên dawî de nîşan bide<br />$3', |
| 433 | +'diff' => 'ciyawazî', |
| 434 | +'hist' => 'dîrok', |
| 435 | +'hide' => 'veşêre', |
| 436 | +'show' => 'nîşan bide', |
| 437 | +'minoreditletter' => 'B', |
| 438 | +'newpageletter' => 'Nû', |
| 439 | + |
| 440 | +# Recent changes linked |
| 441 | +'recentchangeslinked' => 'Guherandinên peywend', |
| 442 | + |
| 443 | +# Upload |
| 444 | +'upload' => 'Wêneyekî barbike', |
| 445 | +'uploadbtn' => 'Wêneyê (ya tiştekî din ya mêdya) barbike', |
| 446 | +'reupload' => 'Dîsa barbike', |
| 447 | +'uploadnologin' => 'Xwe qeyd nekir', |
| 448 | +'uploadnologintext' => 'Ji bo barkirina wêneyan divê ku tu [[{{ns:special}}:Userlogin|têkevî]].', |
| 449 | +'uploadtext' => "Berê tu wêneyên nû bar bikî, ji bo dîtin an vedîtina wêneyên ku ji xwe hene binêre: [[Special:Imagelist|lîsteya wêneyên barkirî]]. |
| 450 | +Herwisa wêneyên ku hatine barkirin an jî jê birin li vir dikarî bibînî: [[Special:Log/upload|reşahiya barkiriyan]]. |
| 451 | +Yek ji lînkên jêr ji bo bikarhînana wêne an faylê di gotarê de bikar bihîne: |
| 452 | +* '''<nowiki>[[</nowiki>{{ns:Image}}:File.jpg]]''' |
| 453 | +* '''<nowiki>[[</nowiki>{{ns:Image}}:File.png|alt text]]''' anjî ji bo faylên dengî |
| 454 | +* '''<nowiki>[[</nowiki>{{ns:Media}}:File.ogg]]'''", |
| 455 | +'filename' => 'Navê dosyayê', |
| 456 | +'filedesc' => 'Kurte', |
| 457 | +'fileuploadsummary' => 'Kurte:', |
| 458 | +'filesource' => 'Çavkanî', |
| 459 | +'uploadedfiles' => 'Dosyayên bar kirî', |
| 460 | +'ignorewarning' => 'Hişyarê qebûl neke û dosyayê qeyd bike.', |
| 461 | +'ignorewarnings' => 'Guh nede hîşyaran', |
| 462 | +'minlength' => 'Navê wêne bi lanî kêm dive ji 3 tîpan pêtir be.', |
| 463 | +'badfilename' => 'Navê vî wêneyî hat guherandin û bû "$1".', |
| 464 | +'fileexists-forbidden' => 'Medyayek bi vê navî heye; xêra xwe şonda here û vê medyayê bi navekî din barbike. |
| 465 | +[[Image:$1|thumb|center|$1]]', |
| 466 | +'successfulupload' => 'Barkirin serkeftî', |
| 467 | +'fileuploaded' => 'Barkirina dosyaya bi navê $1 serkeftî. |
| 468 | +Ji kerema xwe, biçe: $2 û agahî li der barê dosyayê binivîse (ji ku derê hat girtin, kîngê hat çêkirin, kê çêkir û hwd.) |
| 469 | + |
| 470 | +Heke ev dosya wêneyek be, bi vî rengî bi kar bîne: |
| 471 | +<br /> |
| 472 | +<tt><nowiki>[[</nowiki>{{ns:Image}}:$1|thumb|Binnivîs]]</tt>', |
| 473 | +'uploadwarning' => 'Hişyara barkirinê', |
| 474 | +'savefile' => 'Dosyayê tomar bike', |
| 475 | +'uploadedimage' => '"$1" barkirî', |
| 476 | +'sourcefilename' => 'Navî wêneyê (ya tiştekî din ya mêdya)', |
| 477 | +'destfilename' => 'Navî wêneyê (ya tiştekî din ya mêdya) yê xastî', |
| 478 | +'watchthisupload' => 'Vê rûpelê bişopîne', |
| 479 | + |
| 480 | +# Image list |
| 481 | +'imagelist' => 'Listeya wêneyan', |
| 482 | +'imagelisttext' => 'Below is a list of $1 files sorted $2.', |
| 483 | +'ilsubmit' => 'Lêbigere', |
| 484 | +'showlast' => '$1 wêneyên dawî bi rêz kirî $2 nîşan bide.', |
| 485 | +'byname' => 'li gor navê', |
| 486 | +'bydate' => 'li gor dîrokê', |
| 487 | +'bysize' => 'li gor mezinayiyê', |
| 488 | +'imghistory' => 'Dîroka vî wêneyî', |
| 489 | +'deleteimg' => 'jêbibe', |
| 490 | +'imagelinks' => 'Lînkên vî wêneyî', |
| 491 | +'linkstoimage' => 'Di van rûpelan de lînkek ji vî wêneyî re heye:', |
| 492 | +'nolinkstoimage' => 'Rûpelekî ku ji vî wêneyî re girêdankê çêdike nîne.', |
| 493 | +'noimage' => 'Medyayek bi vê navî tune, lê tu kanî $1', |
| 494 | +'noimage-linktext' => 'wê barbike', |
| 495 | + |
| 496 | +# MIME search |
| 497 | +'download' => 'dabezandin', |
| 498 | + |
| 499 | +# Unwatched pages |
| 500 | +'unwatchedpages' => 'Gotar ê ne tên şopandin', |
| 501 | + |
| 502 | +# Unused templates |
| 503 | +'unusedtemplateswlh' => 'lînkên din', |
| 504 | + |
| 505 | +# Statistics |
| 506 | +'statistics' => 'Statîstîk', |
| 507 | +'sitestats' => 'Statîstîkên rûpelê', |
| 508 | +'userstats' => 'Statistîkên bikarhêneran', |
| 509 | +'sitestatstext' => "Di ''database'' de <b>$1</b> rûpel hene. Tê de rûpelên guftûgoyê, rûpelên der barê {{SITENAME}}, rûpelên pir kurt, rûpelên ragihandinê (redirect) û rûpelên din ku qey ne gotar in hene. |
| 510 | + |
| 511 | +Derve wan, '''$2''' rûpel hene ku qey '''gotarên rewa''' ne. |
| 512 | + |
| 513 | +Ji 28'ê çileya 2004 heta roja îro <b>$4</b> carî rûpel hatin guherandin û wergî '''$5''' guherandin her rûpel. |
| 514 | + |
| 515 | +Dirêjbûnê „[[m:Help:Job queue|Job queue]]“: '''$7'''. |
| 516 | + |
| 517 | +---- |
| 518 | + |
| 519 | +Fonksiyonên ku hîn rast naxebitin: |
| 520 | +*<b>$3</b> rûpel tê şopandin |
| 521 | +*<b>$5</b> xeyrandinên her rûpelê |
| 522 | +*<b>$6</b> pêşdîtin her rûpelê.", |
| 523 | +'userstatstext' => '<b>$1</b> bikarhênerên qeydkirî hene. Ji wan <b>$2</b> administrator/koordînator in. (Binêre $3). |
| 524 | +<br /><br /> |
| 525 | +Ji bo statîstîkên din ser rûpela Destpêkê biçe: <b>Statîstîk</b>', |
| 526 | + |
| 527 | +'disambiguations' => 'Rûpelên cudakirinê', |
| 528 | + |
| 529 | +'brokenredirects' => 'Ragihandinên jê bûye', |
| 530 | + |
| 531 | +# Miscellaneous special pages |
| 532 | +'nbytes' => '$1 bayt', |
| 533 | +'nlinks' => '$1 lînk', |
| 534 | +'nmembers' => '$1 endam', |
| 535 | +'nviews' => '$1 dîtin', |
| 536 | +'lonelypages' => 'Rûpelên sêwî', |
| 537 | +'uncategorizedpages' => 'Rûpelên bê kategorî', |
| 538 | +'uncategorizedcategories' => 'Kategoriyên bê kategorî', |
| 539 | +'unusedcategories' => 'Kategoriyên ku nayên bi kar anîn', |
| 540 | +'unusedimages' => 'Wêneyên ku nayên bi kar anîn', |
| 541 | +'popularpages' => 'Rûpelên populer', |
| 542 | +'wantedcategories' => 'Kategorîyên tên xwestin', |
| 543 | +'wantedpages' => 'Rûpelên ku tên xwestin', |
| 544 | +'mostcategories' => 'Gotar bi pir kategorîyan', |
| 545 | +'allpages' => 'Hemû rûpel', |
| 546 | +'randompage' => 'Rûpelek bi helkeft', |
| 547 | +'shortpages' => 'Rûpelên kurt', |
| 548 | +'longpages' => 'Rûpelên dirêj', |
| 549 | +'deadendpages' => 'Rûpelên bê dergeh', |
| 550 | +'listusers' => 'Lîsteya bikarhêneran', |
| 551 | +'specialpages' => 'Rûpelên taybet', |
| 552 | +'spheading' => 'Rûpelên taybet ji bo hemû bikarhêneran', |
| 553 | +'newpages' => 'Rûpelên nû', |
| 554 | +'ancientpages' => 'Gotarên kevintirîn', |
| 555 | +'move' => 'Navê rûpelê biguherîne', |
| 556 | +'movethispage' => 'Vê rûpelê bigerîne', |
| 557 | + |
| 558 | +# Book sources |
| 559 | +'booksources' => 'Çavkaniyên pirtûkan', |
| 560 | + |
| 561 | +'categoriespagetext' => 'Di vê wîkiyê de ev kategorî hene:', |
| 562 | +'groups' => 'Grûpen bikarhêneran', |
| 563 | +'alphaindexline' => '$1 heta $2', |
| 564 | +'version' => 'Verzîyon', |
| 565 | + |
| 566 | +# Special:Log |
| 567 | +'specialloguserlabel' => 'Bikarhêner:', |
| 568 | +'log' => 'Reşahiyan', |
| 569 | +'logempty' => 'Tişt di vir da tune.', |
| 570 | + |
| 571 | +# Special:Allpages |
| 572 | +'nextpage' => 'Rûpela pêşî ($1)', |
| 573 | +'allpagesfrom' => 'Pêşdîtina rûpelan bi dest pê kirin ji', |
| 574 | +'allarticles' => 'Hemû gotar', |
| 575 | +'allinnamespace' => 'Hemû rûpelan ($1 boşahî a nav)', |
| 576 | +'allpagesprev' => 'Pêş', |
| 577 | +'allpagesnext' => 'Paş', |
| 578 | +'allpagessubmit' => 'Biçe', |
| 579 | +'allpagesprefix' => 'Nîşan bide rûpelên bi pêşgira:', |
| 580 | + |
| 581 | +# E-mail user |
| 582 | +'mailnologin' => 'Navnîşan neşîne', |
| 583 | +'emailuser' => 'Ji vê/î bikarhênerê/î re e-name bişîne', |
| 584 | +'emailpage' => 'E-name bikarhêner', |
| 585 | +'defemailsubject' => '{{SITENAME}} e-name', |
| 586 | +'noemailtitle' => 'Navnîşana e-name tune', |
| 587 | +'emailfrom' => 'Ji', |
| 588 | +'emailto' => 'Bo', |
| 589 | +'emailsubject' => 'Mijar', |
| 590 | +'emailmessage' => 'Name', |
| 591 | +'emailsend' => 'Bişîne', |
| 592 | +'emailsent' => 'E-name hat şandin', |
| 593 | +'emailsenttext' => 'E-nameya te hat şandin.', |
| 594 | + |
| 595 | +# Watchlist |
| 596 | +'watchlist' => 'Lîsteya min ya şopandinê', |
| 597 | +'mywatchlist' => 'Lîsteya min ya şopandinê', |
| 598 | +'watchlistfor' => '(ji bo $1)', |
| 599 | +'watchlistanontext' => 'Ji bo sekirinê ya xeyrandinê lîsteya te ya şopandinê tu gireke xwe $1.', |
| 600 | +'watchlistcount' => "'''$1 qeydkirin li lîsteya te ya şopandinê bi guftûgoran jî hene.'''", |
| 601 | +'watchlistcleartext' => 'Di rast dixazê wan betalbikê?', |
| 602 | +'watchlistclearbutton' => 'Lîsteya te ya şopandinê betalbike', |
| 603 | +'watchlistcleardone' => 'Lîsteya te ya şopandinê hate betalkirin. $1 gotar çûn.', |
| 604 | +'watchnologin' => 'Te xwe qeyd nekirîye.', |
| 605 | +'watchnologintext' => 'Ji bo xeyrandinê lîsteya te ya şopandinê tu gireke xwe [[{{ns:special}}:Userlogin|qedy kiribe]].', |
| 606 | +'addedwatch' => 'Hat îlawekirinî listeya şopandinê', |
| 607 | +'addedwatchtext' => "Rûpela \"\$1\" çû ser [[{{ns:special}}:Watchlist|lîsteya te ya şopandinê]]. |
| 608 | +Li dahatû de her guhartoyek li wê rûpelê û rûpela guftûgo ya wê were kirin li vir dêt nîşan dan, |
| 609 | + |
| 610 | +Li rûpela [[{{ns:special}}:Recentchanges|Guherandinên dawî]] jî ji bo hasan dîtina wê, ew rûpel bi '''Nivîsa estûr''' dê nîşan dayîn. |
| 611 | + |
| 612 | + |
| 613 | +<p>Her dem tu bixwazî ew rûpel li nav lîsteya te ya şopandinê derbikî, li ser wê rûpelê, klîk bike \"êdî neşopîne\".", |
| 614 | +'removedwatch' => 'Ji lîsteya şopandinê hate jêbirin', |
| 615 | +'removedwatchtext' => 'Rûpela "$1" ji lîsteya te ya şopandinê hate jêbirin.', |
| 616 | +'watch' => 'Bişopîne', |
| 617 | +'watchthispage' => 'Vê rûpelê bişopîne', |
| 618 | +'unwatch' => 'Êdî neşopîne', |
| 619 | +'notanarticle' => 'Ne gotar e', |
| 620 | +'watchnochange' => 'Ne rûpelek, yê tu dişopînê, hate xeyrandin di vê wextê da, yê tu dixazê bibînê.', |
| 621 | +'watchdetails' => '* $1 rûpel tên şopandin, rûpelên guftûgoyê netên jimartin |
| 622 | +* [[{{ns:special}}:Watchlist/edit|Lîsteya şopandinê bibîne û bixeyrîne]] |
| 623 | +* [[{{ns:special}}:Watchlist/clear|Giştik rûpel derxe]]', |
| 624 | +'wlheader-enotif' => '* E-mail-şandin çêbû.', |
| 625 | +'wlheader-showupdated' => "* Ew rûpel yê hatin xeyrandin jilkî te li wan sekir di '''nivîsa estûr''' tên pêşandin.", |
| 626 | +'watchlistcontains' => 'Di lîsteya şopandina te de $1 rûpel hene.', |
| 627 | +'watcheditlist' => "Li vir lîstekî alfabêtî ji rûpelên te yê tu dişopînê ye. Li çargoşa xwe eger tu dixazê wan gotaran ji lîstê xwe bibê û paşê li 'Gotar bi şixtekî jêbibe' xwe.", |
| 628 | +'removingchecked' => 'Gotarên bi xeta tên jêbirin ji lîsteya te ya şopandinê', |
| 629 | +'couldntremove' => "'$1' naye jêbirin...", |
| 630 | +'wlnote' => 'Nuha $1 xeyrandinên dawî yê <b>$2</b> seetên dawî tên.', |
| 631 | +'wlshowlast' => 'Xeyrandînên berî $1 seetan, $2 rojan, ya $3 (di rojên sîyî paşî)', |
| 632 | +'wlsaved' => 'Ev rûpela verzîonekî qeydkirî ji lîsteya te ya şopandinê ye.', |
| 633 | +'watchlist-hide-bots' => "Guherandinên Bot'an veşêre", |
| 634 | +'watchlist-show-own' => 'Guherandinên min pêşke', |
| 635 | +'watchlist-hide-own' => 'Guherandinên min veşêre', |
| 636 | +'watchlist-show-minor' => 'Guherandinên biçûk pêşke', |
| 637 | +'watchlist-hide-minor' => 'Guherandinên biçûk veşêre', |
| 638 | +'wldone' => 'Çêbû.', |
| 639 | + |
| 640 | +'enotif_newpagetext' => 'Ev rûpeleke nû ye.', |
| 641 | +'changed' => 'guhart', |
| 642 | +'created' => 'afirandî', |
| 643 | + |
| 644 | +# Delete/protect/revert |
| 645 | +'deletepage' => 'Rûpelê jê bibe', |
| 646 | +'confirm' => 'Pesend bike', |
| 647 | +'excontent' => 'Naveroka berê: $1', |
| 648 | +'excontentauthor' => "Nawerokê wê rûpelê ew bû: '$1' (û tenya bikarhêner '$2' bû)", |
| 649 | +'exbeforeblank' => "Nawerok berî betal kirinê ew bû: '$1'", |
| 650 | +'exblank' => 'rûpel vala bû', |
| 651 | +'confirmdelete' => 'Teyîda jêbirinê', |
| 652 | +'deletesub' => '("$1" tê jêbirin)', |
| 653 | +'historywarning' => 'Hîşyar: Ew rûpel ku tu dixwazî jê bibî dîrokek heye:', |
| 654 | +'actioncomplete' => 'Çalakî temam', |
| 655 | +'deletedtext' => '"$1" hat jêbirin. Ji bo qeyda rûpelên ku di dema nêzîk de hatin jêbirin binêre $2.', |
| 656 | +'deletedarticle' => '"$1" hat jêbirin', |
| 657 | +'dellogpage' => 'Reşahiya_jêbirin', |
| 658 | +'dellogpagetext' => 'Li jêr lîsteyek ji jêbirinên dawî heye.', |
| 659 | +'deletionlog' => 'reşahiya jêbirin', |
| 660 | +'deletecomment' => 'Sedema jêbirinê', |
| 661 | +'rollback_short' => 'Bizivirîne pêş', |
| 662 | +'rollbacklink' => 'bizivirîne pêş', |
| 663 | +'cantrollback' => "Guharto naye vegerandin; bikarhêrê dawî, '''tenya''' nivîskarê wê rûpelê ye.", |
| 664 | +'alreadyrolled' => 'Guherandina dawiya [[$1]] |
| 665 | +bi [[User:$2|$2]] ([[User talk:$2|Guftûgo]]) venizivre; keseke din wê rûpelê zivrandiye an guherandiye. |
| 666 | + |
| 667 | +Guhartoya dawî bi [[User:$3|$3]] ([[User talk:$3|Gufûgo]]).', |
| 668 | +'revertpage' => 'Guherandina $2 hat betal kirin, vegerand guhartoya dawî ya $1', |
| 669 | +'protectlogpage' => 'Reşahiya _parastiyan', |
| 670 | +'protectlogtext' => 'Below is a list of page locks and unlocks. See the [[{{ns:special}}:Protectedpages|protected pages list]] for the list of currently operational page protections.', |
| 671 | +'protectedarticle' => 'parastî [[$1]]', |
| 672 | +'unprotectedarticle' => '"[[$1]]" niha vê parastin e', |
| 673 | +'confirmprotect' => 'Parastinê teyîd bike', |
| 674 | +'protectcomment' => 'Sedema parastinê', |
| 675 | +'unprotectsub' => 'Parastinê "$1" rake', |
| 676 | + |
| 677 | +# Restrictions (nouns) |
| 678 | +'restriction-edit' => 'Biguherîne', |
| 679 | +'restriction-move' => 'Nav biguherîne', |
| 680 | + |
| 681 | +# Undelete |
| 682 | +'undelete' => 'Li rûpelên jêbirî seke', |
| 683 | +'viewdeletedpage' => 'Rûpelên vemirandî seke', |
| 684 | +'undeletebtn' => 'Dîsa çêke!', |
| 685 | +'undeletedarticle' => '"[[$1]]" dîsa çêkir', |
| 686 | +'undelete-search-box' => 'Rûpelên jêbirî lêbigere', |
| 687 | +'undelete-search-prefix' => 'Rûpela pêşe min ke ê bi vê destpêdîkin:', |
| 688 | +'undelete-search-submit' => 'Lêbigere', |
| 689 | + |
| 690 | +# Namespace form on various pages |
| 691 | +'namespace' => 'Boşahiya nav:', |
| 692 | +'invert' => 'Hilbijardinê pêçewane bike', |
| 693 | + |
| 694 | +# Contributions |
| 695 | +'contributions' => 'Beşdariyên vê bikarhêner', |
| 696 | +'mycontris' => 'Beşdariyên min', |
| 697 | +'contribsub2' => 'Ji bo $1 ($2)', |
| 698 | +'uclinks' => '$1 guherandinên dawî; $2 rojên dawî', |
| 699 | +'uctop' => ' (ser)', |
| 700 | + |
| 701 | +'sp-contributions-newest' => 'Nûtirîn', |
| 702 | +'sp-contributions-oldest' => 'Kevintirîn', |
| 703 | +'sp-contributions-newer' => '$1 yên nûtir', |
| 704 | +'sp-contributions-older' => '$1 yên kevintir', |
| 705 | + |
| 706 | +# What links here |
| 707 | +'whatlinkshere' => 'Lînk yê tên ser vê rûpelê', |
| 708 | +'notargettitle' => 'Hedef tune', |
| 709 | +'linklistsub' => '(Listeya lînkan)', |
| 710 | +'linkshere' => "Ev rûpel tên ser vê rûpelê '''„[[:$1]]“''':", |
| 711 | +'nolinkshere' => "Ne ji rûpelekê lînk tên ser '''„[[:$1]]“'''.", |
| 712 | +'isredirect' => 'rûpela ragihandinê', |
| 713 | + |
| 714 | +# Block/unblock |
| 715 | +'blockip' => 'Bikarhêner asteng bike', |
| 716 | +'blockiptext' => 'Ji bo astengkirina nivîsandinê ji navnîşaneke IP an bi navekî bikarhêner, vê formê bikarbîne. |
| 717 | +Ev bes gireke were bikaranîn ji bo vandalîzmê biskinîne (bi vê [[{{ns:project}}:Policy|qebûlkirinê]]). |
| 718 | + |
| 719 | +Sedemekê binivîse!', |
| 720 | +'ipbreason' => 'Sedem', |
| 721 | +'ipbreasonotherlist' => 'Sedemekî din', |
| 722 | +'ipbreason-dropdown' => '*Sedemên astengkirinê (bi tevayî) |
| 723 | +** vandalîzm |
| 724 | +** înformasyonên şaş kir gotarekê |
| 725 | +** rûpelê vala kir |
| 726 | +** bes lînkan dikir rûpelan |
| 727 | +** kovan dikir gotaran |
| 728 | +** heqaretkirin |
| 729 | +** pir accounts dikaranîn |
| 730 | +** navekî pîs', |
| 731 | +'ipbsubmit' => 'Vê bikarhêner asteng bike', |
| 732 | +'ipbother' => 'demekî din', |
| 733 | +'ipboptions' => '1 seet:1 hour,2 seet:2 hours,6 seet:6 hours,1 roj:1 day,3 roj:3 days,1 hefte:1 week,2 hefte:2 weeks,1 mihe:1 month,3 mihe:3 months,1 sal:1 year,ji her demê ra:infinite', |
| 734 | +'ipbotheroption' => 'yên din', |
| 735 | +'ipbotherreason' => 'Sedemekî din', |
| 736 | +'badipaddress' => 'Bikarhêner bi vî navî tune', |
| 737 | +'blockipsuccesssub' => 'Blok serkeftî', |
| 738 | +'blockipsuccesstext' => '"$1" hat asteng kirin. |
| 739 | +<br /> |
| 740 | +Bibîne [[{{ns:special}}:Ipblocklist|Lîsteya IP\'yan hatî asteng kirin]] ji bo lîsteya blokan.', |
| 741 | +'blocklistline' => '$1, $2 $3 asteng kir ($4)', |
| 742 | +'blocklink' => 'asteng bike', |
| 743 | +'unblocklink' => 'betala astengê', |
| 744 | +'contribslink' => 'Beşdarî', |
| 745 | +'autoblocker' => 'Otomatîk hat bestin jiberku IP-ya we û ya "[[User:$1|$1]]" yek in. Sedem: "\'\'\'$2\'\'\'"', |
| 746 | +'blocklogpage' => 'Reşahiya_asteng kiriyan', |
| 747 | +'blocklogentry' => '"[[$1]]" $3 astengkir ji bo dema $2.', |
| 748 | +'unblocklogentry' => 'astenga "$1" hat betal kirin', |
| 749 | +'proxyblocksuccess' => 'Çêbû.', |
| 750 | + |
| 751 | +# Move page |
| 752 | +'movepage' => 'Vê rûpelê bigerîne', |
| 753 | +'movepagetalktext' => "Rûpela '''guftûgoyê''' vê rûpelê wê were, eger hebe, gerandin. Lê ev tişta nameşe, eger |
| 754 | + |
| 755 | +*berê guftûgoyek bi wê navê hebe ya |
| 756 | +*tu tiştekî jêr hilbijêrê. |
| 757 | + |
| 758 | +Eger ev mişkla çêbû, tu gireke vê rûpelê bi xwe bigerînê. |
| 759 | + |
| 760 | +Xêra xwe navî nuh û sedemê navgerandinê binivisîne.", |
| 761 | +'movearticle' => 'Rûpelê bigerîne', |
| 762 | +'movenologin' => 'Xwe qeyd nekir', |
| 763 | +'movenologintext' => 'Tu dive bikarhênereke qeydkirî bî û [[{{ns:special}}:Userlogin|werî nav sîstemê]] |
| 764 | +da bikarî navê wê rûpelê biguherînî.', |
| 765 | +'newtitle' => 'Sernivîsa nû', |
| 766 | +'movepagebtn' => 'Vê rûpelê bigerîne', |
| 767 | +'pagemovedsub' => 'Gerandin serkeftî', |
| 768 | +'pagemovedtext' => 'Rûpela "[[$1]]" çû cihê "[[$2]]".', |
| 769 | +'articleexists' => 'Rûpela bi vî navî heye, an navê ku te hilbijart derbas nabe. Navekî din hilbijêre.', |
| 770 | +'movedto' => 'bû', |
| 771 | +'movetalk' => "Rûpela '''guftûgo''' ya wê jî bigerîne, eger gengaz be.", |
| 772 | +'1movedto2' => '$1 çû cihê $2', |
| 773 | +'1movedto2_redir' => '$1 çû cihê $2 ser redirect', |
| 774 | +'movelogpage' => 'Reşahiya nav guherandin', |
| 775 | +'movelogpagetext' => 'Li jêr lîsteyek ji rûpelan ku navê wan hatiye guherandin heye.', |
| 776 | +'movereason' => 'Sedem', |
| 777 | + |
| 778 | +# Namespace 8 related |
| 779 | +'allmessages' => 'Hemû mesajên sîstemê', |
| 780 | +'allmessagesname' => 'Nav', |
| 781 | +'allmessagescurrent' => 'Texta niha', |
| 782 | +'allmessagestext' => 'Ev lîsteya hemû mesajên di namespace a MediaWiki: de ye.', |
| 783 | +'allmessagesnotsupportedDB' => "'''{{ns:special}}:Allmessages''' nikane were bikaranîn çunkî '''\$wgUseDatabaseMessages''' hatîye temirandin.", |
| 784 | + |
| 785 | +# Thumbnails |
| 786 | +'thumbnail-more' => 'Mezin bike', |
| 787 | + |
| 788 | +# Special:Import |
| 789 | +'importnotext' => 'Vala an nivîs tune', |
| 790 | + |
| 791 | +# Tooltip help for the actions |
| 792 | +'tooltip-pt-userpage' => 'Rûpela min a şexsî', |
| 793 | +'tooltip-pt-anonuserpage' => 'The user page for the ip you', |
| 794 | +'tooltip-pt-mytalk' => 'Rûpela guftûgo ya min', |
| 795 | +'tooltip-pt-preferences' => ',Tercîhên min', |
| 796 | +'tooltip-pt-watchlist' => 'The list of pages you', |
| 797 | +'tooltip-pt-mycontris' => 'Lîsteya tevkariyên min', |
| 798 | +'tooltip-pt-logout' => 'Derkeve (Log out)', |
| 799 | +'tooltip-ca-talk' => 'guftûgo û şîrove ser vê rûpelê', |
| 800 | +'tooltip-ca-edit' => 'Vê rûpelê biguherîne! Berê qeydkirinê bişkoka "Pêşdîtin', |
| 801 | +'tooltip-ca-addsection' => 'Beşekê zêde bike.', |
| 802 | +'tooltip-ca-history' => 'Versyonên berê yên vê rûpelê.', |
| 803 | +'tooltip-ca-protect' => 'Vê rûplê biparêze', |
| 804 | +'tooltip-ca-delete' => 'Vê rûpelê jê bibe', |
| 805 | +'tooltip-ca-move' => 'Navekî nû bide vê rûpelê', |
| 806 | +'tooltip-search' => 'Li vê wikiyê bigêre', |
| 807 | +'tooltip-p-logo' => 'Destpêk', |
| 808 | +'tooltip-n-mainpage' => 'Biçe Destpêkê', |
| 809 | +'tooltip-n-help' => 'Bersivên ji bo pirsên te.', |
| 810 | +'tooltip-t-whatlinkshere' => 'Lîsteya hemû rûpelên ku ji vê re grêdidin.', |
| 811 | +'tooltip-t-recentchangeslinked' => 'Recent changes in pages linking to this page', |
| 812 | +'tooltip-t-emailuser' => 'Jê re name bişîne', |
| 813 | +'tooltip-ca-nstab-user' => 'Rûpela bikarhênerê/î temaşe bike', |
| 814 | +'tooltip-ca-nstab-special' => 'This is a special page, you can', |
| 815 | +'tooltip-compareselectedversions' => 'Cudatiyên guhartoyên hilbijartî yên vê rûpelê bibîne. [alt-v]', |
| 816 | + |
| 817 | +# Stylesheets |
| 818 | +'monobook.css' => '*.rtl |
| 819 | + { |
| 820 | + dir:rtl; |
| 821 | + text-align:right; |
| 822 | + font-family: "Tahoma", "Unikurd Web", "Arial Unicode MS", "DejaVu Sans", "Lateef", "Scheherazade", "ae_Rasheeq", sans-serif, sans; |
| 823 | + } |
| 824 | + |
| 825 | + /*Make the site more suitable for Soranî users */ |
| 826 | + h1 {font-family: "Tahoma", "Arial Unicode MS", sans-serif, sans, "Unikurd Web", "Scheherazade";} |
| 827 | + h2 {font-family: "Tahoma", "Arial Unicode MS", sans-serif, sans, "Unikurd Web", "Scheherazade";} |
| 828 | + h3 {font-family: "Tahoma", "Arial Unicode MS", sans-serif, sans, "Unikurd Web", "Scheherazade";} |
| 829 | + body {font-family: "Tahoma", "Arial Unicode MS", sans-serif, sans, "Unikurd Web", "Scheherazade";} |
| 830 | + textarea {font-family: Lucida Console, Tahoma;} |
| 831 | + pre {font-family: Lucida Console, Tahoma;}', |
| 832 | + |
| 833 | +# Scripts |
| 834 | +'common.js' => '/* JavaScript */ |
| 835 | + |
| 836 | +/* Workaround for language variants */ |
| 837 | + |
| 838 | +// Set user-defined "lang" attributes for the document element (from zh) |
| 839 | +var htmlE=document.documentElement; |
| 840 | +if (wgUserLanguage == "ku"){ variant = "ku"; } |
| 841 | +if (wgUserLanguage == "ku-latn"){ variant = "ku-Latn"; } |
| 842 | +if (wgUserLanguage == "ku-arab"){ variant = "ku-Arab"; htmlE.setAttribute("dir","rtl"); } |
| 843 | +htmlE.setAttribute("lang",variant); |
| 844 | +htmlE.setAttribute("xml:lang",variant); |
| 845 | + |
| 846 | +// Switch language variants of messages (from zh) |
| 847 | +function wgULS(latn,arab){ |
| 848 | + // |
| 849 | + ku=latn||arab; |
| 850 | + ku=ku; |
| 851 | + latn=latn; |
| 852 | + arab=arab; |
| 853 | + switch(wgUserLanguage){ |
| 854 | + case "ku": return ku; |
| 855 | + case "ku-arab": return arab; |
| 856 | + case "ku-latn": return latn; |
| 857 | + default: return ""; |
| 858 | + } |
| 859 | +} |
| 860 | + |
| 861 | +// workaround for RTL ([[bugzilla:6756]]) and for [[bugzilla:02020]] & [[bugzilla:04295]] |
| 862 | +if (wgUserLanguage == "ku-arab") |
| 863 | +{ |
| 864 | + document.direction="rtl"; |
| 865 | + document.write(\'<link rel="stylesheet" type="text/css" href="\'+stylepath+\'/common/common_rtl.css">\'); |
| 866 | + document.write(\'<style type="text/css">html {direction:rtl;} body {direction:rtl; unicode-bidi:embed; lang:ku-Arab; font-family:"Arial Unicode MS",Arial,Tahoma; font-size: 75%; letter-spacing: 0.001em;} html > body div#content ol {clear: left;} ol {margin-left:2.4em; margin-right:2.4em;} ul {margin-left:1.5em; margin-right:1.5em;} h1.firstHeading {background-position: bottom right; background-repeat: no-repeat;} h3 {font-size:110%;} h4 {font-size:100%;} h5 {font-size:90%;} #catlinks {width:100%;} #userloginForm {float: right !important;}</style>\'); |
| 867 | + |
| 868 | + if (skin == "monobook"){ |
| 869 | + document.write(\'<link rel="stylesheet" type="text/css" href="\'+stylepath+\'/monobook/rtl.css">\'); |
| 870 | + } |
| 871 | +}', |
| 872 | + |
| 873 | +# Attribution |
| 874 | +'anonymous' => 'Bikarhênera/ê nediyarkirî ya/yê {{SITENAME}}', |
| 875 | +'siteuser' => 'Bikarhênera $1 ê {{SITENAME}}', |
| 876 | +'and' => 'û', |
| 877 | +'others' => 'ên din', |
| 878 | +'siteusers' => 'Bikarhênerên $1 yên {{SITENAME}}', |
| 879 | + |
| 880 | +# Spam protection |
| 881 | +'subcategorycount' => 'Di vê kategoriyê de $1 binkategorî hene.', |
| 882 | +'categoryarticlecount' => 'Di vê kategoriyê de $1 gotar hene.', |
| 883 | +'listingcontinuesabbrev' => ' dewam', |
| 884 | + |
| 885 | +# Browsing diffs |
| 886 | +'previousdiff' => '← Ciyawaziya pêştir', |
| 887 | +'nextdiff' => 'Ciyawaziya paştir →', |
| 888 | + |
| 889 | +'newimages' => 'Pêşangeha wêneyên nû', |
| 890 | + |
| 891 | +# Variants for Kurdish language |
| 892 | +'variantname-ku' => 'disable', |
| 893 | + |
| 894 | +# 'all' in various places, this might be different for inflected languages |
| 895 | +'recentchangesall' => 'hemû', |
| 896 | +'imagelistall' => 'hemû', |
| 897 | +'watchlistall1' => 'giştik', |
| 898 | +'watchlistall2' => 'giştik', |
| 899 | +'namespacesall' => 'Hemû', |
| 900 | + |
| 901 | +# E-mail address confirmation |
| 902 | +'confirmemail_noemail' => 'Te e-mail-adressê xwe di [[{{ns:special}}:Preferences|tercihên xwe da]] nenivîsandîye.', |
| 903 | +'confirmemail_body' => 'Kesek, dibê tu, bi IP adressê $1, xwe li {{SITENAME}} bi vê navnîşana e-name tomar kir ("$2") . |
| 904 | + |
| 905 | +Eger ev rast qeydkirinê te ye û di dixwazî bikaranîna e-nama ji te ra çêbibe li {{SITENAME}}, li vê lînkê bitikîne: |
| 906 | + |
| 907 | +$3 |
| 908 | + |
| 909 | +Lê eger ev *ne* tu bû, li lînkê netikîne. Ev e-nameya di rojê $4 da netê qebûlkirin.', |
| 910 | + |
| 911 | +# Inputbox extension, may be useful in other contexts as well |
| 912 | +'createarticle' => 'Gotarê biafirîne', |
| 913 | + |
| 914 | +# Scary transclusion |
| 915 | +'scarytranscludefailed' => '[Anîna şablona $1 biserneket; biborîne]', |
| 916 | + |
| 917 | +# Delete conflict |
| 918 | +'deletedwhileediting' => 'Hîşyar: Piştî te guherandinê xwe dest pê kir ev rûpela hate jêbirin!', |
| 919 | + |
| 920 | +# action=purge |
| 921 | +'confirm_purge' => 'Bîra vê rûpelê jêbîbe ? |
| 922 | + |
| 923 | +$1', |
| 924 | +'confirm_purge_button' => 'Temam', |
| 925 | + |
| 926 | +'youhavenewmessagesmulti' => 'Nameyên nih li $1 ji te ra hene.', |
| 927 | + |
| 928 | +'loginlanguagelabel' => 'Ziman: $1', |
| 929 | + |
| 930 | +# Auto-summaries |
| 931 | +'autosumm-blank' => 'Rûpel hate vala kirin', |
| 932 | +'autoredircomment' => 'Redirect berve [[$1]]', # This should be changed to the new naming convention, but existed beforehand |
| 933 | +'autosumm-new' => 'Rûpela nû: $1', |
| 934 | + |
| 935 | +# Live preview |
| 936 | +'livepreview-loading' => 'Tê…', |
| 937 | +'livepreview-ready' => 'Tê… Çêbû!', |
| 938 | + |
| 939 | +); |
| 940 | + |
| 941 | +?> |
Property changes on: branches/liquidthreads/languages/messages/MessagesKu_latn.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 942 | + native |
Index: branches/liquidthreads/languages/messages/MessagesFi.php |
— | — | @@ -101,6 +101,7 @@ |
102 | 102 | 'Uncategorizedpages' => array( 'Luokittelemattomat_sivut' ), |
103 | 103 | 'Uncategorizedcategories' => array( 'Luokittelemattomat_luokat' ), |
104 | 104 | 'Uncategorizedimages' => array( 'Luokittelemattomat_tiedostot' ), |
| 105 | + 'Uncategorizedtemplates' => array( 'Luokittelemattomat_mallineet' ), |
105 | 106 | 'Unusedcategories' => array( 'Käyttämättömät_luokat' ), |
106 | 107 | 'Unusedimages' => array( 'Käyttämättömät_tiedostot' ), |
107 | 108 | 'Wantedpages' => array( 'Halutuimmat_sivut' ), |
— | — | @@ -498,6 +499,7 @@ |
499 | 500 | 'yourvariant' => 'Kielivariantti', |
500 | 501 | 'yournick' => 'Allekirjoitus', |
501 | 502 | 'badsig' => 'Allekirjoitus ei kelpaa.', |
| 503 | +'badsiglength' => 'Allekirjoitus on liian pitkä – enimmäispituus on $1 merkkiä.', |
502 | 504 | 'email' => 'Sähköpostitoiminnot', |
503 | 505 | 'prefs-help-realname' => 'Vapaaehtoinen. Nimesi näytetään käyttäjätunnuksesi sijasta sivun tekijäluettelossa.', |
504 | 506 | 'loginerror' => 'Sisäänkirjautumisvirhe', |
— | — | @@ -616,7 +618,7 @@ |
617 | 619 | 'newarticletext' => 'Linkki toi sivulle, jota ei vielä ole. Voit luoda sivun kirjoittamalla alla olevaan tilaan. Jos et halua luoda sivua, käytä selaimen paluutoimintoa.', |
618 | 620 | 'anontalkpagetext' => "----''Tämä on nimettömän käyttäjän keskustelusivu. Hän ei ole joko luonut itselleen käyttäjätunnusta tai ei käytä sitä. Siksi hänet tunnistetaan nyt numeerisella IP-osoitteella. Kyseinen IP-osoite voi olla useamman henkilön käytössä. Jos olet nimetön käyttäjä, ja sinusta tuntuu, että aiheettomia kommentteja on ohjattu sinulle, [[Special:Userlogin|luo itsellesi käyttäjätunnus tai kirjaudu sisään]] välttääksesi jatkossa sekaannukset muiden nimettömien käyttäjien kanssa.''", |
619 | 621 | 'noarticletext' => "<big>'''{{GRAMMAR:inessive|{{SITENAME}}}} ei ole tämän nimistä sivua.'''</big> |
620 | | -* Voit kirjoittaa uuden sivun '''<span class=\"plainlinks\">[{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} {{PAGENAME}}]</span>.''' |
| 622 | +* Voit kirjoittaa uuden sivun '''<span class=\"plainlinks\">[{{fullurl:{{FULLPAGENAME}}|action=edit}} {{PAGENAME}}]</span>.''' |
621 | 623 | * Jos olet luonut sivun tällä nimellä, se on saatettu poistaa — katso [[Special:Log/delete|poistoloki]].", |
622 | 624 | 'clearyourcache' => "'''Huomautus:''' Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan: |
623 | 625 | *'''Mozilla, Konqueror ja Safari:''' napsauta ''Shift''-näppäin pohjassa päivitä tai paina ''Ctrl-Shift-R'' (''Cmd-Shift-R'' Applella) |
— | — | @@ -908,6 +910,7 @@ |
909 | 911 | # Recent changes linked |
910 | 912 | 'recentchangeslinked' => 'Linkitettyjen sivujen muutokset', |
911 | 913 | 'recentchangeslinked-noresult' => 'Ei muutoksia linkitettyihin sivuihin annetulla aikavälillä.', |
| 914 | +'recentchangeslinked-summary' => "Tämä toimintosivu näyttää muutokset sivuihin, joihin on viitattu tältä sivulta. Tarkkailulistallasi olevat sivut on '''paksunnettu'''.", |
912 | 915 | |
913 | 916 | # Upload |
914 | 917 | 'upload' => 'Tallenna tiedosto', |
— | — | @@ -1094,6 +1097,7 @@ |
1095 | 1098 | 'uncategorizedpages' => 'Luokittelemattomat sivut', |
1096 | 1099 | 'uncategorizedcategories' => 'Luokittelemattomat luokat', |
1097 | 1100 | 'uncategorizedimages' => 'Luokittelemattomat tiedostot', |
| 1101 | +'uncategorizedtemplates' => 'Luokittelemattomat mallineet', |
1098 | 1102 | 'unusedcategories' => 'Käyttämättömät luokat', |
1099 | 1103 | 'unusedimages' => 'Käyttämättömät tiedostot', |
1100 | 1104 | 'popularpages' => 'Suositut sivut', |
— | — | @@ -1149,6 +1153,7 @@ |
1150 | 1154 | 'specialloguserlabel' => 'Käyttäjä', |
1151 | 1155 | 'speciallogtitlelabel' => 'Kohde', |
1152 | 1156 | 'log' => 'Lokit', |
| 1157 | +'all-logs-page' => 'Kaikki lokit', |
1153 | 1158 | 'log-search-legend' => 'Etsi lokeista', |
1154 | 1159 | 'log-search-submit' => 'Hae', |
1155 | 1160 | 'alllogstext' => 'Yhdistetty lokien näyttö. Voit rajoittaa listaa valitsemalla lokityypin, käyttäjän tai sivun johon muutos on kohdistunut.', |
— | — | @@ -1309,6 +1314,7 @@ |
1310 | 1315 | 'protectlogpage' => 'Suojausloki', |
1311 | 1316 | 'protectlogtext' => 'Alla on loki sivujen suojauksista ja suojauksien poistoista. Luettelo tällä hetkellä suojatuista sivuista löytyy [[Special:Protectedpages|suojattuen sivujen luettelosta]].', |
1312 | 1317 | 'protectedarticle' => 'suojasi sivun $1', |
| 1318 | +'modifiedarticleprotection' => 'muutti sivun [[$1]] suojaustasoa', |
1313 | 1319 | 'unprotectedarticle' => 'poisti suojauksen sivulta $1', |
1314 | 1320 | 'protectsub' => 'Sivun $1 suojaus', |
1315 | 1321 | 'confirmprotect' => 'Vahvista suojaus', |
— | — | @@ -1432,6 +1438,7 @@ |
1433 | 1439 | ** Sopimaton käyttäjätunnus', |
1434 | 1440 | 'ipbanononly' => 'Estä vain kirjautumattomat käyttäjät', |
1435 | 1441 | 'ipbcreateaccount' => 'Estä tunnusten luonti', |
| 1442 | +'ipbemailban' => 'Estä käyttäjää lähettämästä sähköpostia', |
1436 | 1443 | 'ipbenableautoblock' => 'Estä viimeisin IP-osoite, josta käyttäjä on muokannut, sekä ne osoitteet, joista hän jatkossa yrittää muokata.', |
1437 | 1444 | 'ipbsubmit' => 'Estä', |
1438 | 1445 | 'ipbother' => 'Vapaamuotoinen kesto', |
— | — | @@ -1460,6 +1467,7 @@ |
1461 | 1468 | 'anononlyblock' => 'vain kirjautumattomat', |
1462 | 1469 | 'noautoblockblock' => 'ei automaattista IP-osoitteiden estoa', |
1463 | 1470 | 'createaccountblock' => 'tunnusten luonti estetty', |
| 1471 | +'emailblock' => 'sähköpostin lähettäminen estetty', |
1464 | 1472 | 'ipblocklist-empty' => 'Estolista on tyhjä.', |
1465 | 1473 | 'ipblocklist-no-results' => 'Pyydettyä IP-osoitetta tai käyttäjätunnusta ei ole estetty.', |
1466 | 1474 | 'blocklink' => 'estä', |
— | — | @@ -1473,6 +1481,7 @@ |
1474 | 1482 | 'block-log-flags-anononly' => 'vain kirjautumattomat käyttäjät', |
1475 | 1483 | 'block-log-flags-nocreate' => 'tunnusten luonti estetty', |
1476 | 1484 | 'block-log-flags-noautoblock' => 'ei automaattista IP-osoitteiden estoa', |
| 1485 | +'block-log-flags-noemail' => 'sähköpostin lähettäminen estetty', |
1477 | 1486 | 'range_block_disabled' => 'Ylläpitäjän oikeus luoda alue-estoja ei ole käytössä.', |
1478 | 1487 | 'ipb_expiry_invalid' => 'Virheellinen umpeutumisaika.', |
1479 | 1488 | 'ipb_already_blocked' => '”$1” on jo estetty.', |
— | — | @@ -2139,11 +2148,6 @@ |
2140 | 2149 | 'lag-warn-normal' => 'Muutokset, jotka ovat uudempia kuin $1 sekuntia, eivät välttämättä näy tällä sivulla.', |
2141 | 2150 | 'lag-warn-high' => 'Tietokannoilla on työjonoa. Muutokset, jotka ovat uudempia kuin $1 sekuntia, eivät välttämättä näy tällä sivulla.', |
2142 | 2151 | |
2143 | | -# Unknown messages |
2144 | | -'block-log-flags-noemail' => 'sähköpostin lähettäminen estetty', |
2145 | | -'emailblock' => 'sähköpostin lähettäminen estetty', |
2146 | | -'ipbemailban' => 'Estä käyttäjää lähettämästä sähköpostia', |
2147 | | - |
2148 | 2152 | ); |
2149 | 2153 | |
2150 | 2154 | ?> |
Index: branches/liquidthreads/languages/messages/MessagesZh_cn.php |
— | — | @@ -1119,6 +1119,7 @@ |
1120 | 1120 | 'specialloguserlabel' => '用户:', |
1121 | 1121 | 'speciallogtitlelabel' => '标题:', |
1122 | 1122 | 'log' => '日志', |
| 1123 | +'all-logs-page' => '所有日志', |
1123 | 1124 | 'log-search-legend' => '搜寻日志', |
1124 | 1125 | 'log-search-submit' => '去', |
1125 | 1126 | 'alllogstext' => '综合显示上传、删除、保护、查封以及管理日志。 |
Index: branches/liquidthreads/languages/messages/MessagesKu_arab.php |
— | — | @@ -0,0 +1,11 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Kurdish (Arab) |
| 5 | + * |
| 6 | + * @addtogroup Language |
| 7 | + * |
| 8 | + */ |
| 9 | + |
| 10 | +$fallback = 'ku-latn'; |
| 11 | + |
| 12 | +?> |
Property changes on: branches/liquidthreads/languages/messages/MessagesKu_arab.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 13 | + native |
Index: branches/liquidthreads/languages/messages/MessagesKu.php |
— | — | @@ -1,895 +1,10 @@ |
2 | 2 | <?php |
3 | | -/** Kurdish (Kurdî / كوردي) |
| 3 | +/** |
| 4 | + * Kurdish (latin) |
4 | 5 | * |
5 | 6 | * @addtogroup Language |
6 | 7 | */ |
7 | 8 | |
8 | | -$namespaceNames = array( |
9 | | - NS_MEDIA => 'Medya', |
10 | | - NS_SPECIAL => 'Taybet', |
11 | | - NS_MAIN => '', |
12 | | - NS_TALK => 'Nîqaş', |
13 | | - NS_USER => 'Bikarhêner', |
14 | | - NS_USER_TALK => 'Bikarhêner_nîqaş', |
15 | | - # NS_PROJECT set by $wgMetaNamespace |
16 | | - NS_PROJECT_TALK => '$1_nîqaş', |
17 | | - NS_IMAGE => 'Wêne', |
18 | | - NS_IMAGE_TALK => 'Wêne_nîqaş', |
19 | | - NS_MEDIAWIKI => 'MediaWiki', |
20 | | - NS_MEDIAWIKI_TALK => 'MediaWiki_nîqaş', |
21 | | - NS_TEMPLATE => 'Şablon', |
22 | | - NS_TEMPLATE_TALK => 'Şablon_nîqaş', |
23 | | - NS_HELP => 'Alîkarî', |
24 | | - NS_HELP_TALK => 'Alîkarî_nîqaş', |
25 | | - NS_CATEGORY => 'Kategorî', |
26 | | - NS_CATEGORY_TALK => 'Kategorî_nîqaş' |
27 | | -); |
| 9 | +$fallback = 'ku-latn'; |
28 | 10 | |
29 | | -$messages = array( |
30 | | -# User preference toggles |
31 | | -'tog-watchlisthideminor' => 'Xeyrandinên biçûk pêşneke', |
32 | | - |
33 | | -'underline-always' => 'Tim', |
34 | | -'underline-never' => 'Ne carekê', |
35 | | - |
36 | | -'skinpreview' => '(Pêşdîtin)', |
37 | | - |
38 | | -# Dates |
39 | | -'sunday' => 'yekşem', |
40 | | -'monday' => 'duşem', |
41 | | -'tuesday' => 'Sêşem', |
42 | | -'wednesday' => 'Çarşem', |
43 | | -'thursday' => 'Pêncşem', |
44 | | -'friday' => 'În', |
45 | | -'saturday' => 'şemî', |
46 | | -'wed' => 'Çarş', |
47 | | -'january' => 'Rêbendan', |
48 | | -'february' => 'reşemî', |
49 | | -'march' => 'adar', |
50 | | -'april' => 'avrêl', |
51 | | -'may_long' => 'gulan', |
52 | | -'june' => 'pûşper', |
53 | | -'july' => 'Tîrmeh', |
54 | | -'august' => 'tebax', |
55 | | -'september' => 'rezber', |
56 | | -'october' => 'kewçêr', |
57 | | -'november' => 'sermawez', |
58 | | -'december' => 'Berfanbar', |
59 | | -'december-gen' => 'Berfanbar', |
60 | | -'jan' => 'rêb', |
61 | | -'feb' => 'reş', |
62 | | -'mar' => 'adr', |
63 | | -'apr' => 'avr', |
64 | | -'may' => 'gul', |
65 | | -'jun' => 'pşr', |
66 | | -'jul' => 'tîr', |
67 | | -'aug' => 'teb', |
68 | | -'sep' => 'rez', |
69 | | -'oct' => 'kew', |
70 | | -'nov' => 'ser', |
71 | | -'dec' => 'ber', |
72 | | - |
73 | | -# Bits of text used by many pages |
74 | | -'categories' => 'Kategorî', |
75 | | -'pagecategories' => '$1 Kategorîyan', |
76 | | -'category_header' => 'Gotarên di kategoriya "$1" de', |
77 | | -'subcategories' => 'Binekategorî', |
78 | | - |
79 | | -'about' => 'Der barê', |
80 | | -'article' => 'Gotar', |
81 | | -'cancel' => 'Betal', |
82 | | -'qbfind' => 'Bibîne', |
83 | | -'qbbrowse' => 'Bigere', |
84 | | -'qbedit' => 'Biguherîne', |
85 | | -'qbpageoptions' => 'Ev rûpel', |
86 | | -'qbmyoptions' => 'Rûpelên min', |
87 | | -'qbspecialpages' => 'Rûpelên taybet', |
88 | | -'moredotdotdot' => 'Zêde...', |
89 | | -'mypage' => 'Rûpela min', |
90 | | -'mytalk' => 'Rûpela guftûgo ya min', |
91 | | -'anontalk' => 'Guftûgo ji bo vê IPê', |
92 | | -'navigation' => 'Navîgasyon', |
93 | | - |
94 | | -'errorpagetitle' => 'Çewtî (Error)', |
95 | | -'returnto' => 'Bizivire $1.', |
96 | | -'tagline' => 'Ji {{SITENAME}}', |
97 | | -'help' => 'Alîkarî', |
98 | | -'search' => 'Lêbigere', |
99 | | -'searchbutton' => 'Lêbigere', |
100 | | -'go' => 'Gotar', |
101 | | -'searcharticle' => 'Gotar', |
102 | | -'history' => 'Dîroka rûpelê', |
103 | | -'history_short' => 'Dîrok / Nivîskar', |
104 | | -'info_short' => 'Zanyarî', |
105 | | -'printableversion' => 'Versiyon ji bo çapkirinê', |
106 | | -'print' => 'Çap', |
107 | | -'edit' => 'Biguherîne', |
108 | | -'editthispage' => 'Vê rûpelê biguherîne', |
109 | | -'delete' => 'Jê bibe', |
110 | | -'deletethispage' => 'Vê rûpelê jê bibe', |
111 | | -'protect' => 'Biparêze', |
112 | | -'protectthispage' => 'Vê rûpelê biparêze', |
113 | | -'unprotect' => 'Parastinê rake', |
114 | | -'unprotectthispage' => 'Parastina vê rûpelê rake', |
115 | | -'newpage' => 'Rûpela nû', |
116 | | -'talkpage' => 'Vê rûpelê guftûgo bike', |
117 | | -'specialpage' => 'Rûpela taybet', |
118 | | -'personaltools' => 'Amûrên şexsî', |
119 | | -'postcomment' => 'Şîroveyekê bişîne', |
120 | | -'articlepage' => 'Li naveroka rûpelê binêre', |
121 | | -'talk' => 'Guftûgo (nîqaş)', |
122 | | -'views' => 'Dîtin', |
123 | | -'toolbox' => 'Qutiya amûran', |
124 | | -'userpage' => 'Rûpelê vê/vî bikarhênerê/î temaşe bike', |
125 | | -'templatepage' => 'Rûpelê şablonê seke', |
126 | | -'viewhelppage' => 'Rûpelê alîkarîyê seke', |
127 | | -'viewtalkpage' => 'Guftûgoyê temaşe bike', |
128 | | -'otherlanguages' => 'Zimanên din', |
129 | | -'redirectedfrom' => '(Hat ragihandin ji $1)', |
130 | | -'lastmodifiedat' => 'Ev rûpel carî dawî di $2, $1 de hat guherandin.', # $1 date, $2 time |
131 | | -'viewcount' => 'Ev rûpel $1 car hat xwestin.', |
132 | | -'protectedpage' => 'Rûpela parastî', |
133 | | - |
134 | | -# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations). |
135 | | -'aboutsite' => 'Der barê {{SITENAME}}', |
136 | | -'aboutpage' => '{{SITENAME}}:Der barê', |
137 | | -'bugreports' => 'Raporên çewtiyan', |
138 | | -'bugreportspage' => '{{ns:project}}:Raporên çewtiyan', |
139 | | -'copyright' => 'Ji bo naverokê $1 derbas dibe.', |
140 | | -'copyrightpagename' => 'Mafên nivîsanê', |
141 | | -'copyrightpage' => '{{ns:project}}:Mafên nivîsanê', |
142 | | -'currentevents' => 'Bûyerên rojane', |
143 | | -'currentevents-url' => 'Bûyerên rojane', |
144 | | -'disclaimers' => 'Ferexetname', |
145 | | -'edithelp' => 'Alîkarî ji bo guherandin', |
146 | | -'edithelppage' => '{{ns:project}}: Rûpelekê çawa biguherînim', |
147 | | -'faq' => 'Pirs û Bersîv (FAQ)', |
148 | | -'faqpage' => '{{SITENAME}}: Pirs û Bersîv', |
149 | | -'helppage' => '{{SITENAME}}: Alîkarî', |
150 | | -'mainpage' => 'Destpêk', |
151 | | -'portal' => 'Portala komê', |
152 | | -'portal-url' => '{{ns:project}}:Portala komê', |
153 | | -'sitesupport' => 'Ji bo Weqfa Wikimedia Beş', |
154 | | - |
155 | | -'badaccess' => 'Eror li bi dest Hînan', |
156 | | - |
157 | | -'versionrequired' => 'Verzîyonê $1 ji MediaWiki pêwîste', |
158 | | -'versionrequiredtext' => 'Verzîyonê $1 ji MediaWiki pêwîste ji bo bikaranîna vê rûpelê. Li [[{{ns:special}}:version|versyon]] seke.', |
159 | | - |
160 | | -'ok' => 'Temam', |
161 | | -'retrievedfrom' => 'Ji "$1" hatiye standin.', |
162 | | -'youhavenewmessages' => '$1 yên te hene ($2).', |
163 | | -'newmessageslink' => 'Nameyên nû', |
164 | | -'newmessagesdifflink' => 'Ciyawazî ji revîzyona berê re', |
165 | | -'editsection' => 'biguherîne', |
166 | | -'editold' => 'biguherîne', |
167 | | -'toc' => 'Tabloya Naverokê', |
168 | | -'showtoc' => 'nîşan bide', |
169 | | -'hidetoc' => 'veşêre', |
170 | | -'viewdeleted' => 'Li $1 seke?', |
171 | | - |
172 | | -# Short words for each namespace, by default used in the 'article' tab in monobook |
173 | | -'nstab-main' => 'Gotar', |
174 | | -'nstab-user' => 'Bikarhêner', |
175 | | -'nstab-media' => 'Medya', |
176 | | -'nstab-special' => 'Taybet', |
177 | | -'nstab-project' => 'Rûpela projeyê', |
178 | | -'nstab-image' => 'Wêne', |
179 | | -'nstab-mediawiki' => 'Peyam', |
180 | | -'nstab-template' => 'Şablon', |
181 | | -'nstab-help' => 'Alîkarî', |
182 | | -'nstab-category' => 'Kategorî', |
183 | | - |
184 | | -# Main script and global functions |
185 | | -'nosuchaction' => 'Çalakiyek bi vê rengê tune', |
186 | | -'nosuchspecialpage' => 'Rûpeleke taybet bi vê rengê tune', |
187 | | - |
188 | | -# General errors |
189 | | -'error' => 'Çewtî (Error)', |
190 | | -'noconnect' => 'Bibexşîne! Çend pirsgrêkên teknîkî heye, girêdan ji pêşkêşvanê (suxrekirê, server) re niha ne gengaz e.<br />$1', |
191 | | -'enterlockreason' => 'Hoyek ji bo bestin binav bike, herweha zemaneke mezende kirî ji bo helgirtina bestinê!', |
192 | | -'filerenameerror' => 'Navê faylê "$1" nebû "$2".', |
193 | | -'filenotfound' => 'Dosya bi navê "$1" nehat dîtin.', |
194 | | -'badarticleerror' => 'Ev çalakî di vê rûpelê de nabe.', |
195 | | -'badtitle' => 'Sernivîsa nebaş', |
196 | | -'viewsource' => 'Çavkanî', |
197 | | -'viewsourcefor' => 'ji $1 ra', |
198 | | - |
199 | | -# Login and logout pages |
200 | | -'logouttitle' => 'Derketina bikarhêner', |
201 | | -'logouttext' => 'Tu niha derketî (logged out). |
202 | | - |
203 | | -Tu dikarî di {{SITENAME}} da niha wekî bikarhênerekî nedîyarkirî bikarbînê, yan jî tu dikarî dîsa bi vî navê xwe yan navekî din wek bikarhêner têkevî {{SITENAME}}. Bila di bîra te de be ku gengaz e hin rûpel mîna ku tu hîn bi navê xwe qeyd kirîyî werin nîşandan, heta ku tu nîşanên çavlêgerandina (browser) xwe jênebî.', |
204 | | -'welcomecreation' => '<h2>Bi xêr hatî, $1!</h2><p>Hesaba te hat afirandin. Tu dikarî niha tercîhên xwe eyar bikî.', |
205 | | -'loginpagetitle' => 'Qeyda bikarhêner (User login)', |
206 | | -'yourname' => 'Navê te wek bikarhêner (user name)', |
207 | | -'yourpassword' => 'Şîfreya te (password)', |
208 | | -'yourpasswordagain' => 'Şîfreya xwe careke din binîvîse', |
209 | | -'remembermypassword' => 'Şifreya min di her rûniştdemê de bîne bîra xwe.', |
210 | | -'yourdomainname' => 'Domaînê te', |
211 | | -'loginproblem' => '<b>Di qeyda te (login) de pirsgirêkek derket.</b><br />Careke din biceribîne!', |
212 | | -'alreadyloggedin' => '<font color=red><b>Bikarhêner $1, tu jixwe têketî!</b></font><br />', |
213 | | -'login' => 'Têkeve (login)', |
214 | | -'loginprompt' => "<b>Eger tu xwe nû qeyd bikî, nav û şîfreya xwe hilbijêre.</b> Ji bo xwe qeyd kirinê di {{SITENAME}} de divê ku ''cookies'' gengaz be.", |
215 | | -'userlogin' => 'Têkeve an hesabeke nû çêke', |
216 | | -'logout' => 'Derkeve (log out)', |
217 | | -'userlogout' => 'Derkeve', |
218 | | -'notloggedin' => 'Xwe qeyd nekir (not logged in)', |
219 | | -'nologin' => 'Tu hêj ne endamî? $1.', |
220 | | -'nologinlink' => 'Bibe endam', |
221 | | -'createaccount' => 'Hesabê nû çêke', |
222 | | -'gotaccount' => 'Hesabê te heye? $1.', |
223 | | -'gotaccountlink' => 'Têkeve (login)', |
224 | | -'createaccountmail' => 'bi e-name', |
225 | | -'badretype' => 'Herdu şîfreyên ku te nivîsîn hevûdin nagirin.', |
226 | | -'youremail' => 'E-maila te*', |
227 | | -'username' => 'Navê bikarhêner:', |
228 | | -'yourrealname' => 'Navê te yê rastî*', |
229 | | -'yourlanguage' => 'Ziman', |
230 | | -'yournick' => 'Leqeba te (ji bo îmza)', |
231 | | -'loginerror' => 'Çewtî (Login error)', |
232 | | -'nocookieslogin' => 'Ji bo qeydkirina bikarhêneran {{SITENAME}} "cookies" bikartîne. Te fonksîyona "cookies" girtîye. Xêra xwe kerema xwe "cookies" gengaz bike û careke din biceribîne.', |
233 | | -'noname' => 'Navê ku te nivîsand derbas nabe.', |
234 | | -'loginsuccesstitle' => 'Têketin serkeftî!', |
235 | | -'loginsuccess' => 'Tu niha di {{SITENAME}} de qeydkirî yî wek "$1".', |
236 | | -'nosuchuser' => 'Bikarhênera/ê bi navê "$1" tune. Navê rast binivîse an bi vê formê <b>hesabeke nû çêke</b>. (Ji bo hevalên nû "Têkeve" çênabe!)', |
237 | | -'wrongpassword' => 'Şifreya ku te nivîsand şaşe. Ji kerema xwe careke din biceribîne.', |
238 | | -'wrongpasswordempty' => 'Cîhê şîfreya te vala ye. Carekê din binivisîne.', |
239 | | -'mailmypassword' => 'Şîfreyeke nû bi e-mail ji min re bişîne', |
240 | | -'noemail' => 'Navnîşana bikarhênerê/î "$1" nehat tomar kirine.', |
241 | | -'passwordsent' => 'Ji navnîşana e-mail ku ji bo "$1" hat tomarkirin şîfreyekê nû hat şandin. Vê bistîne û dîsa têkeve.', |
242 | | -'acct_creation_throttle_hit' => 'Biborîne! Te hesab $1 vekirine. Tu êdî nikarî hesabên din vekî.', |
243 | | - |
244 | | -# Edit page toolbar |
245 | | -'bold_sample' => 'Nivîsa estûr', |
246 | | -'bold_tip' => 'Nivîsa estûr', |
247 | | -'italic_sample' => 'Nivîsa xwar (îtalîk)', |
248 | | -'italic_tip' => 'Nivîsa xwar (îtalîk)', |
249 | | -'link_sample' => 'Navê lînkê', |
250 | | -'link_tip' => 'Lînka hundir', |
251 | | -'extlink_sample' => 'http://www.minak.com navê lînkê', |
252 | | -'extlink_tip' => 'Lînka derve (http:// di destpêkê de ji bîr neke)', |
253 | | -'headline_sample' => 'Nivîsara sernameyê', |
254 | | -'headline_tip' => 'Sername asta 2', |
255 | | -'nowiki_sample' => 'Nivîs ku nebe formatkirin', |
256 | | -'image_sample' => 'Mînak.jpg', |
257 | | -'image_tip' => 'Wêne li hundirê gotarê', |
258 | | -'media_sample' => 'Mînak.ogg', |
259 | | -'sig_tip' => 'Îmze û demxeya wext ya te', |
260 | | -'hr_tip' => 'Rastexêza berwarî (kêm bi kar bîne)', |
261 | | - |
262 | | -# Edit pages |
263 | | -'summary' => 'Kurte û çavkanî (Te çi kir?)', |
264 | | -'subject' => 'Mijar/sernivîs', |
265 | | -'minoredit' => 'Ev guheraniyekê biçûk e', |
266 | | -'watchthis' => 'Vê gotarê bişopîne', |
267 | | -'savearticle' => 'Rûpelê tomar bike', |
268 | | -'preview' => 'Pêşdîtin', |
269 | | -'showpreview' => 'Pêşdîtin', |
270 | | -'showdiff' => 'Guherandinê nîşan bide', |
271 | | -'anoneditwarning' => 'Tu ne têketî. Navnîşana IP ya te wê di dîroka guherandina vê rûpelê de bê tomar kirin.', |
272 | | -'subject-preview' => 'Pêşdîtinê sernivîsê', |
273 | | -'blockedtitle' => 'Bikarhêner hat asteng kirin', |
274 | | -'blockedtext' => 'Navê bikarhêner an jî navnîşana IP ya te ji aliyê $1 hat asteng kirin. Sedema vê ev e:<br />\'\'$2\'\'<p>Tu dikarî bi $1 an yek ji [[{{SITENAME}}:Koordînator|koordînatorên din]] re ser vê blokê guftûgo bikî. |
275 | | - |
276 | | -Têbînî: Tu nikarî fonksiyona "Ji vê bikarhêner re E-mail bişîne" bi kar bîne eger te navnîşana email a xwe di "[[{{ns:special}}:Preferences|Tercîhên min]]" de nenivîsand. |
277 | | - |
278 | | -Navnîşana te ya IP $3 ye. Ji kerema xwe eger pirsên te hebe vê navnîşanê bibêje.', |
279 | | -'whitelistedittitle' => 'Ji bo guherandinê vê gotarê tu gireke xwe qeydbikê.', |
280 | | -'whitelistedittext' => 'Ji bo guherandinê vê gotarê tu gireke xwe [[{{ns:special}}:Userlogin|li vir]] qeydbikê.', |
281 | | -'whitelistreadtitle' => 'Ji xandinê vê gotarê tu gireke xwe qeydbikê', |
282 | | -'whitelistreadtext' => 'Ji bo xandinê vê gotarê tu gireke xwe [[{{ns:special}}:Userlogin|li vir]] qedybikê.', |
283 | | -'whitelistacctitle' => 'Tu nikanê xwe qeydbikê.', |
284 | | -'whitelistacctext' => 'To be allowed to create accounts in this wiki you have to [[{{ns:special}}:Userlogin|log]] in and have the appropriate permissions.', |
285 | | -'loginreqtitle' => 'Têketin pêwîst e', |
286 | | -'accmailtitle' => 'Şîfre hat şandin.', |
287 | | -'accmailtext' => "Şîfreya '$1' hat şandin ji $2 re.", |
288 | | -'newarticle' => '(Nû)', |
289 | | -'newarticletext' => "<div style=\"font-size:small;color:#003333;border-width:1px;border-style:solid;border-color:#aaaaaa;padding:3px\"> |
290 | | -Ev rûpel hîn tune. Eger tu bixwazî vê rûpelê çêkî, dest bi nivîsandinê bike û piştre qeyd bike. |
291 | | -'''Wêrek be''', biceribîne!<br /> Ji bo alîkarî binêre: [[Help:Alîkarî|Alîkarî]].<br /> Eger tu bi şaştî hatî, bizivire rûpela berê. </div>", |
292 | | -'anontalkpagetext' => "---- |
293 | | -''Ev rûpela guftûgo ye ji bo bikarhênerên nediyarkirî ku hîn hesabekî xwe çênekirine an jî bikarnaînin. |
294 | | -Ji ber vê yekê divê em wan bi navnîşana IP ya hejmarî nîşan bikin. Navnîşaneke IP dikare ji aliyê gelek kesan ve were bikaranîn. |
295 | | -Heger tu bikarhênerekî nediyarkirî bî û bawerdikî ku nirxandinên bê peywend di der barê te de hatine kirin ji kerema xwe re |
296 | | -[[{{ns:special}}:Userlogin|hesabekî xwe veke an jî têkeve Ensîklopediya Azad]] da ku tu xwe ji tevlîheviyên bi bikarhênerên din re biparêzî.''", |
297 | | -'noarticletext' => 'Ev rûpel niha vala ye, tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigere]] an |
298 | | -[{{fullurl:{{FULLPAGENAME}}|action=edit}} vê rûpelê biguherînî].', |
299 | | -'usercssjsyoucanpreview' => "<strong>Tîp:</strong> 'Pêşdîtin' bikarwîne ji bo tu bibînê çawa CSS/JS'ê te yê nuh e berî tomarkirinê.", |
300 | | -'usercsspreview' => "'''Zanibe ku tu bes CSS'ê xwe pêşdibînê, ew ne hatîye tomarkirin!'''", |
301 | | -'updated' => '(Hat taze kirin)', |
302 | | -'note' => '<strong>Not:</strong>', |
303 | | -'previewnote' => 'Ji bîr neke ku ev bi tenê çavdêriyek e, ev rûpel hîn nehat qeyd kirin!', |
304 | | -'editing' => 'Biguherîne: "$1"', |
305 | | -'editinguser' => 'Biguherîne: "$1"', |
306 | | -'editingsection' => 'Tê guherandin: $1 (beş)', |
307 | | -'editingcomment' => '$1 (şîrove) tê guherandin.', |
308 | | -'editconflict' => 'Têkçûna guherandinan: $1', |
309 | | -'explainconflict' => 'Ji dema te dest bi guherandinê kir heta niha kesekê/î din ev rûpel guherand. |
310 | | - |
311 | | -Jor guhartoya heyî tê dîtîn. Guherandinên te jêr tên nîşan dan. Divê tû wan bikî yek. Heke niha tomar bikî, <b>bi tene</b> nivîsara qutiya jor wê bê tomarkirin. <p>', |
312 | | -'yourtext' => 'Nivîsara te', |
313 | | -'storedversion' => 'Versiyona qeydkirî', |
314 | | -'editingold' => '<strong>HÎŞYAR: Tu ser revîsyoneke kevn a vê rûpelê dixebitî. |
315 | | -Eger tu qeyd bikî, hemû guhertinên ji vê revîzyonê piştre winda dibin. |
316 | | -</strong>', |
317 | | -'yourdiff' => 'Ciyawazî', |
318 | | -'copyrightwarning' => "Dîqat bike: Hemû tevkariyên {{SITENAME}} di bin $2 de tên belav kirin (ji bo hûragahiyan li $1 binêre). |
319 | | -Eger tu nexwazî ku nivîsên te bê dilrehmî bên guherandin û li gora keyfa herkesî bên belavkirin, li vir neweşîne.<br /> |
320 | | -Tu soz didî ku te ev bi xwe nivîsand an jî ji çavkaniyekê azad an geliyane ''(public domain)'' girt. <strong>BERHEMÊN MAFÊN WAN PARASTÎ (©) BÊ DESTÛR NEWEŞÎNE!</strong>", |
321 | | -'longpagewarning' => "HIŞYAR: Drêjahiya vê rûpelê $1 kB (kilobayt) e, ev pir e. Dibe ku çend ''browser'' |
322 | | -baş nikarin rûpelên ku ji 32 kB drêjtir in biguherînin. Eger tu vê rûpelê beş beş bikî gelo ne çêtir e?", |
323 | | -'protectedpagewarning' => "'''ŞIYARÎ''': Ev rûpela tê parastin. Bi tenê bikarhênerên ku xwediyên mafên \"koordînator\" (sysop) ne dikarin vê rûpelê biguherînin.<br /> |
324 | | - |
325 | | -Zanibe tu bi qebûlkirinên rûpelên astengkirinê kardikê!", |
326 | | -'templatesused' => 'Şablon di van rûpelan da tê bikaranîn', |
327 | | -'templatesusedpreview' => 'Şablon yê di vê pêşdîtinê da tên bikaranîn:', |
328 | | -'templatesusedsection' => 'Şablon yê di vê perçê da tên bikaranîn:', |
329 | | -'template-protected' => '(tê parastin)', |
330 | | -'template-semiprotected' => '(nîv-parastî)', |
331 | | - |
332 | | -# "Undo" feature |
333 | | -'undo-summary' => 'Rêvîsyona $1 yê [[{{ns:special}}:Contributions/$2|$2]] ([[User talk:$2|guftûgo]]) şondakir', |
334 | | - |
335 | | -# History pages |
336 | | -'revhistory' => 'Dîroka revîzyonan', |
337 | | -'viewpagelogs' => 'Înformasîyonan li ser vê rûpelê seke', |
338 | | -'nohistory' => 'Ew rûpel dîroka guherandinê tune.', |
339 | | -'revnotfound' => 'Revîzyon nehat dîtin', |
340 | | -'currentrev' => 'Revîzyona niha', |
341 | | -'revisionasof' => 'Revîzyon a $1', |
342 | | -'previousrevision' => '←Rêvîzyona kevintir', |
343 | | -'nextrevision' => 'Revîzyona nûtir→', |
344 | | -'currentrevisionlink' => 'Revîzyona niha nîşan bide', |
345 | | -'cur' => 'ferq', |
346 | | -'next' => 'pêş', |
347 | | -'last' => 'berê', |
348 | | -'orig' => 'orîj', |
349 | | -'histlegend' => 'Legend: (ferq) = cudayî nav vê û versiyon a niha, |
350 | | -(berê) = cudayî nav vê û yê berê vê, B = guhêrka biçûk', |
351 | | -'histfirst' => 'Kevintirîn', |
352 | | -'histlast' => 'Nûtirîn', |
353 | | - |
354 | | -# Revision feed |
355 | | -'history-feed-empty' => "The requested page doesn't exist. |
356 | | -It may have been deleted from the wiki, or renamed. |
357 | | -Try [[{{ns:special}}:Search|searching on the wiki]] for relevant new pages.", |
358 | | - |
359 | | -# Revision deletion |
360 | | -'rev-delundel' => 'nîşan bide/veşêre', |
361 | | - |
362 | | -# Diffs |
363 | | -'difference' => '(Ciyawaziya nav revîzyonan)', |
364 | | -'lineno' => 'Dêrra $1:', |
365 | | -'compareselectedversions' => 'Guhartoyan Helsengêne', |
366 | | -'editundo' => 'Betalbike', |
367 | | - |
368 | | -# Search results |
369 | | -'searchresults' => 'Encamên lêgerînê', |
370 | | -'searchresulttext' => 'Ji bo zêdetir agahî der barê lêgerînê di {{SITENAME}} da, binêre $1.', |
371 | | -'searchsubtitle' => 'Ji bo query "[[:$1]]"', |
372 | | -'searchsubtitleinvalid' => 'Ji bo query "$1"', |
373 | | -'noexactmatch' => "'''Rûpeleke bi navê \"\$1\" tune.''' Tu dikarî [[:\$1|vê rûpelê biafirînî]]", |
374 | | -'titlematches' => 'Dîtinên di sernivîsên gotaran de', |
375 | | -'notitlematches' => 'Di nav sernivîsan de nehat dîtin.', |
376 | | -'textmatches' => 'Dîtinên di nivîsara rûpelan de', |
377 | | -'notextmatches' => 'Di nivîsarê de nehat dîtin.', |
378 | | -'prevn' => '$1 paş', |
379 | | -'nextn' => '$1 pêş', |
380 | | -'viewprevnext' => '($1) ($2) ($3).', |
381 | | -'showingresults' => '<b>$1</b> encam, bi #<b>$2</b> dest pê dike.', |
382 | | -'showingresultsnum' => '<b>$3</b> encam, bi #<b>$2</b> dest pê dike.', |
383 | | -'powersearch' => 'Lê bigere', |
384 | | -'powersearchtext' => 'Lêgerîn di nav cihên navan de:<br /> |
385 | | -$1<br /> |
386 | | -$2 Ragihandinan nîşan bide &nbsp; Lêbigere: $3 $9', |
387 | | -'searchdisabled' => '<p>Tu dikarî li {{SITENAME}} bi Google an Yahoo! bigere. Têbînî: Dibe ku encamen lêgerîne ne yên herî nû ne. |
388 | | -</p>', |
389 | | -'blanknamespace' => '(Serekî)', |
390 | | - |
391 | | -# Preferences page |
392 | | -'preferences' => 'Tercîhên min', |
393 | | -'prefsnologin' => 'Xwe qeyd nekir', |
394 | | -'changepassword' => 'Şîfre biguherîne', |
395 | | -'skin' => 'Pêste', |
396 | | -'datetime' => 'Dem û rêkewt', |
397 | | -'prefs-personal' => 'Agahiyên bikarhênerê/î', |
398 | | -'prefs-rc' => 'Guherandinên dawî', |
399 | | -'prefs-misc' => 'Eyaren cuda', |
400 | | -'saveprefs' => 'Tercîhan qeyd bike', |
401 | | -'oldpassword' => 'Şîfreya kevn', |
402 | | -'newpassword' => 'Şîfreya nû', |
403 | | -'retypenew' => 'Şîfreya nû careke din binîvîse', |
404 | | -'textboxsize' => 'Guheranin', |
405 | | -'rows' => 'Rêz', |
406 | | -'columns' => 'sitûn', |
407 | | -'searchresultshead' => 'Eyarên encamên lêgerinê', |
408 | | -'savedprefs' => 'Tercîhên te qeyd kirî ne.', |
409 | | -'default' => 'asayî', |
410 | | -'files' => 'Dosya', |
411 | | - |
412 | | -# User rights |
413 | | -'userrights-lookup-user' => 'Îdarekirina grûpan', |
414 | | -'userrights-user-editname' => 'Navî bikarhênerê têke:', |
415 | | -'userrights-groupsmember' => 'Endamê:', |
416 | | - |
417 | | -# Groups |
418 | | -'group-sysop' => 'Koordînatoran', |
419 | | - |
420 | | -'group-sysop-member' => 'Koordînator', |
421 | | - |
422 | | -# User rights log |
423 | | -'rightsnone' => '(tune)', |
424 | | - |
425 | | -# Recent changes |
426 | | -'nchanges' => '$1 guherandin', |
427 | | -'recentchanges' => 'Guherandinên dawî', |
428 | | -'rcnote' => "Jêr {{PLURAL:$1|'''1''' xeyrandin|'''$1''' xeyrandinên dawî}} tên wêşandin yê {{PLURAL:$2|rojê dawî|'''$2''' rojên dawî}}. Ji $3.", |
429 | | -'rclistfrom' => 'an jî guherandinên ji $1 şûnda nîşan bide.', |
430 | | -'rclinks' => '$1 guherandinên di $2 rojên dawî de nîşan bide<br />$3', |
431 | | -'diff' => 'ciyawazî', |
432 | | -'hist' => 'dîrok', |
433 | | -'hide' => 'veşêre', |
434 | | -'show' => 'nîşan bide', |
435 | | -'minoreditletter' => 'B', |
436 | | -'newpageletter' => 'Nû', |
437 | | - |
438 | | -# Recent changes linked |
439 | | -'recentchangeslinked' => 'Guherandinên peywend', |
440 | | - |
441 | | -# Upload |
442 | | -'upload' => 'Wêneyekî barbike', |
443 | | -'uploadbtn' => 'Wêneyê (ya tiştekî din ya mêdya) barbike', |
444 | | -'reupload' => 'Dîsa barbike', |
445 | | -'uploadnologin' => 'Xwe qeyd nekir', |
446 | | -'uploadnologintext' => 'Ji bo barkirina wêneyan divê ku tu [[{{ns:special}}:Userlogin|têkevî]].', |
447 | | -'uploadtext' => "Berê tu wêneyên nû bar bikî, ji bo dîtin an vedîtina wêneyên ku ji xwe hene binêre: [[Special:Imagelist|lîsteya wêneyên barkirî]]. |
448 | | -Herwisa wêneyên ku hatine barkirin an jî jê birin li vir dikarî bibînî: [[Special:Log/upload|reşahiya barkiriyan]]. |
449 | | -Yek ji lînkên jêr ji bo bikarhînana wêne an faylê di gotarê de bikar bihîne: |
450 | | -* '''<nowiki>[[</nowiki>{{ns:Image}}:File.jpg]]''' |
451 | | -* '''<nowiki>[[</nowiki>{{ns:Image}}:File.png|alt text]]''' anjî ji bo faylên dengî |
452 | | -* '''<nowiki>[[</nowiki>{{ns:Media}}:File.ogg]]'''", |
453 | | -'filename' => 'Navê dosyayê', |
454 | | -'filedesc' => 'Kurte', |
455 | | -'fileuploadsummary' => 'Kurte:', |
456 | | -'filesource' => 'Çavkanî', |
457 | | -'uploadedfiles' => 'Dosyayên bar kirî', |
458 | | -'ignorewarning' => 'Hişyarê qebûl neke û dosyayê qeyd bike.', |
459 | | -'ignorewarnings' => 'Guh nede hîşyaran', |
460 | | -'minlength' => 'Navê wêne bi lanî kêm dive ji 3 tîpan pêtir be.', |
461 | | -'badfilename' => 'Navê vî wêneyî hat guherandin û bû "$1".', |
462 | | -'fileexists-forbidden' => 'Medyayek bi vê navî heye; xêra xwe şonda here û vê medyayê bi navekî din barbike. |
463 | | -[[Image:$1|thumb|center|$1]]', |
464 | | -'successfulupload' => 'Barkirin serkeftî', |
465 | | -'fileuploaded' => 'Barkirina dosyaya bi navê $1 serkeftî. |
466 | | -Ji kerema xwe, biçe: $2 û agahî li der barê dosyayê binivîse (ji ku derê hat girtin, kîngê hat çêkirin, kê çêkir û hwd.) |
467 | | - |
468 | | -Heke ev dosya wêneyek be, bi vî rengî bi kar bîne: |
469 | | -<br /> |
470 | | -<tt><nowiki>[[</nowiki>{{ns:Image}}:$1|thumb|Binnivîs]]</tt>', |
471 | | -'uploadwarning' => 'Hişyara barkirinê', |
472 | | -'savefile' => 'Dosyayê tomar bike', |
473 | | -'uploadedimage' => '"$1" barkirî', |
474 | | -'sourcefilename' => 'Navî wêneyê (ya tiştekî din ya mêdya)', |
475 | | -'destfilename' => 'Navî wêneyê (ya tiştekî din ya mêdya) yê xastî', |
476 | | -'watchthisupload' => 'Vê rûpelê bişopîne', |
477 | | - |
478 | | -# Image list |
479 | | -'imagelist' => 'Listeya wêneyan', |
480 | | -'imagelisttext' => 'Below is a list of $1 files sorted $2.', |
481 | | -'ilsubmit' => 'Lêbigere', |
482 | | -'showlast' => '$1 wêneyên dawî bi rêz kirî $2 nîşan bide.', |
483 | | -'byname' => 'li gor navê', |
484 | | -'bydate' => 'li gor dîrokê', |
485 | | -'bysize' => 'li gor mezinayiyê', |
486 | | -'imghistory' => 'Dîroka vî wêneyî', |
487 | | -'deleteimg' => 'jêbibe', |
488 | | -'imagelinks' => 'Lînkên vî wêneyî', |
489 | | -'linkstoimage' => 'Di van rûpelan de lînkek ji vî wêneyî re heye:', |
490 | | -'nolinkstoimage' => 'Rûpelekî ku ji vî wêneyî re girêdankê çêdike nîne.', |
491 | | -'noimage' => 'Medyayek bi vê navî tune, lê tu kanî $1', |
492 | | -'noimage-linktext' => 'wê barbike', |
493 | | - |
494 | | -# MIME search |
495 | | -'download' => 'dabezandin', |
496 | | - |
497 | | -# Unwatched pages |
498 | | -'unwatchedpages' => 'Gotar ê ne tên şopandin', |
499 | | - |
500 | | -# Unused templates |
501 | | -'unusedtemplateswlh' => 'lînkên din', |
502 | | - |
503 | | -# Statistics |
504 | | -'statistics' => 'Statîstîk', |
505 | | -'sitestats' => 'Statîstîkên rûpelê', |
506 | | -'userstats' => 'Statistîkên bikarhêneran', |
507 | | -'sitestatstext' => "Di ''database'' de <b>$1</b> rûpel hene. Tê de rûpelên guftûgoyê, rûpelên der barê {{SITENAME}}, rûpelên pir kurt, rûpelên ragihandinê (redirect) û rûpelên din ku qey ne gotar in hene. |
508 | | - |
509 | | -Derve wan, '''$2''' rûpel hene ku qey '''gotarên rewa''' ne. |
510 | | - |
511 | | -Ji 28'ê çileya 2004 heta roja îro <b>$4</b> carî rûpel hatin guherandin û wergî '''$5''' guherandin her rûpel. |
512 | | - |
513 | | -Dirêjbûnê „[[m:Help:Job queue|Job queue]]“: '''$7'''. |
514 | | - |
515 | | - |
516 | | -Fonksiyonên ku hîn rast naxebitin: |
517 | | -*<b>$3</b> rûpel tê şopandin |
518 | | -*<b>$5</b> xeyrandinên her rûpelê |
519 | | -*<b>$6</b> pêşdîtin her rûpelê.", |
520 | | -'userstatstext' => '<b>$1</b> bikarhênerên qeydkirî hene. Ji wan <b>$2</b> administrator/koordînator in. (Binêre $3). |
521 | | -<br /><br /> |
522 | | -Ji bo statîstîkên din ser rûpela Destpêkê biçe: <b>Statîstîk</b>', |
523 | | - |
524 | | -'disambiguations' => 'Rûpelên cudakirinê', |
525 | | - |
526 | | -'brokenredirects' => 'Ragihandinên jê bûye', |
527 | | - |
528 | | -# Miscellaneous special pages |
529 | | -'nbytes' => '$1 bayt', |
530 | | -'nlinks' => '$1 lînk', |
531 | | -'nmembers' => '$1 endam', |
532 | | -'nviews' => '$1 dîtin', |
533 | | -'lonelypages' => 'Rûpelên sêwî', |
534 | | -'uncategorizedpages' => 'Rûpelên bê kategorî', |
535 | | -'uncategorizedcategories' => 'Kategoriyên bê kategorî', |
536 | | -'unusedcategories' => 'Kategoriyên ku nayên bi kar anîn', |
537 | | -'unusedimages' => 'Wêneyên ku nayên bi kar anîn', |
538 | | -'popularpages' => 'Rûpelên populer', |
539 | | -'wantedcategories' => 'Kategorîyên tên xwestin', |
540 | | -'wantedpages' => 'Rûpelên ku tên xwestin', |
541 | | -'mostcategories' => 'Gotar bi pir kategorîyan', |
542 | | -'allpages' => 'Hemû rûpel', |
543 | | -'randompage' => 'Rûpelek bi helkeft', |
544 | | -'shortpages' => 'Rûpelên kurt', |
545 | | -'longpages' => 'Rûpelên dirêj', |
546 | | -'deadendpages' => 'Rûpelên bê dergeh', |
547 | | -'listusers' => 'Lîsteya bikarhêneran', |
548 | | -'specialpages' => 'Rûpelên taybet', |
549 | | -'spheading' => 'Rûpelên taybet ji bo hemû bikarhêneran', |
550 | | -'newpages' => 'Rûpelên nû', |
551 | | -'ancientpages' => 'Gotarên kevintirîn', |
552 | | -'move' => 'Navê rûpelê biguherîne', |
553 | | -'movethispage' => 'Vê rûpelê bigerîne', |
554 | | - |
555 | | -# Book sources |
556 | | -'booksources' => 'Çavkaniyên pirtûkan', |
557 | | - |
558 | | -'categoriespagetext' => 'Di vê wîkiyê de ev kategorî hene:', |
559 | | -'groups' => 'Grûpen bikarhêneran', |
560 | | -'alphaindexline' => '$1 heta $2', |
561 | | -'version' => 'Verzîyon', |
562 | | - |
563 | | -# Special:Log |
564 | | -'specialloguserlabel' => 'Bikarhêner:', |
565 | | -'log' => 'Reşahiyan', |
566 | | -'logempty' => 'Tişt di vir da tune.', |
567 | | - |
568 | | -# Special:Allpages |
569 | | -'nextpage' => 'Rûpela pêşî ($1)', |
570 | | -'allpagesfrom' => 'Pêşdîtina rûpelan bi dest pê kirin ji', |
571 | | -'allarticles' => 'Hemû gotar', |
572 | | -'allinnamespace' => 'Hemû rûpelan ($1 boşahî a nav)', |
573 | | -'allpagesprev' => 'Pêş', |
574 | | -'allpagesnext' => 'Paş', |
575 | | -'allpagessubmit' => 'Biçe', |
576 | | -'allpagesprefix' => 'Nîşan bide rûpelên bi pêşgira:', |
577 | | - |
578 | | -# E-mail user |
579 | | -'mailnologin' => 'Navnîşan neşîne', |
580 | | -'emailuser' => 'Ji vê/î bikarhênerê/î re e-name bişîne', |
581 | | -'emailpage' => 'E-name bikarhêner', |
582 | | -'defemailsubject' => '{{SITENAME}} e-name', |
583 | | -'noemailtitle' => 'Navnîşana e-name tune', |
584 | | -'emailfrom' => 'Ji', |
585 | | -'emailto' => 'Bo', |
586 | | -'emailsubject' => 'Mijar', |
587 | | -'emailmessage' => 'Name', |
588 | | -'emailsend' => 'Bişîne', |
589 | | -'emailsent' => 'E-name hat şandin', |
590 | | -'emailsenttext' => 'E-nameya te hat şandin.', |
591 | | - |
592 | | -# Watchlist |
593 | | -'watchlist' => 'Lîsteya min ya şopandinê', |
594 | | -'mywatchlist' => 'Lîsteya min ya şopandinê', |
595 | | -'watchlistfor' => '(ji bo $1)', |
596 | | -'watchlistanontext' => 'Ji bo sekirinê ya xeyrandinê lîsteya te ya şopandinê tu gireke xwe $1.', |
597 | | -'watchlistcount' => "'''$1 qeydkirin li lîsteya te ya şopandinê bi guftûgoran jî hene.'''", |
598 | | -'watchlistcleartext' => 'Di rast dixazê wan betalbikê?', |
599 | | -'watchlistclearbutton' => 'Lîsteya te ya şopandinê betalbike', |
600 | | -'watchlistcleardone' => 'Lîsteya te ya şopandinê hate betalkirin. $1 gotar çûn.', |
601 | | -'watchnologin' => 'Te xwe qeyd nekirîye.', |
602 | | -'watchnologintext' => 'Ji bo xeyrandinê lîsteya te ya şopandinê tu gireke xwe [[{{ns:special}}:Userlogin|qedy kiribe]].', |
603 | | -'addedwatch' => 'Hat îlawekirinî listeya şopandinê', |
604 | | -'addedwatchtext' => "Rûpela \"\$1\" çû ser [[{{ns:special}}:Watchlist|lîsteya te ya şopandinê]]. |
605 | | -Li dahatû de her guhartoyek li wê rûpelê û rûpela guftûgo ya wê were kirin li vir dêt nîşan dan, |
606 | | - |
607 | | -Li rûpela [[{{ns:special}}:Recentchanges|Guherandinên dawî]] jî ji bo hasan dîtina wê, ew rûpel bi '''Nivîsa estûr''' dê nîşan dayîn. |
608 | | - |
609 | | - |
610 | | -<p>Her dem tu bixwazî ew rûpel li nav lîsteya te ya şopandinê derbikî, li ser wê rûpelê, klîk bike \"êdî neşopîne\".", |
611 | | -'removedwatch' => 'Ji lîsteya şopandinê hate jêbirin', |
612 | | -'removedwatchtext' => 'Rûpela "$1" ji lîsteya te ya şopandinê hate jêbirin.', |
613 | | -'watch' => 'Bişopîne', |
614 | | -'watchthispage' => 'Vê rûpelê bişopîne', |
615 | | -'unwatch' => 'Êdî neşopîne', |
616 | | -'notanarticle' => 'Ne gotar e', |
617 | | -'watchnochange' => 'Ne rûpelek, yê tu dişopînê, hate xeyrandin di vê wextê da, yê tu dixazê bibînê.', |
618 | | -'watchdetails' => '* $1 rûpel tên şopandin, rûpelên guftûgoyê netên jimartin |
619 | | -* [[{{ns:special}}:Watchlist/edit|Lîsteya şopandinê bibîne û bixeyrîne]] |
620 | | -* [[{{ns:special}}:Watchlist/clear|Giştik rûpel derxe]]', |
621 | | -'wlheader-enotif' => '* E-mail-şandin çêbû.', |
622 | | -'wlheader-showupdated' => "* Ew rûpel yê hatin xeyrandin jilkî te li wan sekir di '''nivîsa estûr''' tên pêşandin.", |
623 | | -'watchlistcontains' => 'Di lîsteya şopandina te de $1 rûpel hene.', |
624 | | -'watcheditlist' => "Li vir lîstekî alfabêtî ji rûpelên te yê tu dişopînê ye. Li çargoşa xwe eger tu dixazê wan gotaran ji lîstê xwe bibê û paşê li 'Gotar bi şixtekî jêbibe' xwe.", |
625 | | -'removingchecked' => 'Gotarên bi xeta tên jêbirin ji lîsteya te ya şopandinê', |
626 | | -'couldntremove' => "'$1' naye jêbirin...", |
627 | | -'wlnote' => 'Nuha $1 xeyrandinên dawî yê <b>$2</b> seetên dawî tên.', |
628 | | -'wlshowlast' => 'Xeyrandînên berî $1 seetan, $2 rojan, ya $3 (di rojên sîyî paşî)', |
629 | | -'wlsaved' => 'Ev rûpela verzîonekî qeydkirî ji lîsteya te ya şopandinê ye.', |
630 | | -'watchlist-hide-bots' => "Guherandinên Bot'an veşêre", |
631 | | -'watchlist-show-own' => 'Guherandinên min pêşke', |
632 | | -'watchlist-hide-own' => 'Guherandinên min veşêre', |
633 | | -'watchlist-show-minor' => 'Guherandinên biçûk pêşke', |
634 | | -'watchlist-hide-minor' => 'Guherandinên biçûk veşêre', |
635 | | -'wldone' => 'Çêbû.', |
636 | | - |
637 | | -'enotif_newpagetext' => 'Ev rûpeleke nû ye.', |
638 | | -'changed' => 'guhart', |
639 | | -'created' => 'afirandî', |
640 | | - |
641 | | -# Delete/protect/revert |
642 | | -'deletepage' => 'Rûpelê jê bibe', |
643 | | -'confirm' => 'Pesend bike', |
644 | | -'excontent' => 'Naveroka berê: $1', |
645 | | -'excontentauthor' => "Nawerokê wê rûpelê ew bû: '$1' (û tenya bikarhêner '$2' bû)", |
646 | | -'exbeforeblank' => "Nawerok berî betal kirinê ew bû: '$1'", |
647 | | -'exblank' => 'rûpel vala bû', |
648 | | -'confirmdelete' => 'Teyîda jêbirinê', |
649 | | -'deletesub' => '("$1" tê jêbirin)', |
650 | | -'historywarning' => 'Hîşyar: Ew rûpel ku tu dixwazî jê bibî dîrokek heye:', |
651 | | -'actioncomplete' => 'Çalakî temam', |
652 | | -'deletedtext' => '"$1" hat jêbirin. Ji bo qeyda rûpelên ku di dema nêzîk de hatin jêbirin binêre $2.', |
653 | | -'deletedarticle' => '"$1" hat jêbirin', |
654 | | -'dellogpage' => 'Reşahiya_jêbirin', |
655 | | -'dellogpagetext' => 'Li jêr lîsteyek ji jêbirinên dawî heye.', |
656 | | -'deletionlog' => 'reşahiya jêbirin', |
657 | | -'deletecomment' => 'Sedema jêbirinê', |
658 | | -'rollback_short' => 'Bizivirîne pêş', |
659 | | -'rollbacklink' => 'bizivirîne pêş', |
660 | | -'cantrollback' => "Guharto naye vegerandin; bikarhêrê dawî, '''tenya''' nivîskarê wê rûpelê ye.", |
661 | | -'alreadyrolled' => 'Guherandina dawiya [[$1]] |
662 | | -bi [[User:$2|$2]] ([[User talk:$2|Guftûgo]]) venizivre; keseke din wê rûpelê zivrandiye an guherandiye. |
663 | | - |
664 | | -Guhartoya dawî bi [[User:$3|$3]] ([[User talk:$3|Gufûgo]]).', |
665 | | -'revertpage' => 'Guherandina $2 hat betal kirin, vegerand guhartoya dawî ya $1', |
666 | | -'protectlogpage' => 'Reşahiya _parastiyan', |
667 | | -'protectlogtext' => 'Below is a list of page locks and unlocks. See the [[{{ns:special}}:Protectedpages|protected pages list]] for the list of currently operational page protections.', |
668 | | -'protectedarticle' => 'parastî [[$1]]', |
669 | | -'unprotectedarticle' => '"[[$1]]" niha vê parastin e', |
670 | | -'confirmprotect' => 'Parastinê teyîd bike', |
671 | | -'protectcomment' => 'Sedema parastinê', |
672 | | -'unprotectsub' => 'Parastinê "$1" rake', |
673 | | - |
674 | | -# Restrictions (nouns) |
675 | | -'restriction-edit' => 'Biguherîne', |
676 | | -'restriction-move' => 'Nav biguherîne', |
677 | | - |
678 | | -# Undelete |
679 | | -'undelete' => 'Li rûpelên jêbirî seke', |
680 | | -'viewdeletedpage' => 'Rûpelên vemirandî seke', |
681 | | -'undeletebtn' => 'Dîsa çêke!', |
682 | | -'undeletedarticle' => '"[[$1]]" dîsa çêkir', |
683 | | -'undelete-search-box' => 'Rûpelên jêbirî lêbigere', |
684 | | -'undelete-search-prefix' => 'Rûpela pêşe min ke ê bi vê destpêdîkin:', |
685 | | -'undelete-search-submit' => 'Lêbigere', |
686 | | - |
687 | | -# Namespace form on various pages |
688 | | -'namespace' => 'Boşahiya nav:', |
689 | | -'invert' => 'Hilbijardinê pêçewane bike', |
690 | | - |
691 | | -# Contributions |
692 | | -'contributions' => 'Beşdariyên vê bikarhêner', |
693 | | -'mycontris' => 'Beşdariyên min', |
694 | | -'contribsub2' => 'Ji bo $1 ($2)', |
695 | | -'uclinks' => '$1 guherandinên dawî; $2 rojên dawî', |
696 | | -'uctop' => ' (ser)', |
697 | | - |
698 | | -'sp-contributions-newest' => 'Nûtirîn', |
699 | | -'sp-contributions-oldest' => 'Kevintirîn', |
700 | | -'sp-contributions-newer' => '$1 yên nûtir', |
701 | | -'sp-contributions-older' => '$1 yên kevintir', |
702 | | - |
703 | | -# What links here |
704 | | -'whatlinkshere' => 'Lînk yê tên ser vê rûpelê', |
705 | | -'notargettitle' => 'Hedef tune', |
706 | | -'linklistsub' => '(Listeya lînkan)', |
707 | | -'linkshere' => "Ev rûpel tên ser vê rûpelê '''„[[:$1]]“''':", |
708 | | -'nolinkshere' => "Ne ji rûpelekê lînk tên ser '''„[[:$1]]“'''.", |
709 | | -'isredirect' => 'rûpela ragihandinê', |
710 | | - |
711 | | -# Block/unblock |
712 | | -'blockip' => 'Bikarhêner asteng bike', |
713 | | -'blockiptext' => 'Ji bo astengkirina nivîsandinê ji navnîşaneke IP an bi navekî bikarhêner, vê formê bikarbîne. |
714 | | -Ev bes gireke were bikaranîn ji bo vandalîzmê biskinîne (bi vê [[{{ns:project}}:Policy|qebûlkirinê]]). |
715 | | - |
716 | | -Sedemekê binivîse!', |
717 | | -'ipbreason' => 'Sedem', |
718 | | -'ipbreasonotherlist' => 'Sedemekî din', |
719 | | -'ipbreason-dropdown' => '*Sedemên astengkirinê (bi tevayî) |
720 | | -** vandalîzm |
721 | | -** înformasyonên şaş kir gotarekê |
722 | | -** rûpelê vala kir |
723 | | -** bes lînkan dikir rûpelan |
724 | | -** kovan dikir gotaran |
725 | | -** heqaretkirin |
726 | | -** pir accounts dikaranîn |
727 | | -** navekî pîs', |
728 | | -'ipbsubmit' => 'Vê bikarhêner asteng bike', |
729 | | -'ipbother' => 'demekî din', |
730 | | -'ipboptions' => '1 seet:1 hour,2 seet:2 hours,6 seet:6 hours,1 roj:1 day,3 roj:3 days,1 hefte:1 week,2 hefte:2 weeks,1 mihe:1 month,3 mihe:3 months,1 sal:1 year,ji her demê ra:infinite', |
731 | | -'ipbotheroption' => 'yên din', |
732 | | -'ipbotherreason' => 'Sedemekî din', |
733 | | -'badipaddress' => 'Bikarhêner bi vî navî tune', |
734 | | -'blockipsuccesssub' => 'Blok serkeftî', |
735 | | -'blockipsuccesstext' => '"$1" hat asteng kirin. |
736 | | -<br /> |
737 | | -Bibîne [[{{ns:special}}:Ipblocklist|Lîsteya IP\'yan hatî asteng kirin]] ji bo lîsteya blokan.', |
738 | | -'blocklistline' => '$1, $2 $3 asteng kir ($4)', |
739 | | -'blocklink' => 'asteng bike', |
740 | | -'unblocklink' => 'betala astengê', |
741 | | -'contribslink' => 'Beşdarî', |
742 | | -'autoblocker' => 'Otomatîk hat bestin jiberku IP-ya we û ya "[[User:$1|$1]]" yek in. Sedem: "\'\'\'$2\'\'\'"', |
743 | | -'blocklogpage' => 'Reşahiya_asteng kiriyan', |
744 | | -'blocklogentry' => '"[[$1]]" $3 astengkir ji bo dema $2.', |
745 | | -'unblocklogentry' => 'astenga "$1" hat betal kirin', |
746 | | -'proxyblocksuccess' => 'Çêbû.', |
747 | | - |
748 | | -# Move page |
749 | | -'movepage' => 'Vê rûpelê bigerîne', |
750 | | -'movepagetalktext' => "Rûpela '''guftûgoyê''' vê rûpelê wê were, eger hebe, gerandin. Lê ev tişta nameşe, eger |
751 | | - |
752 | | -*berê guftûgoyek bi wê navê hebe ya |
753 | | -*tu tiştekî jêr hilbijêrê. |
754 | | - |
755 | | -Eger ev mişkla çêbû, tu gireke vê rûpelê bi xwe bigerînê. |
756 | | - |
757 | | -Xêra xwe navî nuh û sedemê navgerandinê binivisîne.", |
758 | | -'movearticle' => 'Rûpelê bigerîne', |
759 | | -'movenologin' => 'Xwe qeyd nekir', |
760 | | -'movenologintext' => 'Tu dive bikarhênereke qeydkirî bî û [[{{ns:special}}:Userlogin|werî nav sîstemê]] |
761 | | -da bikarî navê wê rûpelê biguherînî.', |
762 | | -'newtitle' => 'Sernivîsa nû', |
763 | | -'movepagebtn' => 'Vê rûpelê bigerîne', |
764 | | -'pagemovedsub' => 'Gerandin serkeftî', |
765 | | -'pagemovedtext' => 'Rûpela "[[$1]]" çû cihê "[[$2]]".', |
766 | | -'articleexists' => 'Rûpela bi vî navî heye, an navê ku te hilbijart derbas nabe. Navekî din hilbijêre.', |
767 | | -'movedto' => 'bû', |
768 | | -'movetalk' => "Rûpela '''guftûgo''' ya wê jî bigerîne, eger gengaz be.", |
769 | | -'1movedto2' => '$1 çû cihê $2', |
770 | | -'1movedto2_redir' => '$1 çû cihê $2 ser redirect', |
771 | | -'movelogpage' => 'Reşahiya nav guherandin', |
772 | | -'movelogpagetext' => 'Li jêr lîsteyek ji rûpelan ku navê wan hatiye guherandin heye.', |
773 | | -'movereason' => 'Sedem', |
774 | | - |
775 | | -# Namespace 8 related |
776 | | -'allmessages' => 'Hemû mesajên sîstemê', |
777 | | -'allmessagesname' => 'Nav', |
778 | | -'allmessagescurrent' => 'Texta niha', |
779 | | -'allmessagestext' => 'Ev lîsteya hemû mesajên di namespace a MediaWiki: de ye.', |
780 | | -'allmessagesnotsupportedDB' => "'''{{ns:special}}:Allmessages''' nikane were bikaranîn çunkî '''\$wgUseDatabaseMessages''' hatîye temirandin.", |
781 | | - |
782 | | -# Thumbnails |
783 | | -'thumbnail-more' => 'Mezin bike', |
784 | | - |
785 | | -# Special:Import |
786 | | -'importnotext' => 'Vala an nivîs tune', |
787 | | - |
788 | | -# Tooltip help for the actions |
789 | | -'tooltip-pt-userpage' => 'Rûpela min a şexsî', |
790 | | -'tooltip-pt-anonuserpage' => 'The user page for the ip you', |
791 | | -'tooltip-pt-mytalk' => 'Rûpela guftûgo ya min', |
792 | | -'tooltip-pt-preferences' => ',Tercîhên min', |
793 | | -'tooltip-pt-watchlist' => 'The list of pages you', |
794 | | -'tooltip-pt-mycontris' => 'Lîsteya tevkariyên min', |
795 | | -'tooltip-pt-logout' => 'Derkeve (Log out)', |
796 | | -'tooltip-ca-talk' => 'guftûgo û şîrove ser vê rûpelê', |
797 | | -'tooltip-ca-edit' => 'Vê rûpelê biguherîne! Berê qeydkirinê bişkoka "Pêşdîtin', |
798 | | -'tooltip-ca-addsection' => 'Beşekê zêde bike.', |
799 | | -'tooltip-ca-history' => 'Versyonên berê yên vê rûpelê.', |
800 | | -'tooltip-ca-protect' => 'Vê rûplê biparêze', |
801 | | -'tooltip-ca-delete' => 'Vê rûpelê jê bibe', |
802 | | -'tooltip-ca-move' => 'Navekî nû bide vê rûpelê', |
803 | | -'tooltip-search' => 'Li vê wikiyê bigêre', |
804 | | -'tooltip-p-logo' => 'Destpêk', |
805 | | -'tooltip-n-mainpage' => 'Biçe Destpêkê', |
806 | | -'tooltip-n-help' => 'Bersivên ji bo pirsên te.', |
807 | | -'tooltip-t-whatlinkshere' => 'Lîsteya hemû rûpelên ku ji vê re grêdidin.', |
808 | | -'tooltip-t-recentchangeslinked' => 'Recent changes in pages linking to this page', |
809 | | -'tooltip-t-emailuser' => 'Jê re name bişîne', |
810 | | -'tooltip-ca-nstab-user' => 'Rûpela bikarhênerê/î temaşe bike', |
811 | | -'tooltip-ca-nstab-special' => 'This is a special page, you can', |
812 | | -'tooltip-compareselectedversions' => 'Cudatiyên guhartoyên hilbijartî yên vê rûpelê bibîne. [alt-v]', |
813 | | - |
814 | | -# Stylesheets |
815 | | -'monobook.css' => '*.rtl |
816 | | - { |
817 | | - dir:rtl; |
818 | | - text-align:right; |
819 | | - font-family: "Tahoma", "Unikurd Web", "Arial Unicode MS", "DejaVu Sans", "Lateef", "Scheherazade", "ae_Rasheeq", sans-serif, sans; |
820 | | - } |
821 | | - |
822 | | - /*Make the site more suitable for Soranî users */ |
823 | | - h1 {font-family: "Tahoma", "Arial Unicode MS", sans-serif, sans, "Unikurd Web", "Scheherazade";} |
824 | | - h2 {font-family: "Tahoma", "Arial Unicode MS", sans-serif, sans, "Unikurd Web", "Scheherazade";} |
825 | | - h3 {font-family: "Tahoma", "Arial Unicode MS", sans-serif, sans, "Unikurd Web", "Scheherazade";} |
826 | | - body {font-family: "Tahoma", "Arial Unicode MS", sans-serif, sans, "Unikurd Web", "Scheherazade";} |
827 | | - textarea {font-family: Lucida Console, Tahoma;} |
828 | | - pre {font-family: Lucida Console, Tahoma;}', |
829 | | - |
830 | | -# Attribution |
831 | | -'anonymous' => 'Bikarhênera/ê nediyarkirî ya/yê {{SITENAME}}', |
832 | | -'siteuser' => 'Bikarhênera $1 ê {{SITENAME}}', |
833 | | -'and' => 'û', |
834 | | -'others' => 'ên din', |
835 | | -'siteusers' => 'Bikarhênerên $1 yên {{SITENAME}}', |
836 | | - |
837 | | -# Spam protection |
838 | | -'subcategorycount' => 'Di vê kategoriyê de $1 binkategorî hene.', |
839 | | -'categoryarticlecount' => 'Di vê kategoriyê de $1 gotar hene.', |
840 | | -'listingcontinuesabbrev' => ' dewam', |
841 | | - |
842 | | -# Browsing diffs |
843 | | -'previousdiff' => '← Ciyawaziya pêştir', |
844 | | -'nextdiff' => 'Ciyawaziya paştir →', |
845 | | - |
846 | | -'newimages' => 'Pêşangeha wêneyên nû', |
847 | | - |
848 | | -# 'all' in various places, this might be different for inflected languages |
849 | | -'recentchangesall' => 'hemû', |
850 | | -'imagelistall' => 'hemû', |
851 | | -'watchlistall1' => 'giştik', |
852 | | -'watchlistall2' => 'giştik', |
853 | | -'namespacesall' => 'Hemû', |
854 | | - |
855 | | -# E-mail address confirmation |
856 | | -'confirmemail_noemail' => 'Te e-mail-adressê xwe di [[{{ns:special}}:Preferences|tercihên xwe da]] nenivîsandîye.', |
857 | | -'confirmemail_body' => 'Kesek, dibê tu, bi IP adressê $1, xwe li {{SITENAME}} bi vê navnîşana e-name tomar kir ("$2") . |
858 | | - |
859 | | -Eger ev rast qeydkirinê te ye û di dixwazî bikaranîna e-nama ji te ra çêbibe li {{SITENAME}}, li vê lînkê bitikîne: |
860 | | - |
861 | | -$3 |
862 | | - |
863 | | -Lê eger ev *ne* tu bû, li lînkê netikîne. Ev e-nameya di rojê $4 da netê qebûlkirin.', |
864 | | - |
865 | | -# Inputbox extension, may be useful in other contexts as well |
866 | | -'createarticle' => 'Gotarê biafirîne', |
867 | | - |
868 | | -# Scary transclusion |
869 | | -'scarytranscludefailed' => '[Anîna şablona $1 biserneket; biborîne]', |
870 | | - |
871 | | -# Delete conflict |
872 | | -'deletedwhileediting' => 'Hîşyar: Piştî te guherandinê xwe dest pê kir ev rûpela hate jêbirin!', |
873 | | - |
874 | | -# action=purge |
875 | | -'confirm_purge' => 'Bîra vê rûpelê jêbîbe ? |
876 | | - |
877 | | -$1', |
878 | | -'confirm_purge_button' => 'Temam', |
879 | | - |
880 | | -'youhavenewmessagesmulti' => 'Nameyên nih li $1 ji te ra hene.', |
881 | | - |
882 | | -'loginlanguagelabel' => 'Ziman: $1', |
883 | | - |
884 | | -# Auto-summaries |
885 | | -'autosumm-blank' => 'Rûpel hate vala kirin', |
886 | | -'autoredircomment' => 'Redirect berve [[$1]]', # This should be changed to the new naming convention, but existed beforehand |
887 | | -'autosumm-new' => 'Rûpela nû: $1', |
888 | | - |
889 | | -# Live preview |
890 | | -'livepreview-loading' => 'Tê…', |
891 | | -'livepreview-ready' => 'Tê… Çêbû!', |
892 | | - |
893 | | -); |
894 | | - |
895 | 11 | ?> |
Index: branches/liquidthreads/languages/messages/MessagesZh_yue.php |
— | — | @@ -432,7 +432,7 @@ |
433 | 433 | 'filedeleteerror' => '唔可以刪除檔案 "$1"。', |
434 | 434 | 'filenotfound' => '搵唔到檔案 "$1"。', |
435 | 435 | 'unexpected' => '意外數值。 "$1"="$2"。', |
436 | | -'formerror' => '錯誤:唔可以遞交表格', |
| 436 | +'formerror' => '錯誤:表格交唔到', |
437 | 437 | 'badarticleerror' => '呢個動作唔可以喺頁面度進行。', |
438 | 438 | 'cannotdelete' => '唔可以刪除指定嘅頁面或檔案。(可能呢個頁面或檔案已經刪除咗。)', |
439 | 439 | 'badtitle' => '錯誤嘅標題', |
— | — | @@ -570,7 +570,7 @@ |
571 | 571 | 'media_sample' => 'Example.ogg', |
572 | 572 | 'media_tip' => '媒體檔案連結', |
573 | 573 | 'sig_tip' => '你嘅簽名同埋時間戳', |
574 | | -'hr_tip' => '橫線(請謹慎咁用)', |
| 574 | +'hr_tip' => '橫線(請小心用)', |
575 | 575 | |
576 | 576 | # Edit pages |
577 | 577 | # |
— | — | @@ -619,7 +619,7 @@ |
620 | 620 | 'blockededitsource' => "有關'''你'''對'''$1'''嘅'''編輯'''文字響下面列示:", |
621 | 621 | 'whitelistedittitle' => '需要登入之後先至可以編輯', |
622 | 622 | 'whitelistedittext' => '你需要$1去編輯呢頁。', |
623 | | -'whitelistreadtitle' => '需要登入之後先至睇到', |
| 623 | +'whitelistreadtitle' => '登入咗至睇到', |
624 | 624 | 'whitelistreadtext' => '你需要[[Special:Userlogin|登入]]先可以去睇呢頁。', |
625 | 625 | 'whitelistacctitle' => '你唔可以開一個新戶口', |
626 | 626 | 'whitelistacctext' => '要喺呢個 wiki 開戶口,你要[[Special:Userlogin|登入]]同提供適當嘅許可。', |
— | — | @@ -1049,7 +1049,7 @@ |
1050 | 1050 | |
1051 | 1051 | 'license' => '協議', |
1052 | 1052 | 'nolicense' => '未揀', |
1053 | | -'upload_source_url' => ' (一個正確嘅,公眾可到嘅網址)', |
| 1053 | +'upload_source_url' => ' (啱嘅,公開嘅網址)', |
1054 | 1054 | 'upload_source_file' => ' (你部電腦裏面嘅一個檔案)', |
1055 | 1055 | |
1056 | 1056 | # Image list |
— | — | @@ -1182,7 +1182,7 @@ |
1183 | 1183 | 'shortpages' => '短頁', |
1184 | 1184 | 'longpages' => '長頁', |
1185 | 1185 | 'deadendpages' => '掘頭頁', |
1186 | | -'deadendpagestext' => '以下嘅面頁響呢個wiki度連結到其它頁面。', |
| 1186 | +'deadendpagestext' => '呢啲頁無連到呢個wiki內嘅任何一頁。', |
1187 | 1187 | 'protectedpages' => '保護頁', |
1188 | 1188 | 'protectedpagestext' => '以下嘅頁面係受保頁面,唔能夠移動或編輯', |
1189 | 1189 | 'protectedpagesempty' => '響呢啲參數度,現時無頁面響度保護緊。', |
— | — | @@ -1191,7 +1191,7 @@ |
1192 | 1192 | 'spheading' => '所有用戶嘅特別頁', |
1193 | 1193 | 'restrictedpheading' => '有限制嘅特別頁', |
1194 | 1194 | 'rclsub' => "(由\"$1\"已經連結嘅頁面)", |
1195 | | -'newpages' => '新頁面', |
| 1195 | +'newpages' => '新頁', |
1196 | 1196 | 'newpages-username' => '用戶名:', |
1197 | 1197 | 'ancientpages' => '舊頁面', |
1198 | 1198 | 'intl' => '跨語連結', |
— | — | @@ -1221,6 +1221,7 @@ |
1222 | 1222 | 'specialloguserlabel' => '用戶:', |
1223 | 1223 | 'speciallogtitlelabel' => '標題:', |
1224 | 1224 | 'log' => '日誌', |
| 1225 | +'all-logs-page' => '全部嘅日誌', |
1225 | 1226 | 'log-search-legend' => '搵日誌', |
1226 | 1227 | 'log-search-submit' => '去', |
1227 | 1228 | 'alllogstext' => '響{{SITENAME}}度全部日誌嘅綜合顯示。 |
— | — | @@ -1267,7 +1268,7 @@ |
1268 | 1269 | 'emailmessage' => '信息', |
1269 | 1270 | 'emailsend' => '傳送', |
1270 | 1271 | 'emailccme' => '傳送一個我嘅信息電郵畀我。', |
1271 | | -'emailccsubject' => '複製你嘅信息到 $1: $2', |
| 1272 | +'emailccsubject' => '你畀$1: $2封信嘅副本', |
1272 | 1273 | 'emailsent' => '電郵已傳送', |
1273 | 1274 | 'emailsenttext' => '你嘅電郵信息已傳送。', |
1274 | 1275 | |
— | — | @@ -1734,7 +1735,7 @@ |
1735 | 1736 | 'import-interwiki-submit' => '倒入', |
1736 | 1737 | 'import-interwiki-namespace' => '轉移頁面到空間名:', |
1737 | 1738 | 'importtext' => '請由原 wiki 嘅 Special:Export 工具匯出成檔案,儲存喺你個磁碟度,然後再上載到呢度。', |
1738 | | -'importstart' => "倒入頁面中...", |
| 1739 | +'importstart' => "倒入緊...", |
1739 | 1740 | 'import-revision-count' => '$1次修訂', |
1740 | 1741 | 'importnopages' => "冇頁面去倒入。", |
1741 | 1742 | 'importfailed' => "倒入失敗:$1", |
— | — | @@ -1902,7 +1903,7 @@ |
1903 | 1904 | 'file-info' => '(檔案大細:$1 ,MIME類型:$2)', |
1904 | 1905 | 'file-info-size' => '($1 × $2 像素,檔案大細:$3 ,MIME類型:$4)', |
1905 | 1906 | 'file-nohires' => '<small>冇更高解像度嘅圖像。</small>', |
1906 | | -'file-svg' => '<small>呢個係一幅無損,可以放大縮細嘅向量圖像。基礎大細: $1 × $2 像素。</small>', |
| 1907 | +'file-svg' => '<small>呢幅係可以無損放縮嘅向量圖。基礎大細: $1 × $2 像素。</small>', |
1907 | 1908 | 'show-big-image' => '完整解像度', |
1908 | 1909 | 'show-big-image-thumb' => '<small>呢個預覽嘅大細: $1 × $2 像素</small>', |
1909 | 1910 | |
— | — | @@ -1929,6 +1930,10 @@ |
1930 | 1931 | 'variantname-kk-kz' => '哈薩克西里爾字', |
1931 | 1932 | 'variantname-kk-cn' => '哈薩克阿剌伯文', |
1932 | 1933 | 'variantname-kk' => 'disable', |
| 1934 | +# Variants for Kurdish language |
| 1935 | +'variantname-ku-latn' => '庫爾德拉丁文', |
| 1936 | +'variantname-ku-arab' => '庫爾德阿剌伯文', |
| 1937 | +'variantname-ku' => '無變換', |
1933 | 1938 | |
1934 | 1939 | 'passwordtooshort' => '你嘅密碼唔正確或者太短喇。佢最少要有$1個半形字元,同埋要同你嘅用戶名唔同。', |
1935 | 1940 | |
Index: branches/liquidthreads/languages/messages/MessagesLt.php |
— | — | @@ -250,7 +250,7 @@ |
251 | 251 | 'aboutpage' => '{{ns:project}}:Apie', |
252 | 252 | 'bugreports' => 'Pranešti apie klaidą', |
253 | 253 | 'bugreportspage' => '{{ns:project}}:Klaidų pranešimai', |
254 | | -'copyright' => 'Turinys pateikiamas su $1 licencija.', |
| 254 | +'copyright' => 'Turinys pateikiamas pagal $1 licenciją.', |
255 | 255 | 'copyrightpagename' => '{{SITENAME}} autorystės teisės', |
256 | 256 | 'copyrightpage' => '{{ns:project}}:Autorystės teisės', |
257 | 257 | 'currentevents' => 'Naujienos', |
— | — | @@ -415,6 +415,7 @@ |
416 | 416 | 'yourvariant' => 'Variantas', |
417 | 417 | 'yournick' => 'Slapyvardis:', |
418 | 418 | 'badsig' => 'Neteisingas parašas; patikrinkite HTML žymes.', |
| 419 | +'badsiglength' => 'Slapyvardis per ilgas; turi būti iki $1 {{PLURAL:$1|simbolio|simbolių}}.', |
419 | 420 | 'email' => 'El. paštas', |
420 | 421 | 'prefs-help-realname' => 'Tikrasis vardas yra neprivalomas, bet jei jūs jį įvesite, jis bus naudojamas jūsų darbo pažymėjimui.', |
421 | 422 | 'loginerror' => 'Prisijungimo klaida', |
— | — | @@ -512,11 +513,13 @@ |
513 | 514 | |
514 | 515 | Užblokavo $1. Nurodyta priežastis yra ''$2''. |
515 | 516 | |
516 | | -Blokavimo pabaiga: $6 |
| 517 | +Blokavimo pabaiga: $6<br /> |
| 518 | +Numatytas blokuojamasis: $7 |
517 | 519 | |
518 | 520 | Jūs galite susisiekti su $1 arba kitu |
519 | 521 | [[{{MediaWiki:grouppage-sysop}}|administratoriumi]], kad aptartumėte užblokavimą. |
520 | | -Jūs negalite naudotis funkcija „Rašyti laišką šiam naudotojui“, jei nesate pateikę tikro savo el. pašto adreso savo [[{{ns:special}}:Preferences|paskyros nustatymuose]]. Jūsų IP adresas yra $3, o blokavimo ID yra #$5. Prašome nurodyti vieną ar abu juos, kai kreipiatės dėl blokavimo.", |
| 522 | +Jūs negalite naudotis funkcija „Rašyti laišką šiam naudotojui“, jei nesate pateikę tikro savo el. pašto adreso savo [[{{ns:special}}:Preferences|paskyros nustatymuose]] ir nesate užblokuotas nuo jos naudojimo. |
| 523 | +Jūsų dabartinis IP adresas yra $3, o blokavimo ID yra #$5. Prašome nurodyti vieną ar abu juos, kai kreipiatės dėl blokavimo.", |
521 | 524 | 'autoblockedtext' => "Jūsų IP adresas buvo automatiškai užblokuotas, nes jį naudojo kitas naudotojas, kurį užblokavo $1. |
522 | 525 | Nurodyta priežastis yra ši: |
523 | 526 | |
— | — | @@ -527,7 +530,7 @@ |
528 | 531 | Jūs galite susisiekti su $1 arba kitu |
529 | 532 | [[{{MediaWiki:grouppage-sysop}}|administratoriumi]], kad aptartumėte užblokavimą. |
530 | 533 | |
531 | | -Jūs negalite naudotis funkcija „Rašyti laišką šiam naudotojui“, jei nesate užregistravę tikro el. pašto adreso savo [[{{ns:special}}:Preferences|naudotojo nustatymuose]]. |
| 534 | +Jūs negalite naudotis funkcija „Rašyti laišką šiam naudotojui“, jei nesate užregistravę tikro el. pašto adreso savo [[{{ns:special}}:Preferences|naudotojo nustatymuose]] ir nesate užblokuotas nuo jos naudojimo. |
532 | 535 | |
533 | 536 | Jūsų blokavimo ID yra $5. Prašome nurodyti šį ID visuose prašymuose, kuriuos darote.", |
534 | 537 | 'blockedoriginalsource' => "Žemiau yra rodomas '''$1''' turinys:", |
— | — | @@ -615,7 +618,11 @@ |
616 | 619 | 'nocreatetitle' => 'Puslapių kūrimas apribotas', |
617 | 620 | 'nocreatetext' => 'Šioje svetainėje yra apribota galimybė kurti naujus puslapius. |
618 | 621 | Jūs galite grįžti ir redaguoti jau esantį puslapį, arba [[{{ns:special}}:Userlogin|prisijungti arba sukurti paskyrą]].', |
| 622 | +'recreate-deleted-warn' => "'''Dėmesio: Jūs atkuriate puslapį, kuris anksčiau buvo ištrintas.''' |
619 | 623 | |
| 624 | +Jūs turite nuspręsti, ar tinka toliau redaguoti šį puslapį. |
| 625 | +Šio puslapio šalinimų istorija yra pateiktas čia dėl patogumo:", |
| 626 | + |
620 | 627 | # "Undo" feature |
621 | 628 | 'undo-success' => 'Keitimas gali būti atšauktas. Prašome patikrinti palyginimą, esantį žemiau, kad patvirtintumėte, kad jūs tai ir norite padaryti, ir tada išsaugokite pakeitimus, esančius žemiau, kad užbaigtumėte keitimo atšaukimą.', |
622 | 629 | 'undo-failure' => 'Keitimas negali būti atšauktas dėl konfliktuojančių tarpinių keitimų.', |
— | — | @@ -791,6 +798,7 @@ |
792 | 799 | 'resultsperpage' => 'Rezultatų puslapyje:', |
793 | 800 | 'contextlines' => 'Eilučių rezultate:', |
794 | 801 | 'contextchars' => 'Konteksto simbolių eilutėje:', |
| 802 | +'stub-threshold' => 'Minimumas <a href="#" class="stub">nebaigto puslapio</a> formatavimui:', |
795 | 803 | 'recentchangesdays' => 'Rodomos dienos paskutinių keitimų sąraše:', |
796 | 804 | 'recentchangescount' => 'Keitimų skaičius rodomas naujausių keitimų sąraše:', |
797 | 805 | 'savedprefs' => 'Nustatymai sėkmingai išsaugoti.', |
— | — | @@ -1056,12 +1064,13 @@ |
1057 | 1065 | 'nmembers' => '$1 {{PLURAL:$1|narys|nariai|narių}}', |
1058 | 1066 | 'nrevisions' => '$1 {{PLURAL:$1|keitimas|keitimai|keitimų}}', |
1059 | 1067 | 'nviews' => '$1 {{PLURAL:$1|parodymas|parodymai|parodymų}}', |
1060 | | -'specialpage-empty' => 'Šis puslapis yra tuščias.', |
| 1068 | +'specialpage-empty' => 'Šiai ataskaitai nėra rezultatų.', |
1061 | 1069 | 'lonelypages' => 'Vieniši straipsniai', |
1062 | 1070 | 'lonelypagestext' => 'Į šiuos puslapius nėra nuorodų iš kitų šio projekto puslapių.', |
1063 | 1071 | 'uncategorizedpages' => 'Puslapiai, nepriskirti jokiai kategorijai', |
1064 | 1072 | 'uncategorizedcategories' => 'Kategorijos, nepriskirtos jokiai kategorijai', |
1065 | 1073 | 'uncategorizedimages' => 'Paveikslėliai, nepriskirti jokiai kategorijai', |
| 1074 | +'uncategorizedtemplates' => 'Šablonai, nepriskirti jokiai kategorijai', |
1066 | 1075 | 'unusedcategories' => 'Nenaudojamos kategorijos', |
1067 | 1076 | 'unusedimages' => 'Nenaudojami failai', |
1068 | 1077 | 'popularpages' => 'Populiarūs puslapiai', |
— | — | @@ -1069,6 +1078,7 @@ |
1070 | 1079 | 'wantedpages' => 'Geidžiamiausi puslapiai', |
1071 | 1080 | 'mostlinked' => 'Daugiausiai nurodomi straipsniai', |
1072 | 1081 | 'mostlinkedcategories' => 'Daugiausiai nurodomos kategorijos', |
| 1082 | +'mostlinkedtemplates' => 'Daugiausiai nurodomi šablonai', |
1073 | 1083 | 'mostcategories' => 'Straipsniai su daugiausiai kategorijų', |
1074 | 1084 | 'mostimages' => 'Daugiausiai nurodomi paveikslėliai', |
1075 | 1085 | 'mostrevisions' => 'Straipsniai su daugiausiai keitimų', |
— | — | @@ -1296,11 +1306,12 @@ |
1297 | 1307 | 'protectlogpage' => 'Rakinimų istorija', |
1298 | 1308 | 'protectlogtext' => 'Žemiau yra puslapių užrakinimų bei atrakinimų istorija. Dabar veikiančių puslapių apsaugų sąrašą rasite [[{{ns:special}}:Protectedpages|apsaugotų puslapių sąraše]].', |
1299 | 1309 | 'protectedarticle' => 'užrakino „[[$1]]“', |
| 1310 | +'modifiedarticleprotection' => 'pakeistas „[[$1]]“ apsaugos lygis', |
1300 | 1311 | 'unprotectedarticle' => 'atrakino „[[$1]]“', |
1301 | 1312 | 'protectsub' => '(Rakinamas „$1“)', |
1302 | 1313 | 'confirmprotect' => 'Užrakinimo patvirtinimas', |
1303 | | -'protectcomment' => 'Rakinimo priežastis', |
1304 | | -'protectexpiry' => 'Galiojimo laikas', |
| 1314 | +'protectcomment' => 'Komentaras:', |
| 1315 | +'protectexpiry' => 'Baigia galioti:', |
1305 | 1316 | 'protect_expiry_invalid' => 'Galiojimo laikas neteisingas.', |
1306 | 1317 | 'protect_expiry_old' => 'Galiojimo laikas yra praeityje.', |
1307 | 1318 | 'unprotectsub' => '(Atrakinamas „$1“)', |
— | — | @@ -1318,7 +1329,7 @@ |
1319 | 1330 | 'protect-level-sysop' => 'Tik administratoriai', |
1320 | 1331 | 'protect-summary-cascade' => 'pakopinė apsauga', |
1321 | 1332 | 'protect-expiring' => 'baigia galioti $1 (UTC)', |
1322 | | -'protect-cascade' => 'Pakopinė apsauga - apsaugoti visus puslapius, įtrauktus į šį puslapį.', |
| 1333 | +'protect-cascade' => 'Apsaugoti puslapius, įtrauktus į šį puslapį (pakopinė apsauga).', |
1323 | 1334 | 'restriction-type' => 'Leidimas:', |
1324 | 1335 | 'restriction-level' => 'Apribojimo lygis:', |
1325 | 1336 | 'minimum-size' => 'Min. dydis', |
— | — | @@ -1400,18 +1411,19 @@ |
1401 | 1412 | 'sp-newimages-showfrom' => 'Rodyti naujus paveikslėlius pradedant nuo $1', |
1402 | 1413 | |
1403 | 1414 | # What links here |
1404 | | -'whatlinkshere' => 'Susiję puslapiai', |
1405 | | -'notargettitle' => 'Nenurodytas objektas', |
1406 | | -'notargettext' => 'Jūs nenurodėte norimo puslapio ar naudotojo, |
| 1415 | +'whatlinkshere' => 'Susiję puslapiai', |
| 1416 | +'notargettitle' => 'Nenurodytas objektas', |
| 1417 | +'notargettext' => 'Jūs nenurodėte norimo puslapio ar naudotojo, |
1407 | 1418 | kuriam įvykdyti šią funkciją.', |
1408 | | -'linklistsub' => '(Nuorodų sąrašas)', |
1409 | | -'linkshere' => "Šie puslapiai rodo į '''[[:$1]]''':", |
1410 | | -'nolinkshere' => "Į '''[[:$1]]''' nuorodų nėra.", |
1411 | | -'nolinkshere-ns' => "Nurodytoje vardų srityje nei vienas puslapis nenurodo į '''[[:$1]]'''.", |
1412 | | -'isredirect' => 'nukreipiamasis puslapis', |
1413 | | -'istemplate' => 'įterpimas', |
1414 | | -'whatlinkshere-prev' => '$1 {{PLURAL:$1|ankstesnis|ankstesni}}', |
1415 | | -'whatlinkshere-next' => '$1 {{PLURAL:$1|kitas|kiti}}', |
| 1419 | +'linklistsub' => '(Nuorodų sąrašas)', |
| 1420 | +'linkshere' => "Šie puslapiai rodo į '''[[:$1]]''':", |
| 1421 | +'nolinkshere' => "Į '''[[:$1]]''' nuorodų nėra.", |
| 1422 | +'nolinkshere-ns' => "Nurodytoje vardų srityje nei vienas puslapis nenurodo į '''[[:$1]]'''.", |
| 1423 | +'isredirect' => 'nukreipiamasis puslapis', |
| 1424 | +'istemplate' => 'įterpimas', |
| 1425 | +'whatlinkshere-prev' => '$1 {{PLURAL:$1|ankstesnis|ankstesni}}', |
| 1426 | +'whatlinkshere-next' => '$1 {{PLURAL:$1|kitas|kiti}}', |
| 1427 | +'whatlinkshere-links' => '← nuorodos', |
1416 | 1428 | |
1417 | 1429 | # Block/unblock |
1418 | 1430 | 'blockip' => 'Blokuoti naudotoją', |
— | — | @@ -1433,6 +1445,7 @@ |
1434 | 1446 | ** Nepriimtinas naudotojo vardas', |
1435 | 1447 | 'ipbanononly' => 'Blokuoti tik anoniminius naudotojus', |
1436 | 1448 | 'ipbcreateaccount' => 'Neleisti kurti paskyrų', |
| 1449 | +'ipbemailban' => 'Neleisti naudotojui siųsti el. pašto', |
1437 | 1450 | 'ipbenableautoblock' => 'Automatiškai blokuoti šio naudotojo paskiausiai naudotą IP adresą, bei bet kokius vėlesnius IP adresus, iš kurių jie mėgina redaguoti', |
1438 | 1451 | 'ipbsubmit' => 'Blokuoti šį naudotoją', |
1439 | 1452 | 'ipbother' => 'Kitoks laikas', |
— | — | @@ -1463,6 +1476,7 @@ |
1464 | 1477 | 'anononlyblock' => 'tik anonimai', |
1465 | 1478 | 'noautoblockblock' => 'automatinis blokavimas išjungtas', |
1466 | 1479 | 'createaccountblock' => 'paskyrų kūrimas uždraustas', |
| 1480 | +'emailblock' => 'el. paštas užblokuotas', |
1467 | 1481 | 'ipblocklist-empty' => 'Blokavimų sąrašas tuščias.', |
1468 | 1482 | 'ipblocklist-no-results' => 'Prašomas IP adresas ar naudotojo vardas nėra užblokuotas.', |
1469 | 1483 | 'blocklink' => 'blokuoti', |
— | — | @@ -1476,6 +1490,7 @@ |
1477 | 1491 | 'block-log-flags-anononly' => 'tik anoniminiai naudotojai', |
1478 | 1492 | 'block-log-flags-nocreate' => 'paskyrų kūrimas išjungtas', |
1479 | 1493 | 'block-log-flags-noautoblock' => 'automatinis blokiklis išjungtas', |
| 1494 | +'block-log-flags-noemail' => 'el. paštas užblokuotas', |
1480 | 1495 | 'range_block_disabled' => 'Administratoriaus galimybė kurti intevalinius blokus yra išjungta.', |
1481 | 1496 | 'ipb_expiry_invalid' => 'Galiojimo laikas neleistinas.', |
1482 | 1497 | 'ipb_already_blocked' => '„$1“ jau užblokuotas', |
— | — | @@ -1590,7 +1605,7 @@ |
1591 | 1606 | 'export-addcat' => 'Pridėti', |
1592 | 1607 | |
1593 | 1608 | # Namespace 8 related |
1594 | | -'allmessages' => 'Sistemos pranešimų sąrašas', |
| 1609 | +'allmessages' => 'Sisteminių tekstų sąrašas', |
1595 | 1610 | 'allmessagesname' => 'Pavadinimas', |
1596 | 1611 | 'allmessagesdefault' => 'Pradinis tekstas', |
1597 | 1612 | 'allmessagescurrent' => 'Dabartinis tekstas', |
Index: branches/liquidthreads/languages/messages/MessagesZh_tw.php |
— | — | @@ -1093,6 +1093,7 @@ |
1094 | 1094 | 'specialloguserlabel' => '用戶:', |
1095 | 1095 | 'speciallogtitlelabel' => '標題:', |
1096 | 1096 | 'log' => '日誌', |
| 1097 | +'all-logs-page' => '所有日誌', |
1097 | 1098 | 'log-search-legend' => '搜尋日誌', |
1098 | 1099 | 'log-search-submit' => '去', |
1099 | 1100 | 'alllogstext' => '綜合顯示上傳、刪除、保護、查封以及站務日誌。', |
Index: branches/liquidthreads/languages/messages/MessagesId.php |
— | — | @@ -1267,6 +1267,7 @@ |
1268 | 1268 | 'specialloguserlabel' => 'Pengguna:', |
1269 | 1269 | 'speciallogtitlelabel' => 'Judul:', |
1270 | 1270 | 'log' => 'Log', |
| 1271 | +'all-logs-page' => 'Semua log', |
1271 | 1272 | 'log-search-legend' => 'Pencarian log', |
1272 | 1273 | 'log-search-submit' => 'Cari', |
1273 | 1274 | 'alllogstext' => 'Di bawah ini adalah gabungan log impor, pemblokiran, pemindahan, pemuatan, penghapusan, perlindungan, perubahan hak akses, dll. Anda dapat melakukan pembatasan tampilan dengan memilih jenis log, nama pengguna, atau judul halaman yang terpengaruh.', |
Index: branches/liquidthreads/languages/messages/MessagesKk_tr.php |
— | — | @@ -1445,6 +1445,7 @@ |
1446 | 1446 | 'specialloguserlabel' => 'Qatıswşı:', |
1447 | 1447 | 'speciallogtitlelabel' => 'Ataw:', |
1448 | 1448 | 'log' => 'Jwrnaldar', |
| 1449 | +'all-logs-page' => 'Barlıq jwrnaldar', |
1449 | 1450 | 'log-search-legend' => 'Jwrnaldardan izdew', |
1450 | 1451 | 'log-search-submit' => 'Ötw', |
1451 | 1452 | 'alllogstext' => '{{SITENAME}} jobasınıñ barlıq qatınawlı jwrnaldarın biriktirip körsetwi. |
Index: branches/liquidthreads/languages/messages/MessagesKk_cn.php |
— | — | @@ -1452,6 +1452,7 @@ |
1453 | 1453 | 'specialloguserlabel' => 'قاتىسۋشى:', |
1454 | 1454 | 'speciallogtitlelabel' => 'اتاۋ:', |
1455 | 1455 | 'log' => 'جۋرنالدار', |
| 1456 | +'all-logs-page' => 'بارلىق جۋرنالدار', |
1456 | 1457 | 'log-search-legend' => 'جۋرنالداردان ٸزدەۋ', |
1457 | 1458 | 'log-search-submit' => 'ٶتۋ', |
1458 | 1459 | 'alllogstext' => '{{SITENAME}} جوباسىنىڭ بارلىق قاتىناۋلى جۋرنالدارىن بٸرٸكتٸرٸپ كٶرسەتۋٸ. |
Index: branches/liquidthreads/languages/messages/MessagesDe.php |
— | — | @@ -1254,6 +1254,7 @@ |
1255 | 1255 | 'specialloguserlabel' => 'Benutzer:', |
1256 | 1256 | 'speciallogtitlelabel' => 'Titel:', |
1257 | 1257 | 'log' => 'Logbücher', |
| 1258 | +'all-logs-page' => 'Alle Logbücher', |
1258 | 1259 | 'log-search-legend' => 'Logbücher durchsuchen', |
1259 | 1260 | 'log-search-submit' => 'Suche', |
1260 | 1261 | 'alllogstext' => 'Dies ist die kombinierte Anzeige aller in {{SITENAME}} geführten Logbücher. Die Ausgabe kann durch die Auswahl des Logbuchtyps, des Benutzers oder des Seitentitels eingeschränkt werden.', |
Index: branches/liquidthreads/languages/messages/MessagesKk_kz.php |
— | — | @@ -1444,6 +1444,7 @@ |
1445 | 1445 | 'specialloguserlabel' => 'Қатысушы:', |
1446 | 1446 | 'speciallogtitlelabel' => 'Атау:', |
1447 | 1447 | 'log' => 'Журналдар', |
| 1448 | +'all-logs-page' => 'Барлық журналдар', |
1448 | 1449 | 'log-search-legend' => 'Журналдардан іздеу', |
1449 | 1450 | 'log-search-submit' => 'Өту', |
1450 | 1451 | 'alllogstext' => '{{SITENAME}} жобасының барлық қатынаулы журналдарын біріктіріп көрсетуі. |
Index: branches/liquidthreads/languages/Names.php |
— | — | @@ -134,9 +134,9 @@ |
135 | 135 | 'kr' => 'Kanuri', # Kanuri (FIXME!) |
136 | 136 | 'ks' => 'कश्मीरी - (كشميري)', # Kashmiri |
137 | 137 | 'ksh' => 'Ripoarisch', # Ripuarian |
138 | | - 'ksh-c-a' => 'Ripoarisch c a', # Ripuarian |
139 | | - 'ksh-p-b' => 'Ripoarisch p b', # Ripuarian |
140 | 138 | 'ku' => 'Kurdî / كوردي', # Kurdish |
| 139 | + 'ku-latn' => "\xE2\x80\xAAKurdî (latînî)\xE2\x80\xAC", # Kurdish Latin script |
| 140 | + 'ku-arab' => "\xE2\x80\xABكوردي (عەرەبی)\xE2\x80\xAC", # Kurdish Arabic script |
141 | 141 | 'kv' => 'Коми', # Komi, cyrillic is common script but also written in latin script |
142 | 142 | 'kw' => 'Kernewek', # Cornish |
143 | 143 | 'ky' => 'Кыргызча', # Kirghiz |
Index: branches/liquidthreads/languages/classes/LanguageKu.deps.php |
— | — | @@ -0,0 +1,12 @@ |
| 2 | +<?php |
| 3 | +// This file exists to ensure that base classes are preloaded before |
| 4 | +// LanguageKu.php is compiled, working around a bug in the APC opcode |
| 5 | +// cache on PHP 5, where cached code can break if the include order |
| 6 | +// changed on a subsequent page view. |
| 7 | +// see http://mail.wikipedia.org/pipermail/wikitech-l/2006-January/033660.html |
| 8 | + |
| 9 | + |
| 10 | +require_once( dirname(__FILE__).'/../LanguageConverter.php' ); |
| 11 | +require_once( dirname(__FILE__).'/LanguageKu_ku.php' ); |
| 12 | + |
| 13 | +?> |
Property changes on: branches/liquidthreads/languages/classes/LanguageKu.deps.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 14 | + native |
Index: branches/liquidthreads/languages/classes/LanguageKu_ku.php |
— | — | @@ -0,0 +1,35 @@ |
| 2 | +<?php |
| 3 | +/** Kurdish |
| 4 | + * |
| 5 | + * |
| 6 | + * @addtogroup Language |
| 7 | + */ |
| 8 | + |
| 9 | + |
| 10 | +class LanguageKu_ku extends Language { |
| 11 | + |
| 12 | +/** # Convert from the nominative form of a noun to some other case |
| 13 | + # Invoked with {{GRAMMAR:case|word}} |
| 14 | + /** |
| 15 | + * Cases: |
| 16 | + * |
| 17 | + * From Kazakh interface, not needed at the moment, maybe later |
| 18 | + */ |
| 19 | + function convertGrammar( $word, $case ) { |
| 20 | + return $word; |
| 21 | + } |
| 22 | + |
| 23 | + /** |
| 24 | + * Avoid grouping whole numbers between 0 to 9999 |
| 25 | + */ |
| 26 | + function commafy( $_ ) { |
| 27 | + |
| 28 | + if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { |
| 29 | + return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev($_) ) ); |
| 30 | + } else { |
| 31 | + return $_; |
| 32 | + } |
| 33 | + } |
| 34 | +} |
| 35 | + |
| 36 | +?> |
Property changes on: branches/liquidthreads/languages/classes/LanguageKu_ku.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 37 | + native |
Index: branches/liquidthreads/languages/classes/LanguageKu.php |
— | — | @@ -0,0 +1,239 @@ |
| 2 | +<?php |
| 3 | +/** Kurdish |
| 4 | + * converter routines |
| 5 | + * |
| 6 | + * @addtogroup Language |
| 7 | + */ |
| 8 | + |
| 9 | +require_once( dirname(__FILE__).'/../LanguageConverter.php' ); |
| 10 | +require_once( dirname(__FILE__).'/LanguageKu_ku.php' ); |
| 11 | + |
| 12 | +class KuConverter extends LanguageConverter { |
| 13 | + var $mArabicToLatin = array( |
| 14 | + 'ب' => 'b', 'ج' => 'c', 'چ' => 'ç', 'د' => 'd', 'ف' => 'f', 'گ' => 'g', 'ھ' => 'h', |
| 15 | + 'ہ' => 'h', 'ه' => 'h', 'ح' => 'h', 'ژ' => 'j', 'ك' => 'k', 'ک' => 'k', 'ل' => 'l', |
| 16 | + 'م' => 'm', 'ن' => 'n', 'پ' => 'p', 'ق' => 'q', 'ر' => 'r', 'س' => 's', 'ش' => 'ş', |
| 17 | + 'ت' => 't', 'ڤ' => 'v', 'خ' => 'x', 'غ' => 'x', 'ز' => 'z', |
| 18 | + |
| 19 | + /* Doppel- und Halbvokale */ |
| 20 | + 'ڵ' => 'll', #ll |
| 21 | + 'ڕ' => 'rr', #rr |
| 22 | + 'ا' => 'a', |
| 23 | + # 'ئێ' => 'ê', # Anfangs-e |
| 24 | + 'ە' => 'e', |
| 25 | + 'ه' => 'e', # mit einem non-joiner |
| 26 | + 'ه' => 'e', # mit zwei non-joinern |
| 27 | + 'ة' => 'e', |
| 28 | + 'ێ' => 'ê', |
| 29 | + 'ي' => 'î', |
| 30 | + 'ی' => 'î', |
| 31 | + 'ۆ' => 'o', |
| 32 | + 'و' => 'w', |
| 33 | + 'ئ' => '', # initiales hemze soll verschluckt werden |
| 34 | + '،' => ',', |
| 35 | + 'ع' => '\'', # ayn |
| 36 | + '؟' => '?', |
| 37 | + ); |
| 38 | + |
| 39 | + var $mLatinToArabic = array( |
| 40 | + 'b' => 'ب', 'c' => 'ج', 'ç' => 'چ', 'd' => 'د', 'f' => 'ف', 'g' => 'گ', |
| 41 | + 'h' => 'ه', 'j' => 'ژ', 'k' => 'ک', 'l' => 'ل', |
| 42 | + 'm' => 'م', 'n' => 'ن', 'p' => 'پ', 'q' => 'ق', 'r' => 'ر', 's' => 'س', 'ş' => 'ش', |
| 43 | + 't' => 'ت', 'v' => 'ڤ', |
| 44 | + 'x' => 'خ', 'y' => 'ی', 'z' => 'ز', |
| 45 | + |
| 46 | + |
| 47 | + 'B' => 'ب', 'C' => 'ج', 'Ç' => 'چ', 'D' => 'د', 'F' => 'ف', 'G' => 'گ', 'H' => 'ھ', |
| 48 | + 'H' => 'ہ', 'H' => 'ه', 'H' => 'ح', 'J' => 'ژ', 'K' => 'ك', 'K' => 'ک', 'L' => 'ل', |
| 49 | + 'M' => 'م', 'N' => 'ن', 'P' => 'پ', 'Q' => 'ق', 'R' => 'ر', 'S' => 'س', 'Ş' => 'ش', |
| 50 | + 'T' => 'ت', 'V' => 'ڤ', 'W' => 'و', 'X' => 'خ', |
| 51 | + 'Y' => 'ی', 'Z' => 'ز', |
| 52 | + |
| 53 | + /* Doppelkonsonanten */ |
| 54 | + # 'll' => 'ڵ', # wenn es geht, doppel-l und l getrennt zu behandeln |
| 55 | + # 'rr' => 'ڕ', # selbiges für doppel-r |
| 56 | + |
| 57 | + /* Einzelne Großbuchstaben */ |
| 58 | + //' C' => 'ج', |
| 59 | + |
| 60 | + /* Vowels */ |
| 61 | + 'a' => 'ا', |
| 62 | + 'e' => 'ە', |
| 63 | + 'ê' => 'ێ', |
| 64 | + 'i' => '', |
| 65 | + 'î' => 'ی', |
| 66 | + 'o' => 'ۆ', |
| 67 | + 'u' => 'و', |
| 68 | + 'û' => 'وو', |
| 69 | + 'w' => 'و', |
| 70 | + ',' => '،', |
| 71 | + '?' => '؟', |
| 72 | + |
| 73 | + # Try to replace the leading vowel |
| 74 | + ' a' => 'ئا ', |
| 75 | + ' e' => 'ئە ', |
| 76 | + ' ê' => 'ئێ ', |
| 77 | + ' î' => 'ئی ', |
| 78 | + ' o' => 'ئۆ ', |
| 79 | + ' u' => 'ئو ', |
| 80 | + ' û' => 'ئوو ', |
| 81 | + 'A' => 'ئا', |
| 82 | + 'E' => 'ئە', |
| 83 | + 'Ê' => 'ئێ', |
| 84 | + 'Î' => 'ئی', |
| 85 | + 'O' => 'ئۆ', |
| 86 | + 'U' => 'ئو', |
| 87 | + 'Û' => 'ئوو', |
| 88 | + ' A' => 'ئا ', |
| 89 | + ' E' => 'ئە ', |
| 90 | + ' Ê' => 'ئێ ', |
| 91 | + ' Î' => 'ئی ', |
| 92 | + ' O' => 'ئۆ ', |
| 93 | + ' U' => 'ئو ', |
| 94 | + ' Û' => 'ئوو ', |
| 95 | + # eyn erstmal deaktivieren, einfache Anführungsstriche sind einfach zu häufig, um sie als eyn zu interpretieren |
| 96 | + # '\'' => 'ع', |
| 97 | + |
| 98 | + ); |
| 99 | + |
| 100 | + function loadDefaultTables() { |
| 101 | + $this->mTables = array( |
| 102 | + 'ku-latn' => new ReplacementArray( $this->mArabicToLatin ), |
| 103 | + 'ku-arab' => new ReplacementArray( $this->mLatinToArabic ), |
| 104 | + 'ku' => new ReplacementArray() |
| 105 | + ); |
| 106 | + } |
| 107 | + |
| 108 | + |
| 109 | + // Do not convert content on talk pages |
| 110 | + function parserConvert( $text, &$parser ){ |
| 111 | + if(is_object($parser->getTitle() ) && $parser->getTitle()->isTalkPage()) |
| 112 | + $this->mDoContentConvert=false; |
| 113 | + else |
| 114 | + $this->mDoContentConvert=true; |
| 115 | + |
| 116 | + return parent::parserConvert($text, $parser ); |
| 117 | + } |
| 118 | + |
| 119 | + /* |
| 120 | + * A function wrapper: |
| 121 | + * - if there is no selected variant, leave the link |
| 122 | + * names as they were |
| 123 | + * - do not try to find variants for usernames |
| 124 | + */ |
| 125 | + function findVariantLink( &$link, &$nt ) { |
| 126 | + // check for user namespace |
| 127 | + if(is_object($nt)){ |
| 128 | + $ns = $nt->getNamespace(); |
| 129 | + if($ns==NS_USER || $ns==NS_USER_TALK) |
| 130 | + return; |
| 131 | + } |
| 132 | + |
| 133 | + $oldlink=$link; |
| 134 | + parent::findVariantLink($link,$nt); |
| 135 | + if($this->getPreferredVariant()==$this->mMainLanguageCode) |
| 136 | + $link=$oldlink; |
| 137 | + } |
| 138 | + |
| 139 | + /* |
| 140 | + * We want our external link captions to be converted in variants, |
| 141 | + * so we return the original text instead -{$text}-, except for URLs |
| 142 | + */ |
| 143 | + function markNoConversion($text, $noParse=false) { |
| 144 | + if($noParse || preg_match("/^https?:\/\/|ftp:\/\/|irc:\/\//",$text)) |
| 145 | + return parent::markNoConversion($text); |
| 146 | + return $text; |
| 147 | + } |
| 148 | + |
| 149 | + /* |
| 150 | + * An ugly function wrapper for parsing Image titles |
| 151 | + * (to prevent image name conversion) |
| 152 | + */ |
| 153 | + function autoConvert($text, $toVariant=false) { |
| 154 | + global $wgTitle; |
| 155 | + if(is_object($wgTitle) && $wgTitle->getNameSpace()==NS_IMAGE){ |
| 156 | + $imagename = $wgTitle->getNsText(); |
| 157 | + if(preg_match("/^$imagename:/",$text)) return $text; |
| 158 | + } |
| 159 | + return parent::autoConvert($text,$toVariant); |
| 160 | + } |
| 161 | + |
| 162 | + /** |
| 163 | + * It translates text into variant, specials: |
| 164 | + * - ommiting roman numbers |
| 165 | + */ |
| 166 | + function translate($text, $toVariant){ |
| 167 | + $breaks = '[^\w\x80-\xff]'; |
| 168 | + |
| 169 | + /* From Kazakh interface, maybe we need it later |
| 170 | + * |
| 171 | + // regexp for roman numbers |
| 172 | + $roman = 'M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})'; |
| 173 | + $roman = ''; |
| 174 | + |
| 175 | + $reg = '/^'.$roman.'$|^'.$roman.$breaks.'|'.$breaks.$roman.'$|'.$breaks.$roman.$breaks.'/'; |
| 176 | + |
| 177 | + $matches = preg_split($reg, $text, -1, PREG_SPLIT_OFFSET_CAPTURE); |
| 178 | + |
| 179 | + $m = array_shift($matches); |
| 180 | + if( !isset( $this->mTables[$toVariant] ) ) { |
| 181 | + throw new MWException( "Broken variant table: " . implode( ',', array_keys( $this->mTables ) ) ); |
| 182 | + } |
| 183 | + $ret = $this->mTables[$toVariant]->replace( $m[0] ); |
| 184 | + $mstart = $m[1]+strlen($m[0]); |
| 185 | + foreach($matches as $m) { |
| 186 | + $ret .= substr($text, $mstart, $m[1]-$mstart); |
| 187 | + $ret .= parent::translate($m[0], $toVariant); |
| 188 | + $mstart = $m[1] + strlen($m[0]); |
| 189 | + } |
| 190 | + |
| 191 | + return $ret; |
| 192 | + */ |
| 193 | + |
| 194 | + if( !isset( $this->mTables[$toVariant] ) ) { |
| 195 | + throw new MWException( "Broken variant table: " . implode( ',', array_keys( $this->mTables ) ) ); |
| 196 | + } |
| 197 | + |
| 198 | + return parent::translate( $text, $toVariant ); |
| 199 | + } |
| 200 | +} |
| 201 | + |
| 202 | +class LanguageKu extends LanguageKu_ku { |
| 203 | + |
| 204 | + function __construct() { |
| 205 | + global $wgHooks; |
| 206 | + parent::__construct(); |
| 207 | + |
| 208 | + $variants = array( 'ku', 'ku-arab', 'ku-latn' ); |
| 209 | + $variantfallbacks = array( |
| 210 | + 'ku' => 'ku-latn', |
| 211 | + 'ku-arab' => 'ku-latn', |
| 212 | + 'ku-latn' => 'ku-arab', |
| 213 | + ); |
| 214 | + |
| 215 | + $this->mConverter = new KuConverter( $this, 'ku', $variants, $variantfallbacks ); |
| 216 | + $wgHooks['ArticleSaveComplete'][] = $this->mConverter; |
| 217 | + } |
| 218 | + |
| 219 | +/* From Kazakh interface, not needed for the moment |
| 220 | + |
| 221 | + function convertGrammar( $word, $case ) { |
| 222 | + $fname="LanguageKu::convertGrammar"; |
| 223 | + wfProfileIn( $fname ); |
| 224 | + |
| 225 | + //always convert to ku-latn before convertGrammar |
| 226 | + $w1 = $word; |
| 227 | + $word = $this->mConverter->autoConvert( $word, 'ku-latn' ); |
| 228 | + $w2 = $word; |
| 229 | + $word = parent::convertGrammar( $word, $case ); |
| 230 | + //restore encoding |
| 231 | + if( $w1 != $w2 ) { |
| 232 | + $word = $this->mConverter->translate( $word, 'ku-latn' ); |
| 233 | + } |
| 234 | + wfProfileOut( $fname ); |
| 235 | + return $word; |
| 236 | + } |
| 237 | +*/ |
| 238 | +} |
| 239 | + |
| 240 | +?> |
Property changes on: branches/liquidthreads/languages/classes/LanguageKu.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 241 | + native |
Index: branches/liquidthreads/RELEASE-NOTES |
— | — | @@ -86,6 +86,7 @@ |
87 | 87 | * (bug 10096) Added an ability to query interwiki map table |
88 | 88 | * On reupload, add a null revision to the image description page |
89 | 89 | * Group log output by date |
| 90 | +* Kurdish interface latin/arabic writing system with transliteration |
90 | 91 | |
91 | 92 | == Bugfixes since 1.10 == |
92 | 93 | |
— | — | @@ -100,8 +101,8 @@ |
101 | 102 | like [[User:#123|#123]] |
102 | 103 | * Use the standard HTTP fetch functions when retrieving remote wiki pages |
103 | 104 | through transwiki, so we can take advantage of cURL goodies if available |
104 | | -* Disable custom user javascript in Special:Preferences, to avoid the risk |
105 | | - of a compromised script sniffing passwords etc. |
| 105 | +* Disable user JavaScript on Special:Userlogin, Special:Resetpass and |
| 106 | + Special:Preferences, to avoid a compromised script sniffing passwords, etc. |
106 | 107 | * (bug 9854, 3770) Clip overflow text in gallery boxes for visual cleanliness |
107 | 108 | instead of letting it flow outside the box or trigger ugly scroll bars. |
108 | 109 | * Tooltips for print version and permalink |
— | — | @@ -173,8 +174,8 @@ |
174 | 175 | {{LOCAL*}} functions return local time per server config or $wgLocaltimezone. |
175 | 176 | Signature dates for Japanese and other languages including weekday now show |
176 | 177 | the correct day to match the rest of the time in local time. |
| 178 | +* Escape the output of magic variables that return page name or part of it |
177 | 179 | |
178 | | - |
179 | 180 | == API changes since 1.10 == |
180 | 181 | |
181 | 182 | (For ongoing development discussion, see http://www.mediawiki.org/wiki/API) |
— | — | @@ -209,6 +210,7 @@ |
210 | 211 | * (bug 10147) Now interwiki titles are not processed but added to a separate |
211 | 212 | "interwiki" section of the output. |
212 | 213 | * Added categorymembers list to query for pages in a category. |
| 214 | +* (bug 10260) Show page protection status |
213 | 215 | |
214 | 216 | == Maintenance script changes since 1.10 == |
215 | 217 | |
Property changes on: branches/liquidthreads |
___________________________________________________________________ |
Modified: svnmerge-integrated |
216 | 218 | - /trunk/phase3:1-23049 |
217 | 219 | + /trunk/phase3:1-23086 |