r47080 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r47079‎ | r47080 | r47081 >
Date:12:44, 10 February 2009
Author:mkroetzsch
Status:deferred
Tags:
Comment:
output formats "icalendar" and "vcard" move to Semantic Result Formats extension, reduce code size of SMW ...
Modified paths:
  • /trunk/extensions/SemanticMediaWiki/RELEASE-NOTES (modified) (history)
  • /trunk/extensions/SemanticMediaWiki/includes/SMW_GlobalFunctions.php (modified) (history)
  • /trunk/extensions/SemanticMediaWiki/includes/SMW_QP_iCalendar.php (deleted) (history)
  • /trunk/extensions/SemanticMediaWiki/includes/SMW_QP_vCard.php (deleted) (history)
  • /trunk/extensions/SemanticMediaWiki/includes/SMW_Settings.php (modified) (history)
  • /trunk/extensions/SemanticMediaWiki/languages/SMW_Messages.php (modified) (history)

Diff [purge]

Index: trunk/extensions/SemanticMediaWiki/RELEASE-NOTES
@@ -6,7 +6,9 @@
77
88 * Improved performance. Significantly improved memory usage on common
99 operations.
10 -* Support for running SMW on PostgresQL (testing needed).
 10+* Initial support for running SMW on PostgresQL (testing needed).
 11+* The query formats 'vcard' and 'icalendar' have been moved to the Semantic
 12+ Result Formats extension to make the SMW core more light-weight
1113 * SMW_refreshData.php now supports parameter --page to specify one or more
1214 pages to be updated (instead of using ID ranges)
1315 * Various bugfixes
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_QP_iCalendar.php
@@ -1,161 +0,0 @@
2 -<?php
3 -/**
4 - * Create iCalendar exports
5 - * @file
6 - * @ingroup SMWQuery
7 - */
8 -
9 -/**
10 - * Printer class for creating iCalendar exports
11 - * @author Markus Krötzsch
12 - * @author Denny Vrandecic
13 - * @ingroup SMWQuery
14 - */
15 -class SMWiCalendarResultPrinter extends SMWResultPrinter {
16 - protected $m_title = '';
17 - protected $m_description = '';
18 -
19 - protected function readParameters($params,$outputmode) {
20 - SMWResultPrinter::readParameters($params,$outputmode);
21 - if (array_key_exists('title', $this->m_params)) {
22 - $this->m_title = trim($this->m_params['title']);
23 - // for backward compatibility
24 - } elseif (array_key_exists('icalendartitle', $this->m_params)) {
25 - $this->m_title = trim($this->m_params['icalendartitle']);
26 - }
27 - if (array_key_exists('description', $this->m_params)) {
28 - $this->m_description = trim($this->m_params['description']);
29 - // for backward compatibility
30 - } elseif (array_key_exists('icalendardescription', $this->m_params)) {
31 - $this->m_description = trim($this->m_params['icalendardescription']);
32 - }
33 - }
34 -
35 - public function getMimeType($res) {
36 - return 'text/calendar';
37 - }
38 -
39 - public function getFileName($res) {
40 - if ($this->m_title != '') {
41 - return str_replace(' ', '_',$this->m_title) . '.ics';
42 - } else {
43 - return 'iCalendar.ics';
44 - }
45 - }
46 -
47 - protected function getResultText($res, $outputmode) {
48 - global $smwgIQRunningNumber, $wgSitename, $wgServer, $wgRequest;
49 - $result = '';
50 -
51 - if ($outputmode == SMW_OUTPUT_FILE) { // make RSS feed
52 - if ($this->m_title == '') {
53 - $this->m_title = $wgSitename;
54 - }
55 - $result .= "BEGIN:VCALENDAR\r\n";
56 - $result .= "PRODID:-//SMW Project//Semantic MediaWiki\r\n";
57 - $result .= "VERSION:2.0\r\n";
58 - $result .= "METHOD:PUBLISH\r\n";
59 - $result .= "X-WR-CALNAME:" . $this->m_title . "\r\n";
60 - if ($this->m_description !== '') {
61 - $result .= "X-WR-CALDESC:" . $this->m_description . "\r\n";
62 - }
63 -
64 - $row = $res->getNext();
65 - while ( $row !== false ) {
66 - $wikipage = $row[0]->getNextObject(); // get the object
67 - $startdate = false;
68 - $enddate = false;
69 - $location = '';
70 - $description = '';
71 - foreach ($row as $field) {
72 - // later we may add more things like a generic
73 - // mechanism to add whatever you want :)
74 - // could include funny things like geo, description etc. though
75 - $req = $field->getPrintRequest();
76 - if ( (strtolower($req->getLabel()) == "start") && ($req->getTypeID() == "_dat") ) {
77 - $startdate = current($field->getContent()); // save only the first
78 - }
79 - if ( (strtolower($req->getLabel()) == "end") && ($req->getTypeID() == "_dat") ) {
80 - $enddate = current($field->getContent()); // save only the first
81 - }
82 - if (strtolower($req->getLabel()) == "location") {
83 - $value = current($field->getContent()); // save only the first
84 - if ($value !== false) {
85 - $location = $value->getShortWikiText();
86 - }
87 - }
88 - if (strtolower($req->getLabel()) == "description") {
89 - $value = current($field->getContent()); // save only the first
90 - if ($value !== false) {
91 - $description = $value->getShortWikiText();
92 - }
93 - }
94 - }
95 - $title = $wikipage->getTitle();
96 - $article = new Article($title);
97 - $url = $title->getFullURL();
98 - $result .= "BEGIN:VEVENT\r\n";
99 - $result .= "SUMMARY:" . $wikipage->getShortWikiText() . "\r\n";
100 - $result .= "URL:$url\r\n";
101 - $result .= "UID:$url\r\n";
102 - if ($startdate != false) $result .= "DTSTART:" . $this->parsedate($startdate) . "\r\n";
103 - if ($enddate != false) $result .= "DTEND:" . $this->parsedate($enddate,true) . "\r\n";
104 - if ($location != "") $result .= "LOCATION:$location\r\n";
105 - if ($description != "") $result .= "DESCRIPTION:$description\r\n";
106 - $t = strtotime(str_replace('T', ' ', $article->getTimestamp()));
107 - $result .= "DTSTAMP:" . date("Ymd", $t) . "T" . date("His", $t) . "\r\n";
108 - $result .= "SEQUENCE:" . $title->getLatestRevID() . "\r\n";
109 - $result .= "END:VEVENT\r\n";
110 - $row = $res->getNext();
111 - }
112 - $result .= "END:VCALENDAR\r\n";
113 - } else { // just make link to feed
114 - if ($this->getSearchLabel($outputmode)) {
115 - $label = $this->getSearchLabel($outputmode);
116 - } else {
117 - wfLoadExtensionMessages('SemanticMediaWiki');
118 - $label = wfMsgForContent('smw_icalendar_link');
119 - }
120 - $link = $res->getQueryLink($label);
121 - $link->setParameter('icalendar','format');
122 - if ($this->m_title !== '') {
123 - $link->setParameter($this->m_title,'title');
124 - }
125 - if ($this->m_description !== '') {
126 - $link->setParameter($this->m_description,'description');
127 - }
128 - if (array_key_exists('limit', $this->m_params)) {
129 - $link->setParameter($this->m_params['limit'],'limit');
130 - } else { // use a reasonable default limit
131 - $link->setParameter(20,'limit');
132 - }
133 -
134 - $result .= $link->getText($outputmode,$this->mLinker);
135 - $this->isHTML = ($outputmode == SMW_OUTPUT_HTML); // yes, our code can be viewed as HTML if requested, no more parsing needed
136 - }
137 -
138 - return $result;
139 - }
140 -
141 - /**
142 - * Extract a date string formatted for iCalendar from a SMWTimeValue object.
143 - */
144 - static private function parsedate(SMWTimeValue $dv, $isend=false) {
145 - $year = $dv->getYear();
146 - if ( ($year > 9999) || ($year<-9998) ) return ''; // ISO range is limited to four digits
147 - $year = number_format($year, 0, '.', '');
148 - $time = str_replace(':','', $dv->getTimeString(false));
149 - if ( ($time == false) && ($isend) ) { // increment by one day, compute date to cover leap years etc.
150 - $dv = SMWDataValueFactory::newTypeIDValue('_dat',$dv->getWikiValue() . 'T00:00:00+24:00');
151 - }
152 - $month = $dv->getMonth();
153 - if (strlen($month) == 1) $month = '0' . $month;
154 - $day = $dv->getDay();
155 - if (strlen($day) == 1) $day = '0' . $day;
156 - $result = $year . $month . $day;
157 - if ($time != false) $result .= "T$time";
158 - return $result;
159 - }
160 -
161 -}
162 -
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_QP_vCard.php
@@ -1,538 +0,0 @@
2 -<?php
3 -/**
4 - * Create vCard exports
5 - * @file
6 - * @ingroup SMWQuery
7 - */
8 -
9 -/**
10 - * Printer class for creating vCard exports
11 - * @author Markus Krötzsch
12 - * @author Denny Vrandecic
13 - * @author Frank Dengler
14 - * @ingroup SMWQuery
15 - */
16 -class SMWvCardResultPrinter extends SMWResultPrinter {
17 - protected $m_title = '';
18 - protected $m_description = '';
19 -
20 - public function getMimeType($res) {
21 - return 'text/x-vcard';
22 - }
23 -
24 - public function getFileName($res) {
25 - if ($this->getSearchLabel(SMW_OUTPUT_WIKI) != '') {
26 - return str_replace(' ', '_',$this->getSearchLabel(SMW_OUTPUT_WIKI)) . '.vcf';
27 - } else {
28 - return 'vCard.vcf';
29 - }
30 - }
31 -
32 - protected function getResultText($res, $outputmode) {
33 - global $smwgIQRunningNumber, $wgSitename, $wgServer, $wgRequest;
34 - $result = '';
35 - $items = array();
36 - if ($outputmode == SMW_OUTPUT_FILE) { // make vCard file
37 - if ($this->m_title == '') {
38 - $this->m_title = $wgSitename;
39 - }
40 - $row = $res->getNext();
41 - while ( $row !== false ) {
42 - $wikipage = $row[0]->getNextObject(); // get the object
43 - // name
44 - $prefix = ''; // something like 'Dr.'
45 - $firstname = ''; // given name
46 - $additionalname = ''; // typically the "middle" name (second first name)
47 - $lastname = ''; // family name
48 - $suffix = ''; // things like "jun." or "sen."
49 - $fullname = ''; // the "formatted name", may be independent from first/lastname & co.
50 - // contacts
51 - $emails = array();
52 - $tels = array();
53 - $addresses = array();
54 - // organisational details:
55 - $organization = ''; // any string
56 - $jobtitle ='';
57 - $role = '';
58 - $department ='';
59 - // other stuff
60 - $category ='';
61 - $birthday = ''; // a date
62 - $url =''; // homepage, a legal URL
63 - $note =''; // any text
64 - $workaddress = false;
65 - $homeaddress = false;
66 -
67 - $workpostofficebox ='';
68 - $workextendedaddress ='';
69 - $workstreet ='';
70 - $worklocality ='';
71 - $workregion ='';
72 - $workpostalcode ='';
73 - $workcountry ='';
74 -
75 -
76 - $homepostofficebox ='';
77 - $homeextendedaddress ='';
78 - $homestreet ='';
79 - $homelocality ='';
80 - $homeregion ='';
81 - $homepostalcode ='';
82 - $homecountry ='';
83 -
84 - foreach ($row as $field) {
85 - // later we may add more things like a generic
86 - // mechanism to add non-standard vCard properties as well
87 - // (could include funny things like geo, description etc.)
88 - $req = $field->getPrintRequest();
89 - $reqValue = (strtolower($req->getLabel()));
90 - switch($reqValue) {
91 - case "name":
92 - $value = current($field->getContent()); // save only the first
93 - if ($value !== false) {
94 - $fullname = $value->getShortWikiText();
95 - }
96 - break;
97 -
98 - case "prefix":
99 - foreach ($field->getContent() as $value) {
100 - $prefix .= ($prefix?',':'') . $value->getShortWikiText();
101 - }
102 - break;
103 -
104 - case "suffix":
105 - foreach ($field->getContent() as $value) {
106 - $suffix .= ($suffix?',':'') . $value->getShortWikiText();
107 - }
108 - break;
109 -
110 - case "firstname":
111 - $value = current($field->getContent()); // save only the first
112 - if ($value !== false) {
113 - $firstname = $value->getShortWikiText();
114 - }
115 - break;
116 -
117 - case "extraname":
118 - foreach ($field->getContent() as $value) {
119 - $additionalname .= ($additionalname?',':'') . $value->getShortWikiText();
120 - }
121 - break;
122 -
123 - case "lastname":
124 - $value = current($field->getContent()); // save only the first
125 - if ($value !== false) {
126 - $lastname = $value->getShortWikiText();
127 - }
128 - break;
129 -
130 - case "note":
131 - foreach ($field->getContent() as $value) {
132 - $note .= ($note?', ':'') . $value->getShortWikiText();
133 - }
134 - break;
135 -
136 - case "email":
137 - foreach ($field->getContent() as $entry) {
138 - $emails[] = new SMWvCardEmail('internet', $entry->getShortWikiText());
139 - }
140 - break;
141 -
142 - case "workphone":
143 - foreach ($field->getContent() as $entry) {
144 - $tels[] = new SMWvCardTel('WORK',$entry->getShortWikiText());
145 - }
146 - break;
147 -
148 - case "cellphone":
149 - foreach ($field->getContent() as $entry) {
150 - $tels[] = new SMWvCardTel('CELL',$entry->getShortWikiText());
151 - }
152 - break;
153 -
154 - case "homephone":
155 - foreach ($field->getContent() as $entry) {
156 - $tels[] = new SMWvCardTel('HOME',$entry->getShortWikiText());
157 - }
158 - break;
159 -
160 - case "organization":
161 - $value = current($field->getContent()); // save only the first
162 - if ($value !== false) {
163 - $organization = $value->getShortWikiText();
164 - }
165 - break;
166 -
167 - case "workpostofficebox":
168 - $value = current($field->getContent()); // save only the first
169 - if ($value !== false) {
170 - $workpostofficebox = $value->getShortWikiText();
171 - $workaddress = true;
172 - }
173 - break;
174 -
175 - case "workextendedaddress":
176 - $value = current($field->getContent()); // save only the first
177 - if ($value !== false) {
178 - $workextendedaddress = $value->getShortWikiText();
179 - $workaddress = true;
180 - }
181 - break;
182 -
183 - case "workstreet":
184 - $value = current($field->getContent()); // save only the first
185 - if ($value !== false) {
186 - $workstreet = $value->getShortWikiText();
187 - $workaddress = true;
188 - }
189 - break;
190 -
191 - case "worklocality":
192 - $value = current($field->getContent()); // save only the first
193 - if ($value !== false) {
194 - $worklocality = $value->getShortWikiText();
195 - $workaddress = true;
196 - }
197 - break;
198 -
199 - case "workregion":
200 - $value = current($field->getContent()); // save only the first
201 - if ($value !== false) {
202 - $workregion = $value->getShortWikiText();
203 - $workaddress = true;
204 - }
205 - break;
206 -
207 - case "workpostalcode":
208 - $value = current($field->getContent()); // save only the first
209 - if ($value !== false) {
210 - $workpostalcode = $value->getShortWikiText();
211 - $workaddress = true;
212 - }
213 - break;
214 -
215 - case "workcountry":
216 - $value = current($field->getContent()); // save only the first
217 - if ($value !== false) {
218 - $workcountry = $value->getShortWikiText();
219 - $workaddress = true;
220 - }
221 - break;
222 -
223 - case "homepostofficebox":
224 - $value = current($field->getContent()); // save only the first
225 - if ($value !== false) {
226 - $homepostofficebox = $value->getShortWikiText();
227 - $homeaddress = true;
228 - }
229 - break;
230 -
231 - case "homeextendedaddress":
232 - $value = current($field->getContent()); // save only the first
233 - if ($value !== false) {
234 - $homeextendedaddress = $value->getShortWikiText();
235 - $homeaddress = true;
236 - }
237 - break;
238 -
239 - case "homestreet":
240 - $value = current($field->getContent()); // save only the first
241 - if ($value !== false) {
242 - $homestreet = $value->getShortWikiText();
243 - $homeaddress = true;
244 - }
245 - break;
246 -
247 - case "homelocality":
248 - $value = current($field->getContent()); // save only the first
249 - if ($value !== false) {
250 - $homelocality = $value->getShortWikiText();
251 - $homeaddress = true;
252 - }
253 - break;
254 -
255 - case "homeregion":
256 - $value = current($field->getContent()); // save only the first
257 - if ($value !== false) {
258 - $homeregion = $value->getShortWikiText();
259 - $homeaddress = true;
260 - }
261 - break;
262 -
263 - case "homepostalcode":
264 - $value = current($field->getContent()); // save only the first
265 - if ($value !== false) {
266 - $homepostalcode = $value->getShortWikiText();
267 - $homeaddress = true;
268 - }
269 - break;
270 -
271 - case "homecountry":
272 - $value = current($field->getContent()); // save only the first
273 - if ($value !== false) {
274 - $homecountry = $value->getShortWikiText();
275 - $homeaddress = true;
276 - }
277 - break;
278 -
279 - case "birthday":
280 - if ($req->getTypeID() == "_dat") {
281 - $value = current($field->getContent()); // save only the first
282 - if ($value !== false) {
283 - $birthday = $value->getXMLSchemaDate();
284 - }
285 - }
286 - break;
287 -
288 - case "homepage":
289 - if ($req->getTypeID() == "_uri") {
290 - $value = current($field->getContent()); // save only the first
291 - if ($value !== false) {
292 - $url = $value->getWikiValue();
293 - }
294 - }
295 - break;
296 - }
297 - }
298 - $pagetitle = $wikipage->getTitle();
299 - if ($workaddress) $addresses[] = new SMWvCardAddress ('WORK', $workpostofficebox, $workextendedaddress, $workstreet, $worklocality, $workregion, $workpostalcode, $workcountry);
300 - if ($homeaddress) $addresses[] = new SMWvCardAddress ('HOME', $homepostofficebox, $homeextendedaddress, $homestreet, $homelocality, $homeregion, $homepostalcode, $homecountry);
301 - $items[] = new SMWvCardEntry($pagetitle, $prefix, $firstname, $lastname, $additionalname, $suffix, $fullname, $tels, $addresses, $emails, $birthday, $jobtitle, $role, $organization, $department, $category, $url, $note);
302 - $row = $res->getNext();
303 - }
304 - foreach ($items as $item) {
305 - $result .= $item->text();
306 - }
307 - } else { // just make link to vcard
308 - if ($this->getSearchLabel($outputmode)) {
309 - $label = $this->getSearchLabel($outputmode);
310 - } else {
311 - wfLoadExtensionMessages('SemanticMediaWiki');
312 - $label = wfMsgForContent('smw_vcard_link');
313 - }
314 - $link = $res->getQueryLink($label);
315 - $link->setParameter('vcard','format');
316 - if ($this->getSearchLabel(SMW_OUTPUT_WIKI) != '') {
317 - $link->setParameter($this->getSearchLabel(SMW_OUTPUT_WIKI),'searchlabel');
318 - }
319 - if (array_key_exists('limit', $this->m_params)) {
320 - $link->setParameter($this->m_params['limit'],'limit');
321 - } else { // use a reasonable default limit
322 - $link->setParameter(20,'limit');
323 - }
324 - $result .= $link->getText($outputmode,$this->mLinker);
325 - $this->isHTML = ($outputmode == SMW_OUTPUT_HTML); // yes, our code can be viewed as HTML if requested, no more parsing needed
326 - }
327 - return $result;
328 - }
329 -
330 -}
331 -
332 -/**
333 - * Represents a single entry in an vCard
334 - * @ingroup SMWQuery
335 - */
336 -class SMWvCardEntry {
337 - private $uri;
338 - private $label;
339 - private $fullname;
340 - private $firstname;
341 - private $lastname;
342 - private $additionalname;
343 - private $prefix;
344 - private $suffix;
345 - private $tels = array();
346 - private $addresses = array();
347 - private $emails = array();
348 - private $birthday;
349 - private $dtstamp;
350 - private $title;
351 - private $role;
352 - private $organization;
353 - private $department;
354 - private $category;
355 - private $note;
356 -
357 - /**
358 - * Constructor for a single item in the vcard. Requires the URI of the item.
359 - */
360 - public function SMWVCardEntry(Title $t, $prefix, $firstname, $lastname, $additionalname, $suffix, $fullname, $tels, $addresses, $emails, $birthday, $jobtitle, $role, $organization, $department, $category, $url, $note) {
361 - global $wgServer;
362 - $this->uri = $t->getFullURL();
363 - $this->url = $url;
364 - // read fullname or guess it in a simple way from other names that are given
365 - if ($fullname != '') {
366 - $this->label = $fullname;
367 - } elseif ($firstname . $lastname != '') {
368 - $this->label = $firstname . (( ($firstname!='') && ($lastname!='') )?' ':'') . $lastname;
369 - } else {
370 - $this->label = $t->getText();
371 - }
372 - $this->label = SMWVCardEntry::vCardEscape($this->label);
373 - // read firstname and lastname, or guess it from other names that are given
374 - if ($firstname . $lastname == '') { // guessing needed
375 - $nameparts = explode(' ', $this->label);
376 - // Accepted forms for guessing:
377 - // "Lastname"
378 - // "Firstname Lastname"
379 - // "Firstname <Additionalnames> Lastname"
380 - $this->lastname = SMWVCardEntry::vCardEscape(array_pop($nameparts));
381 - if (count($nameparts)>0) $this->firstname = SMWVCardEntry::vCardEscape(array_shift($nameparts));
382 - foreach ($nameparts as $name) {
383 - $this->additionalname .= ($this->additionalname!=''?',':'') . SMWVCardEntry::vCardEscape($name);
384 - }
385 - } else {
386 - $this->firstname = SMWVCardEntry::vCardEscape($firstname);
387 - $this->lastname = SMWVCardEntry::vCardEscape($lastname);
388 - }
389 - if ($additionalname != '') $this->additionalname = $additionalname; // no escape, can be a value list
390 - // ^ overwrite above guessing in that case
391 - $this->prefix = SMWVCardEntry::vCardEscape($prefix);
392 - $this->suffix = SMWVCardEntry::vCardEscape($suffix);
393 - $this->tels = $tels;
394 - $this->addresses = $addresses;
395 - $this->emails = $emails;
396 - $this->birthday = $birthday;
397 - $this->title = SMWVCardEntry::vCardEscape($jobtitle);
398 - $this->role = SMWVCardEntry::vCardEscape($role);
399 - $this->organization = SMWVCardEntry::vCardEscape($organization);
400 - $this->department = SMWVCardEntry::vCardEscape($department);
401 - $this->category = $category; // allow non-escaped "," in here for making a list of categories
402 - $this->note = SMWVCardEntry::vCardEscape($note);
403 -
404 - $article = new Article($t);
405 - $this->dtstamp = $article->getTimestamp();
406 - }
407 -
408 -
409 - /**
410 - * Creates the vCard output for a single item.
411 - */
412 - public function text() {
413 - $text = "BEGIN:VCARD\r\n";
414 - $text .= "VERSION:3.0\r\n";
415 - // N and FN are required properties in vCard 3.0, we need to write something there
416 - $text .= "N;CHARSET=UTF-8:$this->lastname;$this->firstname;$this->additionalname;$this->prefix;$this->suffix\r\n";
417 - $text .= "FN;CHARSET=UTF-8:$this->label\r\n";
418 - // heuristic for setting confidentiality level of vCard:
419 - global $wgGroupPermissions;
420 - if ( (array_key_exists('*', $wgGroupPermissions)) &&
421 - (array_key_exists('read', $wgGroupPermissions['*'])) ) {
422 - $public = $wgGroupPermissions['*']['read'];
423 - } else {
424 - $public = true;
425 - }
426 - $text .= ($public?'CLASS:PUBLIC':'CLASS:CONFIDENTIAL') . "\r\n";
427 - if ($this->birthday !== "") $text .= "BDAY:$this->birthday\r\n";
428 - if ($this->title !== "") $text .= "TITLE;CHARSET=UTF-8:$this->title\r\n";
429 - if ($this->role !== "") $text .= "ROLE;CHARSET=UTF-8:$this->role\r\n";
430 - if ($this->organization !== "") $text .= "ORG;CHARSET=UTF-8:$this->organization;$this->department\r\n";
431 - if ($this->category !== "") $text .= "CATEGORIES;CHARSET=UTF-8:$this->category\r\n";
432 - foreach ($this->emails as $entry) $text .= $entry->createVCardEmailText();
433 - foreach ($this->addresses as $entry) $text .= $entry->createVCardAddressText();
434 - foreach ($this->tels as $entry) $text .= $entry->createVCardTelText();
435 - if ($this->note !== "") $text .= "NOTE;CHARSET=UTF-8:$this->note\r\n";
436 - $text .= "SOURCE;CHARSET=UTF-8:$this->uri\r\n";
437 - $text .= "PRODID:-////Semantic MediaWiki\r\n";
438 - $text .= "REV:$this->dtstamp\r\n";
439 - $text .= "URL:" . ($this->url?$this->url:$this->uri) . "\r\n";
440 - $text .= "UID:$this->uri\r\n";
441 - $text .= "END:VCARD\r\n";
442 - return $text;
443 - }
444 -
445 - public static function vCardEscape($text) {
446 - return str_replace(array('\\',',',':',';'), array('\\\\','\,','\:','\;'),$text);
447 - }
448 -
449 -}
450 -
451 -/**
452 - * Represents a single address entry in an vCard entry.
453 - * @ingroup SMWQuery
454 - */
455 -class SMWvCardAddress{
456 - private $type;
457 - private $postofficebox;
458 - private $extendedaddress;
459 - private $street;
460 - private $locality;
461 - private $region;
462 - private $postalcode;
463 - private $country;
464 -
465 - /**
466 - * Constructor for a single address item in the vcard item.
467 - */
468 - public function __construct($type, $postofficebox, $extendedaddress, $street, $locality, $region, $postalcode, $country) {
469 - $this->type = $type;
470 - $this->postofficebox = SMWVCardEntry::vCardEscape($postofficebox);
471 - $this->extendedaddress = SMWVCardEntry::vCardEscape($extendedaddress);
472 - $this->street = SMWVCardEntry::vCardEscape($street);
473 - $this->locality = SMWVCardEntry::vCardEscape($locality);
474 - $this->region = SMWVCardEntry::vCardEscape($region);
475 - $this->postalcode = SMWVCardEntry::vCardEscape($postalcode);
476 - $this->country = SMWVCardEntry::vCardEscape($country);
477 - }
478 -
479 - /**
480 - * Creates the vCard output for a single address item.
481 - */
482 - public function createVCardAddressText(){
483 - if ($this->type == "") $this->type="work";
484 - $text = "ADR;TYPE=$this->type;CHARSET=UTF-8:$this->postofficebox;$this->extendedaddress;$this->street;$this->locality;$this->region;$this->postalcode;$this->country\r\n";
485 - return $text;
486 - }
487 -}
488 -
489 -/**
490 - * Represents a single telephone entry in an vCard entry.
491 - * @ingroup SMWQuery
492 - */
493 -class SMWvCardTel{
494 - private $type;
495 - private $telnumber;
496 -
497 - /**
498 - * Constructor for a single telephone item in the vcard item.
499 - */
500 - public function __construct($type, $telnumber) {
501 - $this->type = $type; // may be a vCard value list using ",", no escaping
502 - $this->telnumber = SMWVCardEntry::vCardEscape($telnumber); // escape to be sure
503 - }
504 -
505 - /**
506 - * Creates the vCard output for a single telephone item.
507 - */
508 - public function createVCardTelText(){
509 - if ($this->type == "") $this->type="work";
510 - $text = "TEL;TYPE=$this->type:$this->telnumber\r\n";
511 - return $text;
512 - }
513 -}
514 -
515 -/**
516 - * Represents a single email entry in an vCard entry.
517 - * @ingroup SMWQuery
518 - */
519 -class SMWvCardEmail{
520 - private $type;
521 - private $emailaddress;
522 -
523 - /**
524 - * Constructor for a email telephone item in the vcard item.
525 - */
526 - public function __construct($type, $emailaddress) {
527 - $this->type = $type;
528 - $this->emailaddress = $emailaddress; // no escape, normally not needed anyway
529 - }
530 -
531 - /**
532 - * Creates the vCard output for a single email item.
533 - */
534 - public function createVCardEmailText(){
535 - if ($this->type == "") $this->type="internet";
536 - $text = "EMAIL;TYPE=$this->type:$this->emailaddress\r\n";
537 - return $text;
538 - }
539 -}
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_GlobalFunctions.php
@@ -122,8 +122,6 @@
123123 $wgAutoloadClasses['SMWEmbeddedResultPrinter'] = $smwgIP . '/includes/SMW_QP_Embedded.php';
124124 $wgAutoloadClasses['SMWTemplateResultPrinter'] = $smwgIP . '/includes/SMW_QP_Template.php';
125125 $wgAutoloadClasses['SMWRSSResultPrinter'] = $smwgIP . '/includes/SMW_QP_RSSlink.php';
126 - $wgAutoloadClasses['SMWiCalendarResultPrinter'] = $smwgIP . '/includes/SMW_QP_iCalendar.php';
127 - $wgAutoloadClasses['SMWvCardResultPrinter'] = $smwgIP . '/includes/SMW_QP_vCard.php';
128126 $wgAutoloadClasses['SMWCsvResultPrinter'] = $smwgIP . '/includes/SMW_QP_CSV.php';
129127 $wgAutoloadClasses['SMWJSONResultPrinter'] = $smwgIP . '/includes/SMW_QP_JSONlink.php';
130128 //// datavalues
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_Settings.php
@@ -238,8 +238,6 @@
239239 'count' => 'SMWListResultPrinter',
240240 'debug' => 'SMWListResultPrinter',
241241 'rss' => 'SMWRSSResultPrinter',
242 - 'icalendar' => 'SMWiCalendarResultPrinter',
243 - 'vcard' => 'SMWvCardResultPrinter',
244242 'csv' => 'SMWCsvResultPrinter',
245243 'json' => 'SMWJSONResultPrinter'
246244 );
Index: trunk/extensions/SemanticMediaWiki/languages/SMW_Messages.php
@@ -39,10 +39,6 @@
4040 // Link to JSON feeds
4141 'smw_json_link' => 'JSON',
4242
43 - // Link to iCalendar and vCard files
44 - 'smw_icalendar_link' => 'iCalendar',
45 - 'smw_vcard_link' => 'vCard',
46 -
4743 // Messages and strings for inline queries
4844 'smw_iq_disabled' => "Semantic queries have been disabled for this wiki.",
4945 'smw_iq_moreresults' => '… further results',
@@ -301,8 +297,6 @@
302298 {{Identical|And}}',
303299 'smw_rss_link' => '{{optional}}',
304300 'smw_csv_link' => '{{optional}}',
305 - 'smw_icalendar_link' => '{{optional}}',
306 - 'smw_vcard_link' => '{{optional}}',
307301 'smw_decseparator' => "This message is as a separator symbol for decimal digits in numbers, like \".\" in English 1,234.23. It is used for formatting number output '''and''' for reading user input. Therefore it should be carefully considered whether to change an existing value, since existing installations may depend on this value for their content to be read properly.
308302
309303 Note that spaces and space-like HTML entities are always ignored when reading numbers.",
@@ -354,7 +348,6 @@
355349 'smw_finallistconjunct' => ', en',
356350 'smw_factbox_head' => 'Feite oor $1',
357351 'smw_isspecprop' => "Hierdie eienskap is 'n spesiale eienskap van hierdie wiki.",
358 - 'smw_icalendar_link' => 'iKalender',
359352 'smw_parseerror' => 'Die gegewe waarde is onverstaanbaar.',
360353 'smw_unknowntype' => 'Onondersteunde tipe "$1" gedefinieer vir eienskap.',
361354 'smw_manytypes' => 'Meer as een tipe gedefinieer vir eienskap.',
@@ -431,8 +424,6 @@
432425 'smw_baduri' => 'URIs من النوع "$1" غير مسموح بها.',
433426 'smw_rss_link' => 'آر إس إس',
434427 'smw_csv_link' => 'سي في إس',
435 - 'smw_icalendar_link' => 'آي كالندر',
436 - 'smw_vcard_link' => 'في كارد',
437428 'smw_iq_disabled' => 'استعلامات السيمانتيك تم تعطيلها في هذا الويكي.',
438429 'smw_iq_moreresults' => '… مزيد من النتائج',
439430 'smw_iq_nojs' => 'استخدم متصفحا يمكن جافا سكريبت لرؤية هذا العنصر.',
@@ -644,8 +635,6 @@
645636 'smw_baduri' => 'URIs من النوع "$1" غير مسموح بها.',
646637 'smw_rss_link' => 'آر إس إس',
647638 'smw_csv_link' => 'سى فى إس',
648 - 'smw_icalendar_link' => 'آى كالندر',
649 - 'smw_vcard_link' => 'فى كارد',
650639 'smw_iq_disabled' => 'استعلامات السيمانتيك تم تعطيلها فى هذا الويكي.',
651640 'smw_iq_moreresults' => '… مزيد من النتائج',
652641 'smw_iq_nojs' => 'استخدم متصفحا يمكن جافا سكريبت لرؤية هذا العنصر.',
@@ -970,7 +959,6 @@
971960 'smw_multiple_concepts' => 'Každá stránka konceptu může mít jen jednu definici.',
972961 'smw_concept_cache_miss' => 'Koncept „$1” není možné momentálně použít, protože konfigurace wiki vyžaduje, aby se vypočítal až dodatečně. Pokud problém přetrvává delší dobu, požádejte správce, aby tento koncept zpřístupnil.',
973962 'smw_baduri' => 'Promiňte, URI z rozsahu „$1“ na tomto místě nejsou dostupné.',
974 - 'smw_icalendar_link' => 'iCalendar',
975963 'smw_iq_disabled' => 'Promiňtě, semantické dotazy byly pro tuto wiki zakázány.',
976964 'smw_iq_moreresults' => '…další výsledky',
977965 'smw_iq_nojs' => 'Pro zobrazení tohoto prvku prosím použijte prohlížeč se zapnutým JavaScriptem.',
@@ -1127,8 +1115,6 @@
11281116 Falls das Problem nicht nach einiger Zeit verschwindet, bitte deinen Seitenverwalter, dieses Konzept zu ermöglichen.',
11291117 'smw_baduri' => 'URIs der Form „$1“ sind nicht zulässig.',
11301118 'smw_csv_link' => 'CSV',
1131 - 'smw_icalendar_link' => 'iCalendar',
1132 - 'smw_vcard_link' => 'vCard',
11331119 'smw_iq_disabled' => 'Semantische Anfragen sind in diesem Wiki zur Zeit nicht möglich.',
11341120 'smw_iq_moreresults' => '… weitere Ergebnisse',
11351121 'smw_iq_nojs' => 'Der Inhalt dieses Elementes kann mit einem Browser mit JavaScript-Unterstützung betrachtet werden.',
@@ -1341,7 +1327,6 @@
13421328 'smw_concept_description' => 'Priskribo de koncepto "$1"',
13431329 'smw_no_concept_namespace' => 'Konceptoj povas nur esti difinita en paĝoj en la nomspaco Concept:.',
13441330 'smw_baduri' => 'Bedaŭrinde, URI-oj de la kamparo "$1" ne estas permesita.',
1345 - 'smw_icalendar_link' => 'iKalendaro',
13461331 'smw_iq_disabled' => 'Bedaŭrinde, semantikaj informmendoj estis malebligitaj por ĉi tiu vikio.',
13471332 'smw_iq_moreresults' => '… pluaj rezultoj',
13481333 'smw_iq_nojs' => 'Bonvolu uzi retumilon kiu povas montri JavaScript-on por rigardi ĉi tiun elementon.',
@@ -1706,8 +1691,6 @@
17071692 'smw_concept_cache_miss' => "Le concept « $1 » ne peut être utilisé en ce moment, puisque la configuration du wiki requiert qu'il soit lancé hors-ligne. Si le problème persiste après quelques instants, demander à votre administrateur du site de rendre disponible ce concept.",
17081693 'smw_baduri' => 'Désolé. Les URIs du domaine « $1 » ne sont pas disponible à cet emplacement.',
17091694 'smw_csv_link' => 'CSV',
1710 - 'smw_icalendar_link' => 'iCalendrier',
1711 - 'smw_vcard_link' => 'vCarte',
17121695 'smw_iq_disabled' => 'Désolé. Les recherches dans les pages de ce wiki ne sont pas autorisées.',
17131696 'smw_iq_moreresults' => '&hellip; autres résultats',
17141697 'smw_iq_nojs' => 'Utilisez un navigateur avec JavaScript activé pour voir cet élément.',
@@ -1913,8 +1896,6 @@
19141897 'smw_concept_cache_miss' => 'O concepto "$1" non pode ser usado desde que a configuración do wiki o require para calcular a desconexión. Se o problema non se resolve en breve, pregúntelle ao administrador do wiki para que o concepto poida estar dispoñible.',
19151898 'smw_baduri' => 'Sentímolo, os URIs da forma “$1” non están permitidos.',
19161899 'smw_csv_link' => 'CSV',
1917 - 'smw_icalendar_link' => 'iCalendario',
1918 - 'smw_vcard_link' => 'vTarxeta',
19191900 'smw_iq_disabled' => 'Sentímolo. As preguntas semánticas foron deshabilitadas para este wiki.',
19201901 'smw_iq_moreresults' => '… máis resultados',
19211902 'smw_iq_nojs' => 'Por favor, use un nevegador co JavaScript permitido para ver este elemento.',
@@ -2508,7 +2489,6 @@
25092490 'smw_viewasrdf' => 'RDF फ़ीड',
25102491 'smw_finallistconjunct' => ', और',
25112492 'smw_factbox_head' => '$1 के बारेमें फ़ैक्ट्स',
2512 - 'smw_icalendar_link' => 'आइकैलेंडर',
25132493 'smw_iq_moreresults' => '… आगे के रिज़ल्ट',
25142494 'smw_true_words' => 'सही,t,हां,y',
25152495 'smw_false_words' => 'गलत,f,ना,n',
@@ -2554,7 +2534,6 @@
25552535 'smw_isaliastype' => 'Tip sa se yon alyas pou done "$1".',
25562536 'smw_isnotype' => 'Tip "$1" sa pa yon tip estandè nan wiki a, li pa defini pa yon itilizatè tou.',
25572537 'smw_baduri' => 'Eskize nou, URIs yo pou domèn "$1" pa otorize, oubyen li pa disponib nan plas isit la.',
2558 - 'smw_icalendar_link' => 'iKalandrye',
25592538 'smw_iq_disabled' => 'Eskize nou. Rechèch nan atik wiki sa a pa otorize oubyen nou dezaktive l.',
25602539 'smw_iq_moreresults' => '… lòt rezilta yo',
25612540 'smw_iq_nojs' => 'Souple, itilize yon navigatè (bwozè entènèt) ki aksepte JavaScript aktive pou ou kapab wè eleman sa, bagay sa.',
@@ -2602,8 +2581,6 @@
26032582 'smw_baduri' => 'Le adresses URI del forma "$1" non es permittite.',
26042583 'smw_rss_link' => 'RSS',
26052584 'smw_csv_link' => 'CSV',
2606 - 'smw_icalendar_link' => 'iCalendar',
2607 - 'smw_vcard_link' => 'vCard',
26082585 'smw_iq_disabled' => 'Le consultas semantic ha essite disactivate pro iste wiki.',
26092586 'smw_iq_moreresults' => '… ulterior resultatos',
26102587 'smw_iq_nojs' => 'Usa un navigator capace de executar JavaScript pro visualisar iste elemento.',
@@ -2830,8 +2807,6 @@
28312808 'smw_concept_cache_miss' => 'Il concetto "$1" non può essere usato ora, siccome la configurazione della wiki richiede che sia elaborato off-line. Se il problema non si risolve dopo un po\' di tempo, chiedi all\'amministratore del tuo sito di rendere disponibile questo concetto.',
28322809 'smw_baduri' => 'Spiacenti. Gli URI del tipo “$1” non sono consentiti.',
28332810 'smw_csv_link' => 'CSV',
2834 - 'smw_icalendar_link' => 'iCalendar',
2835 - 'smw_vcard_link' => 'vCard',
28362811 'smw_iq_disabled' => 'Spiacenti. Le query semantiche sono state disabilitate per questo wiki.',
28372812 'smw_iq_moreresults' => '&hellip; risultati successivi',
28382813 'smw_iq_nojs' => 'Per favore, usate un browser che supporti Javascript per visualizzare questo elemento.',
@@ -3155,7 +3130,6 @@
31563131 'smw_isaliastype' => 'Jenis iki sawijining alias kanggo jenis data “$1”.',
31573132 'smw_isnotype' => 'Jenis “$1” iki dudu sawijining jenis data baku ing wiki, lan uga ora diwènèhi sawijining définisi déning sang panganggo.',
31583133 'smw_baduri' => 'Nuwun sèwu, URI awujud “$1” ora diidinaké.',
3159 - 'smw_icalendar_link' => 'iKalèndher',
31603134 'smw_iq_disabled' => 'Nuwun sèwu. Kwéri sémantik kanggo wiki iki dipatèni.',
31613135 'smw_iq_moreresults' => '… pituwas sabanjuré',
31623136 'smw_iq_nojs' => 'Mangga nganggo sawijining panjlajah wèb JavaScript kanggo ndeleng unsur iki.',
@@ -3447,8 +3421,6 @@
34483422 'smw_baduri' => 'URIs met dämm Opbou „$1“ sin nit zojelohße.',
34493423 'smw_rss_link' => '<i lang="en">RSS</i>',
34503424 'smw_csv_link' => '<i lang="en">CSV</i>',
3451 - 'smw_icalendar_link' => '<i lang="en">iCalendar</i>',
3452 - 'smw_vcard_link' => '<i lang="en">vCard</i>',
34533425 'smw_iq_disabled' => 'Semantesche Frore sem em Wiki em Momang afjeschaldt.',
34543426 'smw_iq_moreresults' => '…&nbsp;mieh vun däm, wat jefonge woodt',
34553427 'smw_iq_altresults' => 'Direk en de Leß bläddere.',
@@ -3539,7 +3511,6 @@
35403512 'smw_factbox_head' => 'Fakten iwwer $1',
35413513 'smw_concept_description' => 'Beschreiwung vum Konzept "$1"',
35423514 'smw_csv_link' => 'CSV',
3543 - 'smw_icalendar_link' => 'iKalenner',
35443515 'smw_iq_moreresults' => '… weider Resultater',
35453516 'smw_iq_nojs' => 'Benotzt w.e.g e Browser matt JavaScript fir dëst Element ze gesinn',
35463517 'smw_nonright_importtype' => '$1 kann nëmme fir Säiten am Nummraum "$2" benotzt ginn.',
@@ -3611,7 +3582,6 @@
36123583 $messages['ml'] = array(
36133584 'smw_finallistconjunct' => 'ഉം',
36143585 'smw_factbox_head' => '$1നെ കുറിച്ചുള്ള സത്യങ്ങള്‍',
3615 - 'smw_icalendar_link' => 'iകലണ്ടര്‍',
36163586 'smw_iq_moreresults' => '… കൂടുതല്‍ ഫലങ്ങള്‍',
36173587 'smw_iq_nojs' => 'ഈ എലമെന്റ് കാണുവാന്‍ ദയവായി ജാവാസ്ക്രിപ് എനേബിള്‍ ചെയ്ത ബ്രൗസര്‍ ഉപയോഗിക്കുക.',
36183588 'smw_unknown_importns' => 'ഇറക്കുമതി ഫങ്ങ്ഷന്‍സ് “$1” എന്ന നേംസ്പേസില്‍ ലഭ്യമല്ല.',
@@ -3663,7 +3633,6 @@
36643634 'smw_isaliastype' => 'हा प्रकार “$1” या डाटाप्रकारची पुनरुक्ती आहे.',
36653635 'smw_isnotype' => 'हा “$1” प्रकार या विकिवरील ठराविक डाटा प्रकारांपैकी नाही, व त्याची सदस्य व्याख्या सुद्धा दिलेली नाही.',
36663636 'smw_baduri' => 'माफ करा, “$1” अर्जाचे URI वापरण्यास परवानगी नाही.',
3667 - 'smw_icalendar_link' => 'इ-कैलेंडर',
36683637 'smw_iq_disabled' => 'माफ करा. या विकिवर सिमँटिक पॄच्छा करण्यास बंदी आहे.',
36693638 'smw_iq_moreresults' => '… पुढचे निकाल',
36703639 'smw_iq_nojs' => 'हा एलेमेंट पाहण्यासाठी जावास्क्रीप्ट युक्त ब्राउजर वापरा.',
@@ -3844,8 +3813,6 @@
38453814 Als het probleem over enige tijd nog niet verholpen is, vraag de beheerder dan om dit concept beschikbaar te maken.',
38463815 'smw_baduri' => "URI's uit de reeks “$1” zijn hier niet beschikbaar.",
38473816 'smw_csv_link' => 'CSV',
3848 - 'smw_icalendar_link' => 'iCalendar',
3849 - 'smw_vcard_link' => 'vCard',
38503817 'smw_iq_disabled' => 'Zoekopdrachten binnen tekst zijn uitgeschakeld in deze wiki.',
38513818 'smw_iq_moreresults' => '… overige resultaten',
38523819 'smw_iq_nojs' => 'Gebruiker een browser waarin JavaScript is ingeschakeld om dit element te zien.',
@@ -4247,8 +4214,6 @@
42484215 'smw_multiple_concepts' => 'Hver konseptside kan kun ha én konseptdefinisjon.',
42494216 'smw_baduri' => 'Beklager, URI-er på formen «$1» er ikke tillatt.',
42504217 'smw_csv_link' => 'CSV',
4251 - 'smw_icalendar_link' => 'iKalender',
4252 - 'smw_vcard_link' => 'vCard',
42534218 'smw_iq_disabled' => 'Beklager. Semantiske spørringer er slått av på denne wikien.',
42544219 'smw_iq_moreresults' => '… flere resultater',
42554220 'smw_iq_nojs' => 'Bruk en nettleser med JavaScript-støtte for å vise dette elementet.',
@@ -4396,8 +4361,6 @@
43974362 'smw_concept_cache_miss' => 'Lo concèpte « $1 » pòt pas èsser utilizat pelmoment moment, perque la configuracion del wiki requerís que siá aviat fòra linha. Se lo problèma persistís aprèp qualques instants, demandatz a vòstre administrator del sit de rendre disponible aqueste concèpte.',
43984363 'smw_baduri' => 'O planhèm. Las URIs del domeni $1 son pas disponiblas a aqueste emplaçament',
43994364 'smw_csv_link' => 'CSV',
4400 - 'smw_icalendar_link' => 'iCalendièr',
4401 - 'smw_vcard_link' => 'vCarta',
44024365 'smw_iq_disabled' => "O planhèm. Las recèrcas dins los articles d'aqueste wiki son pas autorizadas.",
44034366 'smw_iq_moreresults' => '… autres resultats',
44044367 'smw_iq_nojs' => 'Utilizatz un navigador amb JavaScript per veire aqueste element.',
@@ -4707,8 +4670,6 @@
47084671 'smw_concept_cache_miss' => 'O conceito "$1" não poderá ser utilizado neste momento, uma vez que a configuração deste wiki necessita ser refeita off-line. Caso o problema não seja resolvido automaticamente dentro de algum tempo, peça a um administrador deste wiki que este conceito seja disponibilizado.',
47094672 'smw_baduri' => 'Desculpe, URIs da forma “$1” não são permitidos.',
47104673 'smw_csv_link' => 'CSV',
4711 - 'smw_icalendar_link' => 'iCalendário',
4712 - 'smw_vcard_link' => 'vCard',
47134674 'smw_iq_disabled' => 'Consultas semânticas foram desativadas neste wiki.',
47144675 'smw_iq_moreresults' => '… mais resultados',
47154676 'smw_iq_nojs' => 'Por favor, use um navegador com JavaScript activado para visualizar este elemento.',
@@ -4998,8 +4959,6 @@
49994960 'smw_concept_cache_miss' => 'Представление «$1» в настоящий момент не может быть использовано, так как настройка вики-сайта требует, чтобы его результат определялся в фоновом режиме. Если данное сообщение не исчезнет через некоторое время, обратитесь к администратору вики-сайта для включения данного представления.',
50004961 'smw_baduri' => 'Извините, но ссылки из диапазона "$1" не доступны отсюда.',
50014962 'smw_csv_link' => 'CSV',
5002 - 'smw_icalendar_link' => 'iКалендарь',
5003 - 'smw_vcard_link' => 'vCard',
50044963 'smw_iq_disabled' => 'Извините, но встроенные запросы отключены для этого сайта.',
50054964 'smw_iq_moreresults' => '&hellip; следующие результаты',
50064965 'smw_iq_nojs' => 'Используйте браузер с поддержкой JavaScript для просмотра данного элемента.',
@@ -5149,8 +5108,6 @@
51505109 'smw_concept_cache_miss' => 'Pojem „$1” nemožno momentálne použiť, pretože konfigurácia wiki vyžaduje, aby sa vypočítal, keď wiki nebude pripojená. Ak problém po určitej dobe nezmizne, požiadajte správcu, aby tento pojem sprístupnil.',
51515110 'smw_baduri' => 'Prepáčte, URI z rozsahu "$1" na tomto mieste nie sú dostupné.',
51525111 'smw_csv_link' => 'CSV',
5153 - 'smw_icalendar_link' => 'iCalendar',
5154 - 'smw_vcard_link' => 'vCard',
51555112 'smw_iq_disabled' => 'Prepáčte. Inline queries have been disabled for this wiki.',
51565113 'smw_iq_moreresults' => '&hellip; ďalšie výsledky',
51575114 'smw_iq_nojs' => 'Na zobrazenie tohto prvku prosím použite prehliadač so zapnutým JavaScriptom.',
@@ -5349,8 +5306,6 @@
53505307 Ако проблем не нестане за неко време, затражите од администратора сајта да учини овај концепт доступним.',
53515308 'smw_baduri' => 'URI-ји облика "$1", нису прихватљиви.',
53525309 'smw_csv_link' => 'CSV',
5353 - 'smw_icalendar_link' => 'iCalendar',
5354 - 'smw_vcard_link' => 'vCard',
53555310 'smw_iq_disabled' => 'Семантички упити су онемогућени на овом викију.',
53565311 'smw_iq_moreresults' => '... више резултата',
53575312 'smw_iq_nojs' => 'Користите прегледач који подржава JavaScript-у како би могли да видите овај елеменат.',
@@ -5559,8 +5514,6 @@
55605515 'smw_baduri' => 'URI-ji oblika "$1", nisu prihvatljivi.',
55615516 'smw_rss_link' => 'RSS',
55625517 'smw_csv_link' => 'CSV',
5563 - 'smw_icalendar_link' => 'iCalendar',
5564 - 'smw_vcard_link' => 'vCard',
55655518 'smw_iq_disabled' => 'Semantički upiti su onemogućeni na ovom vikiju.',
55665519 'smw_iq_moreresults' => '... više rezultata',
55675520 'smw_iq_nojs' => 'Koristite pregledač koji podržava JavaScript-u kako bi mogli da vidite ovaj elemenat.',
@@ -5669,8 +5622,6 @@
56705623 'smw_multiple_concepts' => 'Varje konceptsida kan endast ha en konceptdefinition.',
56715624 'smw_baduri' => 'Beklagar, URI-er på formen "$1" är inte tillåtet.',
56725625 'smw_csv_link' => 'CSV',
5673 - 'smw_icalendar_link' => 'iKalender',
5674 - 'smw_vcard_link' => 'vCard',
56755626 'smw_iq_disabled' => 'Beklagar. Semantiska efterfrågningar har slagits av på den här wikin.',
56765627 'smw_iq_moreresults' => '… mer resultat',
56775628 'smw_iq_nojs' => 'Var god använd en webbläsare som stödjer JavaScript för att visa det här elementet.',
@@ -6106,7 +6057,6 @@
61076058 'smw_isaliastype' => 'Kiểu này là tên hiệu của kiểu dữ liệu “$1”.',
61086059 'smw_isnotype' => 'Kiểu “$1” này không phải là kiểu dữ liệu chuẩn trên wiki, và cũng chưa được cung cấp định nghĩa người dùng.',
61096060 'smw_baduri' => 'Rất tiếc, không cho phép URI có dạng “$1”.',
6110 - 'smw_icalendar_link' => 'iCalendar',
61116061 'smw_iq_disabled' => 'Rất tiếc. Chức năng truy vấn ngữ nghĩa đã bị tắt tại wiki này.',
61126062 'smw_iq_moreresults' => '… kết quả khác',
61136063 'smw_iq_nojs' => 'Xin hãy dùng trình duyệt có kích hoạt JavaScript để xem thành phần này.',

Follow-up revisions

RevisionCommit summaryAuthorDate
r47087Follow up r47080/r47081: Remove translations which are identical to 'en'...raymond14:33, 10 February 2009

Status & tagging log