r36801 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r36800‎ | r36801 | r36802 >
Date:04:45, 30 June 2008
Author:tstarling
Status:old
Tags:
Comment:
Custom fatal error messages for PHP.
Modified paths:
  • /trunk/php (added) (history)
  • /trunk/php/README (added) (history)
  • /trunk/php/wmerrors (added) (history)
  • /trunk/php/wmerrors/CREDITS (added) (history)
  • /trunk/php/wmerrors/EXPERIMENTAL (added) (history)
  • /trunk/php/wmerrors/config.m4 (added) (history)
  • /trunk/php/wmerrors/config.w32 (added) (history)
  • /trunk/php/wmerrors/error.html (added) (history)
  • /trunk/php/wmerrors/package2.xml (added) (history)
  • /trunk/php/wmerrors/php_wmerrors.h (added) (history)
  • /trunk/php/wmerrors/wmerrors.c (added) (history)

Diff [purge]

Index: trunk/php/wmerrors/config.w32
@@ -0,0 +1,13 @@
 2+// $Id$
 3+// vim:ft=javascript
 4+
 5+// If your extension references something external, use ARG_WITH
 6+// ARG_WITH("wmerrors", "for wmerrors support", "no");
 7+
 8+// Otherwise, use ARG_ENABLE
 9+// ARG_ENABLE("wmerrors", "enable wmerrors support", "no");
 10+
 11+if (PHP_WMERRORS != "no") {
 12+ EXTENSION("wmerrors", "wmerrors.c");
 13+}
 14+
Index: trunk/php/wmerrors/wmerrors.c
@@ -0,0 +1,204 @@
 2+
 3+#ifdef HAVE_CONFIG_H
 4+#include "config.h"
 5+#endif
 6+
 7+#include "php.h"
 8+#include "php_ini.h"
 9+#include "ext/standard/info.h"
 10+#include "php_wmerrors.h"
 11+#include "php_streams.h" /* for __php_stream_call_depth */
 12+#include "SAPI.h" /* for sapi_module */
 13+#include "ext/standard/php_smart_str.h" /* for smart_str */
 14+#include "ext/standard/html.h" /* for php_escape_html_entities */
 15+
 16+void wmerrors_cb(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
 17+static void wmerrors_show_message(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args TSRMLS_DC);
 18+
 19+
 20+ZEND_DECLARE_MODULE_GLOBALS(wmerrors)
 21+
 22+static int le_wmerrors;
 23+
 24+zend_function_entry wmerrors_functions[] = {
 25+ {NULL, NULL, NULL}
 26+};
 27+
 28+
 29+zend_module_entry wmerrors_module_entry = {
 30+#if ZEND_MODULE_API_NO >= 20010901
 31+ STANDARD_MODULE_HEADER,
 32+#endif
 33+ "wmerrors",
 34+ wmerrors_functions,
 35+ PHP_MINIT(wmerrors),
 36+ PHP_MSHUTDOWN(wmerrors),
 37+ PHP_RINIT(wmerrors),
 38+ PHP_RSHUTDOWN(wmerrors),
 39+ PHP_MINFO(wmerrors),
 40+#if ZEND_MODULE_API_NO >= 20010901
 41+ "0.1",
 42+#endif
 43+ STANDARD_MODULE_PROPERTIES
 44+};
 45+
 46+
 47+#ifdef COMPILE_DL_WMERRORS
 48+ZEND_GET_MODULE(wmerrors)
 49+#endif
 50+
 51+PHP_INI_BEGIN()
 52+ STD_PHP_INI_ENTRY("wmerrors.message_file", "", PHP_INI_ALL, OnUpdateString, message_file, zend_wmerrors_globals, wmerrors_globals)
 53+PHP_INI_END()
 54+
 55+static void php_wmerrors_init_globals(zend_wmerrors_globals *wmerrors_globals)
 56+{
 57+ wmerrors_globals->message_file = NULL;
 58+}
 59+
 60+PHP_MINIT_FUNCTION(wmerrors)
 61+{
 62+ REGISTER_INI_ENTRIES();
 63+ WMERRORS_G(old_error_cb) = zend_error_cb;
 64+ WMERRORS_G(recursion_guard) = 0;
 65+ zend_error_cb = wmerrors_cb;
 66+ return SUCCESS;
 67+}
 68+
 69+
 70+PHP_MSHUTDOWN_FUNCTION(wmerrors)
 71+{
 72+ UNREGISTER_INI_ENTRIES();
 73+ zend_error_cb = WMERRORS_G(old_error_cb);
 74+ return SUCCESS;
 75+}
 76+
 77+
 78+
 79+PHP_RINIT_FUNCTION(wmerrors)
 80+{
 81+ return SUCCESS;
 82+}
 83+
 84+
 85+
 86+PHP_RSHUTDOWN_FUNCTION(wmerrors)
 87+{
 88+ return SUCCESS;
 89+}
 90+
 91+
 92+PHP_MINFO_FUNCTION(wmerrors)
 93+{
 94+ php_info_print_table_start();
 95+ php_info_print_table_row(2, "Custom fatal error pages", "enabled");
 96+ php_info_print_table_end();
 97+
 98+}
 99+
 100+
 101+
 102+
 103+
 104+void wmerrors_cb(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args)
 105+{
 106+ TSRMLS_FETCH();
 107+
 108+ if ((type != E_ERROR && type != E_CORE_ERROR && type != E_COMPILE_ERROR && type != E_USER_ERROR)
 109+ || strncmp(sapi_module.name, "apache", 6)
 110+ || WMERRORS_G(recursion_guard))
 111+ {
 112+ WMERRORS_G(old_error_cb)(type, error_filename, error_lineno, format, args);
 113+ return;
 114+ }
 115+ WMERRORS_G(recursion_guard) = 1;
 116+ /* No more OOM errors for now thanks */
 117+ zend_set_memory_limit((size_t)-1);
 118+
 119+ /* Show the message */
 120+ wmerrors_show_message(type, error_filename, error_lineno, format, args TSRMLS_CC);
 121+
 122+ /* TODO: improved logging */
 123+
 124+ WMERRORS_G(recursion_guard) = 0;
 125+ zend_set_memory_limit(PG(memory_limit));
 126+
 127+ /* Pass through */
 128+ WMERRORS_G(old_error_cb)(type, error_filename, error_lineno, format, args);
 129+}
 130+
 131+static void wmerrors_show_message(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args TSRMLS_DC)
 132+{
 133+ php_stream *stream;
 134+ char *message, *p;
 135+ int message_len;
 136+ long maxlen = PHP_STREAM_COPY_ALL;
 137+ char * tmp1, *tmp2;
 138+ int tmp1_len, tmp2_len;
 139+ smart_str expanded = {0};
 140+
 141+ /* Is there a sane message_file? */
 142+ if (!WMERRORS_G(message_file) || *WMERRORS_G(message_file) == '\0') {
 143+ return;
 144+ }
 145+
 146+ /* Open it */
 147+ stream = php_stream_open_wrapper_ex(WMERRORS_G(message_file), "rb",
 148+ ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL, NULL);
 149+ if (!stream) {
 150+ return;
 151+ }
 152+
 153+ /* Read the contents */
 154+ message_len = php_stream_copy_to_mem(stream, &message, maxlen, 0);
 155+
 156+ /* Replace some tokens */
 157+ for (p = message; p < message + message_len; p++) {
 158+ if (*p == '$') {
 159+ if (!strncmp(p, "$file", sizeof("$file")-1)) {
 160+ tmp1 = php_escape_html_entities((unsigned char*)error_filename,
 161+ strlen(error_filename), &tmp1_len, 0, ENT_COMPAT, NULL TSRMLS_CC);
 162+ smart_str_appendl(&expanded, tmp1, tmp1_len);
 163+ efree(tmp1);
 164+ p += sizeof("file") - 1;
 165+ } else if (!strncmp(p, "$line", sizeof("$line")-1)) {
 166+ tmp1_len = spprintf(&tmp1, 0, "%u", error_lineno);
 167+ smart_str_appendl(&expanded, tmp1, tmp1_len);
 168+ efree(tmp1);
 169+ p += sizeof("line") - 1;
 170+ } else if (!strncmp(p, "$message", sizeof("$message")-1)) {
 171+ tmp1_len = vspprintf(&tmp1, 0, format, args);
 172+ tmp2 = php_escape_html_entities((unsigned char*)tmp1, tmp1_len, &tmp2_len,
 173+ 0, ENT_COMPAT, NULL TSRMLS_CC);
 174+ smart_str_appendl(&expanded, tmp2, tmp2_len);
 175+ efree(tmp1);
 176+ efree(tmp2);
 177+ p += sizeof("message") - 1;
 178+ } else {
 179+ smart_str_appendc(&expanded, '$');
 180+ }
 181+ } else {
 182+ smart_str_appendc(&expanded, *p);
 183+ }
 184+ }
 185+
 186+ /* Set headers */
 187+ if (!SG(headers_sent)) {
 188+ sapi_header_line ctr = {0};
 189+
 190+ ctr.line = "HTTP/1.0 500 Internal Server Error";
 191+ ctr.line_len = strlen(ctr.line);
 192+ sapi_header_op(SAPI_HEADER_REPLACE, &ctr TSRMLS_CC);
 193+ }
 194+
 195+ /* Write the message out */
 196+ if (expanded.c) {
 197+ php_write(expanded.c, expanded.len TSRMLS_CC);
 198+ }
 199+
 200+ /* Clean up */
 201+ smart_str_free(&expanded);
 202+ efree(message);
 203+}
 204+
 205+
Property changes on: trunk/php/wmerrors/wmerrors.c
___________________________________________________________________
Added: svn:eol-style
1206 + native
Index: trunk/php/wmerrors/config.m4
@@ -0,0 +1,62 @@
 2+dnl $Id$
 3+dnl config.m4 for extension wmerrors
 4+
 5+dnl Comments in this file start with the string 'dnl'.
 6+dnl Remove where necessary. This file will not work
 7+dnl without editing.
 8+
 9+dnl If your extension references something external, use with:
 10+
 11+dnl PHP_ARG_WITH(wmerrors, for wmerrors support,
 12+dnl Make sure that the comment is aligned:
 13+dnl [ --with-wmerrors Include wmerrors support])
 14+
 15+dnl Otherwise use enable:
 16+
 17+PHP_ARG_ENABLE(wmerrors, whether to enable wmerrors support,
 18+[ --enable-wmerrors Enable wmerrors support])
 19+
 20+if test "$PHP_WMERRORS" != "no"; then
 21+ dnl Write more examples of tests here...
 22+
 23+ dnl # --with-wmerrors -> check with-path
 24+ dnl SEARCH_PATH="/usr/local /usr" # you might want to change this
 25+ dnl SEARCH_FOR="/include/wmerrors.h" # you most likely want to change this
 26+ dnl if test -r $PHP_WMERRORS/$SEARCH_FOR; then # path given as parameter
 27+ dnl WMERRORS_DIR=$PHP_WMERRORS
 28+ dnl else # search default path list
 29+ dnl AC_MSG_CHECKING([for wmerrors files in default path])
 30+ dnl for i in $SEARCH_PATH ; do
 31+ dnl if test -r $i/$SEARCH_FOR; then
 32+ dnl WMERRORS_DIR=$i
 33+ dnl AC_MSG_RESULT(found in $i)
 34+ dnl fi
 35+ dnl done
 36+ dnl fi
 37+ dnl
 38+ dnl if test -z "$WMERRORS_DIR"; then
 39+ dnl AC_MSG_RESULT([not found])
 40+ dnl AC_MSG_ERROR([Please reinstall the wmerrors distribution])
 41+ dnl fi
 42+
 43+ dnl # --with-wmerrors -> add include path
 44+ dnl PHP_ADD_INCLUDE($WMERRORS_DIR/include)
 45+
 46+ dnl # --with-wmerrors -> check for lib and symbol presence
 47+ dnl LIBNAME=wmerrors # you may want to change this
 48+ dnl LIBSYMBOL=wmerrors # you most likely want to change this
 49+
 50+ dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
 51+ dnl [
 52+ dnl PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $WMERRORS_DIR/lib, WMERRORS_SHARED_LIBADD)
 53+ dnl AC_DEFINE(HAVE_WMERRORSLIB,1,[ ])
 54+ dnl ],[
 55+ dnl AC_MSG_ERROR([wrong wmerrors lib version or lib not found])
 56+ dnl ],[
 57+ dnl -L$WMERRORS_DIR/lib -lm -ldl
 58+ dnl ])
 59+ dnl
 60+ dnl PHP_SUBST(WMERRORS_SHARED_LIBADD)
 61+
 62+ PHP_NEW_EXTENSION(wmerrors, wmerrors.c, $ext_shared)
 63+fi
Index: trunk/php/wmerrors/error.html
@@ -0,0 +1,879 @@
 2+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2002/REC-xhtml1-20020801/DTD/xhtml1-transitional.dtd">
 3+
 4+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 5+ <head>
 6+ <title>Wikimedia Error</title>
 7+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 8+ <meta name="author" content="Mark Ryan, with translation by many people; see http://meta.wikimedia.org/wiki/Multilingual_error_messages"/>
 9+ <meta name="copyright" content="(c) 2005-2007 Mark Ryan and others. Text licensed under the GNU Free Documentation License. http://www.gnu.org/licenses/fdl.txt"/>
 10+
 11+ <style type="text/css"><!--
 12+ body {
 13+ background-color: #dbe5df;
 14+ font-family: "Gill Sans MT", "Gill Sans", "Trebuchet MS", Helvetica, sans-serif;
 15+ margin-left: 0px;
 16+ margin-right: 0px;
 17+ }
 18+ .TechnicalStuff {
 19+ font-style: italic;
 20+ text-align: center;
 21+ font-size: 0.8em;
 22+ padding-bottom: 0.8em;
 23+ }
 24+ .BottomStrip {
 25+ background: #9fbfd8;
 26+ text-align: center;
 27+ font-size: 0.85em;
 28+ }
 29+ .RightToLeft {
 30+ direction: rtl;
 31+ }
 32+ .Lines {
 33+ width: 100%;
 34+ height: 1px;
 35+ overflow: hidden;
 36+ font-size: 0.5px;
 37+ }
 38+ .ContentArea {
 39+ background-color: white;
 40+ padding-left: 10%;
 41+ padding-right: 10%;
 42+ padding-top: 0.8em;
 43+ font-size: 1.0em;
 44+ }
 45+ a:hover {
 46+ color: red;
 47+ }
 48+ a.BottomLinks {
 49+ color: #000000;
 50+ text-decoration: none;
 51+ }
 52+ a.BottomLinks:hover {
 53+ color: red;
 54+ text-decoration: none;
 55+ }
 56+ h1, h2 {
 57+ margin: 0px;
 58+ font-size: 1.0em;
 59+ }
 60+ h3.LanguageHeading {
 61+ font-weight: bold
 62+ }
 63+ #ErrorTitleDiv {
 64+ background: #9fbfd8;
 65+ font-size: 1.2em;
 66+ font-weight: bold;
 67+ text-align: center;
 68+ }
 69+ #FoundationNameDiv {
 70+ background: #dbe5df;
 71+ font-size: 1.5em;
 72+ font-family: "Gill Sans MT", "Gill Sans", Helvetica, Humanist, sans-serif;
 73+ font-weight: bold;
 74+ text-transform: uppercase;
 75+ text-align: center;
 76+ width: 100%;
 77+ padding-top:0.8em;
 78+ }
 79+ #TopLinks {
 80+ text-align: center;
 81+ font-size: 0.8em
 82+ }
 83+ -->
 84+ </style>
 85+
 86+ <script type="text/javascript"><!-- Begin
 87+
 88+ // The first column of this array is for the local language name of the Wikimedia Foundation
 89+ // ('Wikimedia Foundation' should be used for all Latin-based languages)
 90+ // The second column of the array is the localised language word for 'Error'.
 91+ var LanguageDetails = new Array();
 92+ LanguageDetails['ar'] = new Array( "مؤسسة ويكيميديا", "خطأ" );
 93+ LanguageDetails['cs'] = new Array( "Wikimedia Foundation", "Chyba" );
 94+ LanguageDetails['da'] = new Array( "Wikimedia Foundation", "Fejl" );
 95+ LanguageDetails['de'] = new Array( "Wikimedia Foundation", "Fehler" );
 96+ LanguageDetails['el'] = new Array( "Ίδρυμα Wikimedia", "Σφάλμα" );
 97+ LanguageDetails['en'] = new Array( "Wikimedia Foundation", "Error" );
 98+ LanguageDetails['es'] = new Array( "Wikimedia Foundation", "Error" );
 99+ LanguageDetails['et'] = new Array( "Wikimedia Foundation", "Viga" );
 100+ LanguageDetails['fa'] = new Array( "بنیاد ویکیمدیا", "خطا" );
 101+ LanguageDetails['fi'] = new Array( "Wikimedia Foundation", "Virhe" );
 102+ LanguageDetails['fr'] = new Array( "Wikimedia Foundation", "Erreur" );
 103+ LanguageDetails['he'] = new Array( "קרן ויקימדיה", "שגיאה" );
 104+ LanguageDetails['id'] = new Array( "Wikimedia Foundation", "Error" );
 105+ LanguageDetails['it'] = new Array( "Wikimedia Foundation", "Errore" );
 106+ LanguageDetails['ja'] = new Array( "ウィキメディア財団", "エラー" );
 107+ LanguageDetails['ko'] = new Array( "위키미디어 재단", "오류" );
 108+ LanguageDetails['no'] = new Array( "Wikimedia Foundation", "Feil" );
 109+ LanguageDetails['nl'] = new Array( "Wikimedia Foundation", "Fout" );
 110+ LanguageDetails['pl'] = new Array( "Wikimedia Foundation", "Błąd" );
 111+ LanguageDetails['pt'] = new Array( "Wikimedia Foundation", "Erro" );
 112+ LanguageDetails['ro'] = new Array( "Wikimedia Foundation", "Eroare" );
 113+ LanguageDetails['ru'] = new Array( "Фонд Викимедиа", "Ошибка" );
 114+ LanguageDetails['sr'] = new Array( "Задужбина Викимедија", "Грешка" );
 115+ LanguageDetails['sv'] = new Array( "Wikimedia Foundation", "Fel" );
 116+ LanguageDetails['th'] = new Array( "มูลนิธิวิกิมีเดีย", "เกิดความผิดพลาด" );
 117+ LanguageDetails['tr'] = new Array( "Wikimedia Foundation", "Hata" );
 118+ LanguageDetails['vi'] = new Array( "Wikimedia Foundation", "Lỗi" );
 119+ LanguageDetails['zh-Hant'] = new Array( "維基媒體基金會", "錯誤" );
 120+ LanguageDetails['zh-Hans'] = new Array( "维基媒体基金会", "错误" );
 121+
 122+ function ShowLanguage(WhichLanguage){
 123+
 124+ // Set the localised language version of the Wikimedia Foundation heading and page title
 125+ document.getElementById('FoundationName').innerHTML = LanguageDetails[WhichLanguage][0]
 126+ document.title = LanguageDetails[WhichLanguage][1] + ' - ' + LanguageDetails[WhichLanguage][0]
 127+
 128+ // Set the localised language version of the heading word for 'error'
 129+ document.getElementById('ErrorName').innerHTML = LanguageDetails[WhichLanguage][1]
 130+
 131+ for (var LanguageAbbr in LanguageDetails) {
 132+
 133+ // The following arrangement attempts to minimise the number of document modifications made when switching languages
 134+
 135+ if (LanguageAbbr != WhichLanguage && document.getElementById(LanguageAbbr).style.display == '') {
 136+ // This bit kicks in for each inactive language during the initial page collapse, and on a language when switching away from that language
 137+ document.getElementById(LanguageAbbr).style.display = 'none' // hide the inactive language section
 138+ document.getElementById(LanguageAbbr + '_link').style.fontWeight = '' //unbolden its language link
 139+ document.getElementById(LanguageAbbr + '_head').style.display = 'none' // hide its language heading
 140+ }
 141+ else if (LanguageAbbr == WhichLanguage && document.getElementById(LanguageAbbr).style.display == 'none') {
 142+ // This bit kicks in for the new active language only when switching to it from a different language (i.e. not during initial page collapse)
 143+ document.getElementById(WhichLanguage).style.display = '' // show the active language section
 144+ document.getElementById(WhichLanguage + '_link').style.fontWeight = 'bold' // bolden the active language link
 145+ }
 146+ else if (LanguageAbbr == WhichLanguage && document.getElementById(LanguageAbbr).style.display == '') {
 147+ // This bit kicks in during initial page collapse with the active language, and when you attempt to switch to the currently-visible language
 148+ document.getElementById(WhichLanguage + '_link').style.fontWeight = 'bold' // bolden the active language link
 149+ document.getElementById(LanguageAbbr + '_head').style.display = 'none' // hide its language heading
 150+ }
 151+
 152+ }
 153+
 154+
 155+ }
 156+
 157+ function Startup(){
 158+
 159+ // Hide the top links bar, which is only there for navigation when there's no javascript
 160+ document.getElementById('TopLinks').style.display = 'none'
 161+
 162+ // Look at the current URL, and if it matches an available language, show that. E.g. fr.wiktionary.org -> show 'fr'
 163+ var CurrentLocation = new String(window.location.href)
 164+ var CurrentSubdomain = CurrentLocation.slice(CurrentLocation.lastIndexOf('//') + 2, CurrentLocation.indexOf('.'))
 165+ for (var LanguageAbbr in LanguageDetails) {
 166+ if (LanguageAbbr == CurrentSubdomain) {
 167+ ShowLanguage(LanguageAbbr);
 168+ return;
 169+ }
 170+ }
 171+
 172+ // If it is a hyphenated language code in the URL, try to go to its root language
 173+ if (CurrentSubdomain.indexOf('-') != -1) {
 174+ var RootLanguage = CurrentSubdomain.slice(0, CurrentSubdomain.indexOf('-'))
 175+ for (var LanguageAbbr in LanguageDetails) {
 176+ if (LanguageAbbr == RootLanguage) {
 177+ ShowLanguage(LanguageAbbr);
 178+ return;
 179+ }
 180+ }
 181+ }
 182+
 183+ // If it's secure.wikimedia.org, look later in the URL for the language code
 184+ if (CurrentSubdomain == 'secure') {
 185+ var SecureSubdomain = CurrentLocation.split('/')
 186+ for (var LanguageAbbr in LanguageDetails) {
 187+ if (LanguageAbbr == SecureSubdomain[4]) {
 188+ ShowLanguage(LanguageAbbr);
 189+ return;
 190+ }
 191+ }
 192+ }
 193+
 194+ // Attempt to detect the user's browser or system language using browser-specific methods, and use that if it matches an available language
 195+ if (navigator.userLanguage) var language = navigator.userLanguage // use the user's preferred language (non-Gecko)
 196+ else if (navigator.appName == 'Netscape') var language = navigator.language // use the only language information available to Gecko
 197+ else var language = navigator.browserLanguage // get the browser language information in non-Gecko browsers (IE, Opera, Konqueror)
 198+ // Compare the returned language against the list of languages on the error page
 199+ for (var LanguageAbbr in LanguageDetails) {
 200+ if (language.indexOf(LanguageAbbr) != -1) {
 201+ ShowLanguage(LanguageAbbr);
 202+ return;
 203+ }
 204+ }
 205+
 206+ // Show English as a fail-all
 207+ ShowLanguage('en');
 208+
 209+ }
 210+
 211+ function RefreshPage(){
 212+
 213+ // Refresh the page, preferably from cache, upon someone clicking 'try again'
 214+ window.location.reload(false)
 215+
 216+ }
 217+
 218+ // End -->
 219+ </script>
 220+
 221+ </head>
 222+
 223+ <body link="#24442E" text="#000000" vlink="#24442E" alink="#FF0000" onload="Startup();">
 224+
 225+ <!-- Wikimedia Foundation title -->
 226+ <div id="FoundationNameDiv">
 227+ <h1 id="FoundationName">Wikimedia Foundation</h1>
 228+ </div>
 229+
 230+ <!-- Shadow-style gradient -->
 231+ <div class="Lines" style="background-color:#ccd4cf;"></div>
 232+ <div class="Lines" style="background-color:#bdc3bf;"></div>
 233+ <div class="Lines" style="background-color:#adb1af;"></div>
 234+ <div class="Lines" style="background-color:#9ea09f;"></div>
 235+ <div class="Lines" style="background-color:#dbe5df;"></div>
 236+
 237+ <!-- 'Error' title -->
 238+ <div id="ErrorTitleDiv">
 239+ <h2 id="ErrorName">Error</h2>
 240+ </div>
 241+
 242+ <!-- This section of language links shows at the top of the page for navigation only when javascript is not available. -->
 243+ <div id="TopLinks">
 244+
 245+ <!-- Shadow-style gradient -->
 246+ <div class="Lines" style="background-color:#9d9fa1;"></div>
 247+ <div class="Lines" style="background-color:#a8aeb4;"></div>
 248+ <div class="Lines" style="background-color:#b4bec6;"></div>
 249+ <div class="Lines" style="background-color:#c0ced8;"></div>
 250+
 251+ <a href="#Arabic" class="BottomLinks" onclick="ShowLanguage('ar')">العربية</a>
 252+ <a href="#Indonesian" class="BottomLinks" onclick="ShowLanguage('id')">Bahasa Indonesia</a>
 253+ <a href="#Czech" class="BottomLinks" onclick="ShowLanguage('cs')">Česky</a>
 254+ <a href="#Danish" class="BottomLinks" onclick="ShowLanguage('da')">Dansk</a>
 255+ <a href="#German" class="BottomLinks" onclick="ShowLanguage('de')">Deutsch</a>
 256+ <a href="#Estonian" class="BottomLinks" onclick="ShowLanguage('et')">Eesti</a>
 257+ <a href="#Greek" class="BottomLinks" onclick="ShowLanguage('el')">Ελληνικά</a>
 258+ <a href="#English" class="BottomLinks" onclick="ShowLanguage('en')">English</a>
 259+ <a href="#Spanish" class="BottomLinks" onclick="ShowLanguage('es')">Español</a>
 260+ <a href="#Persian" class="BottomLinks" onclick="ShowLanguage('fa')">فارسي</a>
 261+ <a href="#French" class="BottomLinks" onclick="ShowLanguage('fr')">Français</a>
 262+ <a href="#Hebrew" class="BottomLinks" onclick="ShowLanguage('he')">עברית</a>
 263+ <a href="#Italian" class="BottomLinks" onclick="ShowLanguage('it')">Italiano</a>
 264+ <a href="#Japanese" class="BottomLinks" onclick="ShowLanguage('ja')">日本語</a>
 265+ <a href="#Korean" class="BottomLinks" onclick="ShowLanguage('ko')">한국어</a>
 266+ <br/>
 267+ <a href="#Dutch" class="BottomLinks" onclick="ShowLanguage('nl')">Nederlands</a>
 268+ <a href="#Norwegian" class="BottomLinks" onclick="ShowLanguage('no')">Norsk (Bokmål)</a>
 269+ <a href="#Polish" class="BottomLinks" onclick="ShowLanguage('pl')">Polski</a>
 270+ <a href="#Portuguese" class="BottomLinks" onclick="ShowLanguage('pt')">Português</a>
 271+ <a href="#Romanian" class="BottomLinks" onclick="ShowLanguage('ro')">Română</a>
 272+ <a href="#Russian" class="BottomLinks" onclick="ShowLanguage('ru')">Русский</a>
 273+ <a href="#Serbian" class="BottomLinks" onclick="ShowLanguage('sr')">Српски</a>
 274+ <a href="#Finnish" class="BottomLinks" onclick="ShowLanguage('fi')">Suomi</a>
 275+ <a href="#Swedish" class="BottomLinks" onclick="ShowLanguage('sv')">Svenska</a>
 276+ <a href="#Thai" class="BottomLinks" onclick="ShowLanguage('th')">ไทย</a>
 277+ <a href="#Vietnamese" class="BottomLinks" onclick="ShowLanguage('vi')">Tiếng Việt</a>
 278+ <a href="#Turkish" class="BottomLinks" onclick="ShowLanguage('tr')">Türkçe</a>
 279+ <a href="#TraditionalChinese" class="BottomLinks" onclick="ShowLanguage('zh-Hant')">繁體中文</a>
 280+ <a href="#SimplifiedChinese" class="BottomLinks" onclick="ShowLanguage('zh-Hans')">简体中文</a>
 281+ </div>
 282+
 283+ <!-- Shadow-style gradient -->
 284+ <div class="Lines" style="background-color:#8f8f8f"></div>
 285+ <div class="Lines" style="background-color:#acacac"></div>
 286+ <div class="Lines" style="background-color:#c6c6c6"></div>
 287+ <div class="Lines" style="background-color:#dbdbdb"></div>
 288+ <div class="Lines" style="background-color:#eaeaea"></div>
 289+ <div class="Lines" style="background-color:#f4f4f4"></div>
 290+
 291+
 292+ <!-- BEGIN CONTENT AREA -->
 293+ <div class="ContentArea">
 294+
 295+ <div id="en" lang="en">
 296+ <h3 id="en_head" class="LanguageHeading">
 297+ <a name="English">English</a>
 298+ </h3>
 299+ <p>Our servers are currently experiencing a technical problem. This is probably temporary and should be fixed soon. Please <a href="%U" onclick="RefreshPage(); return false">try again</a> in a few minutes.</p>
 300+ <p>You may be able to get further information in the <a href="irc://chat.freenode.net/wikipedia">#wikipedia</a> channel on the <a href="http://www.freenode.net">Freenode IRC network</a>.</p>
 301+ <p>The Wikimedia Foundation is a non-profit organisation which hosts some of the most popular sites on the Internet, including Wikipedia. It has a constant need to purchase new hardware. If you would like to help, please <a href="http://wikimediafoundation.org/wiki/Fundraising">donate</a>.</p>
 302+ <hr noshade="noshade" size="1px" width="80%" />
 303+ <div class="TechnicalStuff">
 304+ If you report this error to the Wikimedia System Administrators, please include the details below.<br/>
 305+ </div>
 306+ </div>
 307+
 308+ <div id="ar" lang="ar" class="RightToLeft">
 309+ <div id="ar_head">
 310+ <hr noshade="noshade" size="1px" width="100%"/>
 311+ <h3 class="LanguageHeading">
 312+ <a name="Arabic">
 313+ العربية
 314+ </a>
 315+ </h3>
 316+ </div>
 317+ <p>تواجه خوادمنا الآن مشاكل تقنية. هذا في الأغلب بشكل مؤقت ومتوقع إصلاحه قريبا. من فضلك <a href="%U" onclick="RefreshPage(); return false">عاود التحميل</a> بعد دقائق قليلة.</p>
 318+ <p>يمكنك الحصول على معلومات أكثر في <a href="irc://irc.freenode.net/wikipedia">#ويكيبيديا</a> على <a href="http://www.freenode.net/">شبكة الآي‌آر‌سي فري‌نود</a>.</p>
 319+ <p>مؤسسة ويكيميديا والتي تستضيف بعضا من أشهر مواقع الإنترنت مثل ويكيبيديا الموسوعة الحرة، هي منظمة غير هادفة للربح. تحتاج المنظمة دائما عتاد جديد للحاسوب بشكر مستمر فإن أردت المساعدة، من فضلك <a href="http://wikimediafoundation.org/wiki/%D8%AC%D9%85%D8%B9_%D8%AA%D8%A8%D8%B1%D8%B9%D8%A7%D8%AA">تبرع لأجل منظمة ويكيميديا</a>.</p>
 320+ <hr noshade="noshade" size="1px" width="80%" />
 321+ <div class="TechnicalStuff" style="font-style:normal">
 322+ إذا أردت إبلاغ هذا الخطأ إلى إداريي ويكيميديا، من فضلك ضمن التفاصيل بالأسفل.<br/>
 323+ </div>
 324+ </div>
 325+
 326+ <div id="cs" lang="cs">
 327+ <div id="cs_head">
 328+ <hr noshade="noshade" size="1px" width="100%"/>
 329+ <h3 class="LanguageHeading">
 330+ <a name="Czech">
 331+ Česky
 332+ </a>
 333+ </h3>
 334+ </div>
 335+ <p>Naše servery mají momentálně technické problémy. Pravděpodobně se jedná o dočasnou závadu, která by měla být brzy opravena. Prosíme, zkuste za několik minut <a href="%U" onclick="RefreshPage(); return false">stránku nahrát znovu</a>.</p>
 336+ <p>Další informace lze získat na IRC kanálu <a href="irc://chat.freenode.net/wikipedia-cs">#wikipedia-cs</a> v <a href="http://www.freenode.net">síti FreeNode</a>.</p>
 337+ <p>Wikimedia Foundation je nezisková organizace, která spravuje některé z nejpopulárnějších serverů na internetu, včetně Wikipedie. Neustále potřebuje nakupovat nové hardwarové vybavení. Pokud byste chtěli pomoct, <a href="http://wikimediafoundation.org/wiki/Sponzorstv%C3%AD">přispějte</a>.</p>
 338+ <hr noshade="noshade" size="1px" width="80%" />
 339+ <div class="TechnicalStuff">
 340+ Pokud hlásíte tuto chybu administrátorům systémů Wikimedia, prosíme připojte následující podrobnosti.<br/>
 341+ </div>
 342+ </div>
 343+
 344+ <div id="da" lang="da">
 345+ <div id="da_head">
 346+ <hr noshade="noshade" size="1px" width="100%"/>
 347+ <h3 class="LanguageHeading">
 348+ <a name="Danish">
 349+ Dansk
 350+ </a>
 351+ </h3>
 352+ </div>
 353+ <p>Wikimedia Foundations servere har i øjeblikket tekniske problemer. <a href="%U" onclick="RefreshPage(); return false">Prøv venligst igen</a> om få minutter.</p>
 354+ <p>For nærmere information kan du besøge <a href="http://www.freenode.net">FreeNode</a> IRC kanalen <a href="irc://chat.freenode.net/wikipedia-da">#wikipedia-da</a>.</p>
 355+ <p>Hvis du er interesseret i at hjælpe nonprofitorganisationen Wikimedia, så <a href="http://wikimediafoundation.org/wiki/Indsamling">giv et bidrag</a> i dag.</p>
 356+ <hr noshade="noshade" size="1px" width="80%" />
 357+ <div class="TechnicalStuff">
 358+ Hvis du rapporterer denne fejl til Wikimedias systemadministratorer, så vedlæg venligst de detaljerede oplysninger herunder.<br/>
 359+ </div>
 360+ </div>
 361+
 362+ <div id="de" lang="de">
 363+ <div id="de_head">
 364+ <hr noshade="noshade" size="1px" width="100%"/>
 365+ <h3 class="LanguageHeading">
 366+ <a name="German">
 367+ Deutsch
 368+ </a>
 369+ </h3>
 370+ </div>
 371+ <p>Bei den Servern der Wikimedia Foundation sind gerade technische Probleme aufgetreten. Bitte versuche es in ein paar Minuten <a href="%U" onclick="RefreshPage(); return false">noch einmal</a>.</p>
 372+ <p>Genauere Informationen gibt es im Channel <a href="irc://chat.freenode.net/wikipedia-de">#wikipedia-de</a> auf dem IRC-Netzwerk <a href="http://www.freenode.net">Freenode</a>.</p>
 373+ <p>Wenn du Wikimedia Deutschland e.V. und der Wikimedia Foundation helfen möchtest, kannst du dies mit <a href="http://wikimediafoundation.org/wiki/Spenden">einer Spende</a> tun.</p>
 374+ <hr noshade="noshade" size="1px" width="80%" />
 375+ <div class="TechnicalStuff">
 376+ Wenn du einem Wikimedia-Systemadministrator diesen Fehler meldest, gib bitte die folgenden Details an.<br/>
 377+ </div>
 378+ </div>
 379+
 380+ <div id="el" lang="el">
 381+ <div id="el_head">
 382+ <hr noshade="noshade" size="1px" width="100%"/>
 383+ <h3 class="LanguageHeading">
 384+ <a name="Greek">
 385+ Ελληνικά
 386+ </a>
 387+ </h3>
 388+ </div>
 389+ <p>Οι διακομιστές μας αυτή την στιγμή παρουσιάζουν ένα τεχνικό πρόβλημα. Αυτό είναι πιθανά προσωρινό και θα διορθωθεί σύντομα. Παρακαλούμε <a href="%U" onclick="RefreshPage(); return false">δοκιμάστε ξανά</a> σε λίγα λεπτά.</p>
 390+ <p>Μπορεί να λάβετε περισσότερες πληροφορίες στο κανάλι <a href="irc://chat.freenode.net/wikipedia">#wikipedia</a> στο <a href="http://www.freenode.net">δίκτυο IRC Freenode</a>.</p>
 391+ <p>Το Ίδρυμα Wikimedia είναι ένας μη κερδοσκοπικός οργανισμός που φιλοξενεί ορισμένους από τους πιο δημοφιλής ιστότοπους στο διαδίκτυο συμπεριλαμβάνοντας την Βικιπαίδεια. Βρίσκεται σε μόνιμη ανάγκη αγοράς νέου hardware. Εάν θέλετε να βοηθήσετε παρακαλούμε <a href="http://wikimediafoundation.org/wiki/Δωρεές">κάντε μια δωρεά</a>.</p>
 392+ <hr noshade="noshade" size="1px" width="80%"/>
 393+ <div class="TechnicalStuff">
 394+ Εάν αναφέρετε αυτό το σφάλμα στου Διαχειριστές Συστημάτων του Wikimedia, παρακαλούμε συμπεριλάβετε τις παρακάτω πληροφορίες.<br/>
 395+ </div>
 396+ </div>
 397+
 398+ <div id="es" lang="es">
 399+ <div id="es_head">
 400+ <hr noshade="noshade" size="1px" width="100%"/>
 401+ <h3 class="LanguageHeading">
 402+ <a name="Spanish">
 403+ Español
 404+ </a>
 405+ </h3>
 406+ </div>
 407+ <p>Los servidores de la Fundación Wikimedia están teniendo dificultades técnicas. Este problema es temporal y esperamos arreglarlo cuanto antes. Por favor intenta <a href="%U" onclick="RefreshPage(); return false">acceder nuevamente</a> dentro de unos minutos.</p>
 408+ <p>Puedes obtener más información en el canal <a href="irc://chat.freenode.net/wikipedia-es">#wikipedia-es</a> de la red IRC <a href="http://www.freenode.net">FreeNode</a>.</p>
 409+ <p>La Fundación sin ánimo de lucro Wikimedia aloja algunos de los sitios más visitados en Internet, incluyendo Wikipedia, y necesita comprar hardware nuevo constantemente. Si deseas ayudarnos, haz por favor <a href="http://wikimediafoundation.org/wiki/Donaciones">una donación</a>.</p>
 410+ <hr noshade="noshade" size="1px" width="80%"/>
 411+ <div class="TechnicalStuff">
 412+ Si informas de este error a los administradores del sistema, por favor indica los detalles siguientes.<br/>
 413+ </div>
 414+ </div>
 415+
 416+ <div id="et" lang="et">
 417+ <div id="et_head">
 418+ <hr noshade="noshade" size="1px" width="100%"/>
 419+ <h3 class="LanguageHeading">
 420+ <a name="Estonian">
 421+ Eesti
 422+ </a>
 423+ </h3>
 424+ </div>
 425+ <p>Wikimedia Sihtasutuse serveris on viga. Palun <a href="%U" onclick="RefreshPage(); return false">proovi uuesti</a>.</p>
 426+ <p>Lisa infot võid saada kanalist <a href="irc://chat.freenode.net/wikipedia">#wikipedia</a> <a href="http://www.freenode.net">FreeNoden IRC-võrgust</a>.</p>
 427+ <p>Kui soovite mittetulunduslikku Wikimedia Sihtasutust aidata, siis palun <a href="http://wikimediafoundation.org/wiki/Annetused">tehke annetus</a>.</p>
 428+ <hr noshade="noshade" size="1px" width="80%"/>
 429+ <div class="TechnicalStuff">
 430+ Kui teatate sellest veast Wikimedia süsteemiadministraatoritele, siis palun pange kaasa alltoodud üksikasjad.<br/>
 431+ </div>
 432+ </div>
 433+
 434+ <div id="fa" lang="fa" class="RightToLeft">
 435+ <div id="fa_head">
 436+ <hr noshade="noshade" size="1px" width="100%"/>
 437+ <h3 class="LanguageHeading">
 438+ <a name="Persian">
 439+ فارسي
 440+ </a>
 441+ </h3>
 442+ </div>
 443+ <p>رایانههای خادم «بنیاد ویکیمدیا» در حال حاضر با مشکلی فنی مواجهاند.</p>
 444+ <p>این مشکل احتمالاً موقتی است و امیدواریم به زودی رفع شود. لطفاً چند لحظهٔ دیگر <a href="%U" onclick="RefreshPage(); return false">دوباره تلاش کنید</a>.</p>
 445+ <p>اگر میخواهید به بنیاد ناسودبرهٔ ویکیمدیا کمک کنید، خواهشمندیم که <a href="http://wikimediafoundation.org/wiki/Fundraising">وجهی بپردازید</a>.</p>
 446+ <hr noshade="noshade" size="1px" width="80%"/>
 447+ <div class="TechnicalStuff" style="font-style:normal">
 448+ اگر این خطا را به مدیریت شبکهٔ ویکیمدیا گزارش میکنید، خواهشمندیم که جزئیات زیر را هم داشتهباشد.<br/>
 449+ </div>
 450+ </div>
 451+
 452+ <div id="fi" lang="fi">
 453+ <div id="fi_head">
 454+ <hr noshade="noshade" size="1px" width="100%"/>
 455+ <h3 class="LanguageHeading">
 456+ <a name="Finnish">
 457+ Suomi
 458+ </a>
 459+ </h3>
 460+ </div>
 461+ <p>Wikimedia-säätiön palvelimilla on tapahtunut virhe. <a href="%U" onclick="RefreshPage(); return false">Yritä uudelleen</a> hetken kuluttua.</p>
 462+ <p>Lisätietoja saa <a href="http://www.freenode.net">Freenode</a>-verkon IRC-kanavalta <a href="irc://chat.freenode.net/wikipedia-fi">#wikipedia-fi</a>.</p>
 463+ <p>Jos haluat auttaa voittoa tavoittelematonta Wikimedia-säätiötä, tee <a href="http://wikimediafoundation.org/wiki/Lahjoitukset">lahjoitus</a>.</p>
 464+ <hr noshade="noshade" size="1px" width="80%"/>
 465+ <div class="TechnicalStuff">
 466+ Jos ilmoitat tästä virheestä Wikimedian ylläpitäjille, liitä mukaan alla olevat tiedot.<br/>
 467+ </div>
 468+ </div>
 469+
 470+ <div id="fr" lang="fr">
 471+ <div id="fr_head">
 472+ <hr noshade="noshade" size="1px" width="100%"/>
 473+ <h3 class="LanguageHeading">
 474+ <a name="French">
 475+ Français
 476+ </a>
 477+ </h3>
 478+ </div>
 479+ <p>Les serveurs de la Fondation Wikimedia ont détecté une erreur. Merci de patienter quelques minutes avant de <a href="%U" onclick="RefreshPage(); return false">réessayer</a>.</p>
 480+ <p>Pour de plus amples informations, veuillez visiter le canal <a href="irc://chat.freenode.net/wikipedia-fr">#wikipedia-fr</a> du réseau <a href="http://www.freenode.net">IRC freenode</a>.</p>
 481+ <p>Si vous voulez aider la fondation Wikimedia, à but non lucratif, qui fait fonctionner Wikipédia, vous pouvez <a href="http://wikimediafoundation.org/wiki/Faire_un_don">faire un don</a>.</p>
 482+ <hr noshade="noshade" size="1px" width="80%"/>
 483+ <div class="TechnicalStuff">
 484+ Si vous signalez cette erreur aux administrateurs système de Wikimedia, veuillez indiquer les détails ci-dessous.<br/>
 485+ </div>
 486+ </div>
 487+
 488+ <div id="he" lang="he" class="RightToLeft">
 489+ <div id="he_head">
 490+ <hr noshade="noshade" size="1px" width="100%"/>
 491+ <h3 class="LanguageHeading">
 492+ <a name="Hebrew">
 493+ עברית
 494+ </a>
 495+ </h3>
 496+ </div>
 497+ <p>עקב בעיה טכנית בשרתי קרן ויקימדיה, האתרים המאוחסנים בהם אינם זמינים.</p>
 498+ <p>הבעיה היא ככל הנראה זמנית ואנו מקווים שתפתר במהרה. אנא <a href="%U" onclick="RefreshPage(); return false">נסו שנית</a> בעוד מספר דקות.</p>
 499+ <p>אם ברצונכם לעזור לקרן ויקימדיה הפועלת ללא מטרת רווח, באפשרותכם <a href="http://wikimediafoundation.org/wiki/%D7%AA%D7%A8%D7%95%D7%9E%D7%95%D7%AA">לתרום לה</a>.</p>
 500+ <hr noshade="noshade" size="1px" width="80%"/>
 501+ <div class="TechnicalStuff" style="font-style:normal">
 502+ אם תרצו לדווח על השגיאה למנהלי המערכת של ויקימדיה, אנא הקפידו לכלול את הפרטים שלהלן.<br/>
 503+ </div>
 504+ </div>
 505+
 506+ <div id="id" lang="id">
 507+ <div id="id_head">
 508+ <hr noshade="noshade" size="1px" width="100%"/>
 509+ <h3 class="LanguageHeading">
 510+ <a name="Indonesian">
 511+ Bahasa Indonesia
 512+ </a>
 513+ </h3>
 514+ </div>
 515+ <p>Server Yayasan Wikimedia sedang mengalami masalah untuk sementara waktu. Silahkan <a href="%U" onclick="RefreshPage(); return false">coba beberapa saat lagi</a>.</p>
 516+ <p>Anda bisa mendapatkan informasi lebih lanjut dari <a href="irc://chat.freenode.net/wikipedia">#wikipedia</a> channel di <a href="http://www.freenode.net">Freenode IRC network</a>.</p>
 517+ <p>Wikimedia adalah yayasan nirlaba, jika Anda ingin membantu, silahkan <a href="http://wikimediafoundation.org/wiki/Penggalangan_dana">berikan donasi</a> Anda.</p>
 518+ <hr noshade="noshade" size="1px" width="80%"/>
 519+ <div class="TechnicalStuff">
 520+ Jika Anda melaporkan kesalahan ini kepada Pengurus Sistem Wikimedia, harap cantumkan detil berikut.<br/>
 521+ </div>
 522+ </div>
 523+
 524+ <div id="it" lang="it">
 525+ <div id="it_head">
 526+ <hr noshade="noshade" size="1px" width="100%"/>
 527+ <h3 class="LanguageHeading">
 528+ <a name="Italian">
 529+ Italiano
 530+ </a>
 531+ </h3>
 532+ </div>
 533+ <p>I server della Wikimedia Foundation hanno al momento qualche problema tecnico. Per favore, <a href="%U" onclick="RefreshPage(); return false">riprova</a> tra qualche minuto.</p>
 534+ <p>Per ulteriori informazioni puoi visitare il canale <a href="irc://chat.freenode.net/wikipedia-it">#wikipedia-it</a> sulla rete IRC di <a href="http://www.freenode.net">FreeNode</a>.</p>
 535+ <p>Se vorrai aiutarci con <a href="http://wikimediafoundation.org/wiki/Donazioni">una donazione</a>, te ne saremo grati.</p>
 536+ <hr noshade="noshade" size="1px" width="80%"/>
 537+ <div class="TechnicalStuff">
 538+ Includi i seguenti dettagli se segnali questo errore agli amministratori di sistema di Wikimedia.<br/>
 539+ </div>
 540+ </div>
 541+
 542+ <div id="ja" lang="ja">
 543+ <div id="ja_head">
 544+ <hr noshade="noshade" size="1px" width="100%"/>
 545+ <h3 class="LanguageHeading">
 546+ <a name="Japanese">
 547+ 日本語
 548+ </a>
 549+ </h3>
 550+ </div>
 551+ <p>現在、ウィキメディア財団のサーバに技術的な問題が発生しています。</p>
 552+ <p>問題は一時的なものでまもなく回復する見込みです。しばらくしてから<a href="%U" onclick="RefreshPage(); return false">もう一度接続してみてください</a>。</p>
 553+ <p>詳しい情報は <a href="http://www.freenode.net">Freenode</a> の IRC チャンネル<a href="irc://chat.freenode.net/wikipedia-ja">#wikipedia-ja</a>をご覧下さい。</p>
 554+ <hr noshade="noshade" size="1px" width="80%"/>
 555+ <div class="TechnicalStuff" style="font-style:normal">
 556+ このエラーをウィキメディアのシステム管理者に報告する際は、次に表示されるエラーの詳細もあわせてお知らせください。<br/>
 557+ </div>
 558+ </div>
 559+
 560+ <div id="ko" lang="ko">
 561+ <div id="ko_head">
 562+ <hr noshade="noshade" size="1px" width="100%"/>
 563+ <h3 class="LanguageHeading">
 564+ <a name="Korean">
 565+ 한국어
 566+ </a>
 567+ </h3>
 568+ </div>
 569+ <p>현재 위키미디어 재단의 서버에 기술적 문제가 생겼습니다. 몇 분 뒤에 <a href="%U" onclick="RefreshPage(); return false">다시</a> 시도해 보십시오.</p>
 570+ <p>자세한 정보를 원하신다면 <a href="http://www.freenode.net">FreeNode의</a> <a href="irc://chat.freenode.net/wikipedia-ko">#wikipedia-ko</a> 채널이나 <a href="http://www.hanirc.org">HanIRC의</a> <a href="irc://secure.hanirc.org/wikipedia">#wikipedia</a> 채널으로 오십시오.</p>
 571+ <p>비영리 위키미디어 재단을 돕고 싶다면, <a href="http://wikimediafoundation.org/wiki/%EA%B8%B0%EB%B6%80%EC%95%88%EB%82%B4">기부하세요</a>.</p>
 572+ <hr noshade="noshade" size="1px" width="80%"/>
 573+ <div class="TechnicalStuff" style="font-style:normal">
 574+ 위키미디어 시스템 관리자에게 오류를 보고할 때에는 다음 사항도 기재해 주세요.<br/>
 575+ </div>
 576+ </div>
 577+
 578+ <div id="nl" lang="nl">
 579+ <div id="nl_head">
 580+ <hr noshade="noshade" size="1px" width="100%"/>
 581+ <h3 class="LanguageHeading">
 582+ <a name="Dutch">
 583+ Nederlands
 584+ </a>
 585+ </h3>
 586+ </div>
 587+ <p>Onze servers ondergaan op dit moment een technisch probleem. Dit is waarschijnlijk tijdelijk en zal zo snel mogelijk verholpen worden. <a href="%U" onclick="RefreshPage(); return false">Probeer het opnieuw</a> over enkele minuten.</p>
 588+ <p>Voor meer informatie kunt u terecht op het kanaal <a href="irc://chat.freenode.net/wikipedia-nl">#wikipedia-nl</a> op het <a href="http://www.freenode.net">FreeNode IRC-netwerk</a>.</p>
 589+ <p>De Wikimedia Foundation is een organisatie zonder winstoogmerk die enkele van de meest populaire sites op Internet beheert, waaronder Wikipedia. We moeten continu nieuwe hardware bijkopen. Indien u wilt helpen, doe dan alstublieft een <a href="http://wikimediafoundation.org/wiki/Giften">donatie</a>.</p>
 590+ <hr noshade="noshade" size="1px" width="80%"/>
 591+ <div class="TechnicalStuff">
 592+ Indien u deze fout meldt aan de systeembeheerders van Wikimedia Foundation, vermeld dan alstublieft onderstaande details.<br/>
 593+ </div>
 594+ </div>
 595+
 596+ <div id="no" lang="no">
 597+ <div id="no_head">
 598+ <hr noshade="noshade" size="1px" width="100%"/>
 599+ <h3 class="LanguageHeading">
 600+ <a name="Norwegian">
 601+ Norsk (Bokmål)
 602+ </a>
 603+ </h3>
 604+ </div>
 605+ <p>Wikimedia foundations servere har funnet en feil. <a href="%U" onclick="RefreshPage(); return false">Prøv på nytt</a> litt senere.</p>
 606+ <p>For mer informasjon, besøk kanalen <a href="irc://chat.freenode.net/wikipedia-no">#wikipedia-no</a>.</p>
 607+ <p>Gjerne gi en <a href="http://wikimediafoundation.org/wiki/Innsamling_%28nb%29">donasjon</a> til Wikimedia Foundation.</p>
 608+ <hr noshade="noshade" size="1px" width="80%"/>
 609+ <div class="TechnicalStuff">
 610+ Hvis du rapporterer denne feilen til Wikimedias systemadministratorer, vennligst ta med detaljene fra denne siden.<br/>
 611+ </div>
 612+ </div>
 613+
 614+ <div id="pl" lang="pl">
 615+ <div id="pl_head">
 616+ <hr noshade="noshade" size="1px" width="100%"/>
 617+ <h3 class="LanguageHeading">
 618+ <a name="Polish">
 619+ Polski
 620+ </a>
 621+ </h3>
 622+ </div>
 623+ <p>Serwery Fundacji Wikimedia mają w tej chwili problemy techniczne. <a href="%U" onclick="RefreshPage(); return false">Spróbuj ponownie później</a>.</p>
 624+ <p>W celu uzyskania dokładniejszych informacji możesz odwiedzić kanał <a href="irc://chat.freenode.net/wikipedia-pl">#wikipedia-pl</a> na sieci IRC <a href="http://www.freenode.net">FreeNode</a>.</p>
 625+ <p>Jeśli chcesz pomóc Fundacji Wikimedia możesz <a href="http://wikimediafoundation.org/wiki/Dary_pieni%C4%99%C5%BCne">złożyć darowiznę</a>.</p>
 626+ <hr noshade="noshade" size="1px" width="80%"/>
 627+ <div class="TechnicalStuff">
 628+ Jeśli zamierzasz zgłosić ten błąd administratorom Fundacji Wikimedia załącz także poniższe szczegóły.<br/>
 629+ </div>
 630+ </div>
 631+
 632+ <div id="pt" lang="pt">
 633+ <div id="pt_head">
 634+ <hr noshade="noshade" size="1px" width="100%"/>
 635+ <h3 class="LanguageHeading">
 636+ <a name="Portuguese">
 637+ Português
 638+ </a>
 639+ </h3>
 640+ </div>
 641+ <p>Os servidores da Fundação Wikimedia estão com dificuldades técnicas. Por favor, <a href="%U" onclick="RefreshPage(); return false">tente novamente</a> dentro de alguns minutos.</p>
 642+ <p>Para mais informações, pode tentar o canal <a href="irc://chat.freenode.net/wikipedia-pt">#wikipedia-pt</a> na rede de <a href="http://www.freenode.net">IRC FreeNode</a>.</p>
 643+ <p>Se você gostaria de ajudar a Fundação Wikimedia, uma organização sem fins lucrativos, por favor <a href="http://wikimediafoundation.org/wiki/Coleta_de_fundos">faça uma doação</a>.</p>
 644+ <hr noshade="noshade" size="1px" width="80%"/>
 645+ <div class="TechnicalStuff">
 646+ Se você informar esse erro para os administradores do sistema da Wikimedia, por favor indique os detalhes seguintes.<br/>
 647+ </div>
 648+ </div>
 649+
 650+ <div id="ro" lang="ro">
 651+ <div id="ro_head">
 652+ <hr noshade="noshade" size="1px" width="100%"/>
 653+ <h3 class="LanguageHeading">
 654+ <a name="Romanian">
 655+ Română
 656+ </a>
 657+ </h3>
 658+ </div>
 659+ <p>Serverele Fundaţiei Wikimedia întâmpină în acest moment dificultăţi tehnice. Vă rugăm să <a href="%U" onclick="RefreshPage(); return false">încercaţi din nou</a> în câteva minute.</p>
 660+ <p>Pentru mai multe informaţii vizitaţi canalul <a href="irc://chat.freenode.net/ro.wikipedia">#ro.wikipedia</a> pe reţeaua <a href="http://www.freenode.net">FreeNode IRC</a>.</p>
 661+ <p>Dacă doriţi să ajutaţi Fundaţia non-profit Wikimedia, vă rugăm să <a href="http://wikimediafoundation.org/wiki/Dona%C5%A3ii">faceţi o donaţie</a>.</p>
 662+ <hr noshade="noshade" size="1px" width="80%"/>
 663+ <div class="TechnicalStuff">
 664+ Dacă raportaţi această eroare administratorilor de sistem ai Wikimedia, vă rugăm includeţi detaliile de mai jos.<br/>
 665+ </div>
 666+ </div>
 667+
 668+ <div id="ru" lang="ru">
 669+ <div id="ru_head">
 670+ <hr noshade="noshade" size="1px" width="100%"/>
 671+ <h3 class="LanguageHeading">
 672+ <a name="Russian">
 673+ Русский
 674+ </a>
 675+ </h3>
 676+ </div>
 677+ <p>На серверах фонда «Викимедиа» возникли технические трудности. Проблема, скорее всего, носит временный характер и вскоре будет устранена. Пожалуйста, попробуйте <a href="%U" onclick="RefreshPage(); return false">обновить страницу</a> через несколько минут.</p>
 678+ <p>Дополнительную информацию можно получить посетив IRC-канал <a href="irc://chat.freenode.net/wikipedia-ru">#wikipedia-ru</a> сети <a href="http://www.freenode.net">«Freenode»</a>.</p>
 679+ <p>Фонд «Викимедиа» (Wikimedia Foundation) — некоммерческая организация, размещающая и обслуживающая несколько наиболее популярных в Интернете сайтов, в том числе — Википедию. Фонд испытывает постоянную потребность в приобретении нового оборудования. Вы можете помочь, <a href="http://wikimediafoundation.org/wiki/Сбор_средств">сделав пожертвование</a>.</p>
 680+ <hr noshade="noshade" size="1px" width="80%"/>
 681+ <div class="TechnicalStuff">
 682+ Если вы решите сообщить об ошибке нашему системному администратору, пожалуйста, передайте ему следующую техническую информацию.<br/>
 683+ </div>
 684+ </div>
 685+
 686+ <div id="sr" lang="sr">
 687+ <div id="sr_head">
 688+ <hr noshade="noshade" size="1px" width="100%"/>
 689+ <h3 class="LanguageHeading">
 690+ <a name="Serbian">
 691+ Српски
 692+ </a>
 693+ </h3>
 694+ </div>
 695+ <p>Сервери Викимедијине Задужбине тренутно имају техничке потешкоће. Молимо вас <a href="%U" onclick="RefreshPage(); return false">покушајте</a> касније.</p>
 696+ <p>За даље информације, можете да посетите канал <a href="irc://chat.freenode.net/wikipedia-sr">#wikipedia-sr</a> на <a href="http://www.freenode.net">FreeNode</a> ИРЦ мрежи.</p>
 697+ <p>Ако бисте желели да помогнете непрофитабилној Фондацији Викимедије, можете то урадити <a href="http://wikimediafoundation.org/wiki/%D0%94%D0%BE%D0%BD%D0%B0%D1%86%D0%B8%D1%98%D0%B5">донацијом</a>.</p>
 698+ <hr noshade="noshade" size="1px" width="80%"/>
 699+ <div class="TechnicalStuff">
 700+ Ако одлучите да пријавите ову грешку Викимедијиним системским администраторима, молимо вас да укључите и детаље приказане испод.<br/>
 701+ </div>
 702+ </div>
 703+
 704+ <div id="sv" lang="sv">
 705+ <div id="sv_head">
 706+ <hr noshade="noshade" size="1px" width="100%"/>
 707+ <h3 class="LanguageHeading">
 708+ <a name="Swedish">
 709+ Svenska
 710+ </a>
 711+ </h3>
 712+ </div>
 713+ <p>Wikimedias servrar har för tillfället tekniska problem. Du kan <a href="%U" onclick="RefreshPage(); return false">försöka igen</a> om någon minut.</p>
 714+ <p>För mer information kan du besöka <a href="irc://chat.freenode.net/wikipedia-sv">#wikipedia-sv</a> på <a href="http://www.freenode.net">FreeNode IRC</a>.</p>
 715+ <p>Önskar du stödja den ideella Wikimedia Foundation, <a href="http://wikimediafoundation.org/wiki/Insamling">var god lämna ett bidrag</a>.</p>
 716+ <hr noshade="noshade" size="1px" width="80%"/>
 717+ <div class="TechnicalStuff">
 718+ Om du rapporterar detta fel till Wikimedias systemadministratörer, var god inkludera detaljerna nedan.<br/>
 719+ </div>
 720+ </div>
 721+
 722+ <div id="th" lang="th">
 723+ <div id="th_head">
 724+ <hr noshade="noshade" size="1px" width="100%"/>
 725+ <h3 class="LanguageHeading">
 726+ <a name="Thai">
 727+ ไทย
 728+ </a>
 729+ </h3>
 730+ </div>
 731+ <p>เซิร์ฟเวอร์ขององค์กรวิกิมีเดียขณะนี้ ไม่สามารถถูกเรียกใช้งานได้</p>
 732+ <p>กรุณาลองเข้ามาในเว็บใหม่อีกครั้ง ปัญหาที่เกิดขึ้นเป็นปัญหาชั่วคราว ซึ่งจะได้รับการแก้ไขในไม่ช้า</p>
 733+ <hr noshade="noshade" size="1px" width="80%"/>
 734+ <div class="TechnicalStuff" style="font-style:normal">
 735+ หากคุณกำลังจะรายงานข้อผิดพลาดนี้ไปยังผู้ดูแลระบบของวิกิมีเดีย กรุณาระบุรายละเอียดด้านล่างนี้ไปด้วย<br/>
 736+ </div>
 737+ </div>
 738+
 739+ <div id="tr" lang="tr">
 740+ <div id="tr_head">
 741+ <hr noshade="noshade" size="1px" width="100%"/>
 742+ <h3 class="LanguageHeading">
 743+ <a name="Turkish">
 744+ Türkçe
 745+ </a>
 746+ </h3>
 747+ </div>
 748+ <p>Vıkımedya Vakfı sunucuları bir hataya rastladı. Lütfen daha sonra <a href="%U" onclick="RefreshPage(); return false">tekrar deneyiniz</a>.</p>
 749+ <p>Daha fazla bilgi için <a href="http://www.freenode.net">Freenode</a> IRC ağındaki <a href="irc://chat.freenode.net/wikipedia-tr">#wikipedia-tr</a> kanalını ziyaret ediniz.</p>
 750+ <p>Kâr amacı gütmeyen Vikimedya Vakfına yardımcı olmak istiyorsanız lütfen <a href="http://wikimediafoundation.org/wiki/Ba%C4%9F%C4%B1%C5%9F">bağışta bulununuz</a>.</p>
 751+ <hr noshade="noshade" size="1px" width="80%"/>
 752+ <div class="TechnicalStuff">
 753+ Eğer bu hatayı Vikimedya sunucu yöneticilerine rapor etmek istiyorsanız lütfen aşağıdaki detayları belirtiniz.<br/>
 754+ </div>
 755+ </div>
 756+
 757+ <div id="vi" lang="vi">
 758+ <div id="vi_head">
 759+ <hr noshade="noshade" size="1px" width="100%"/>
 760+ <h3 class="LanguageHeading">
 761+ <a name="Vietnamese">
 762+ Tiếng Việt
 763+ </a>
 764+ </h3>
 765+ </div>
 766+ <p>Các máy chủ của Quỹ Hỗ Trợ Wikimedia gặp lỗi. Xin hãy <a href="%U" onclick="RefreshPage(); return false">thử lần nữa</a>.</p>
 767+ <p>Để biết thêm chi tiết, hãy ghé vào đài <a href="irc://chat.freenode.net/wikipedia">#wikipedia</a> trên mạng IRC <a href="http://www.freenode.net">Freenode</a>.</p>
 768+ <p>Có thể giúp đỡ Quỹ Wikimedia, một tổ chức bất vụ lợi, bằng cách quyên góp.</p>
 769+ <hr noshade="noshade" size="1px" width="80%"/>
 770+ <div class="TechnicalStuff">
 771+ Nếu gửi lỗi này cho nhóm quản lý máy móc Wikimedia, xin bao gồm những chi tiết ở dưới.<br/>
 772+ </div>
 773+ </div>
 774+
 775+ <div id="zh-Hant" lang="zh-Hant">
 776+ <div id="zh-Hant_head">
 777+ <hr noshade="noshade" size="1px" width="100%"/>
 778+ <h3 class="LanguageHeading">
 779+ <a name="TraditionalChinese">
 780+ 繁體中文
 781+ </a>
 782+ </h3>
 783+ </div>
 784+ <p>維基媒體基金會伺服器現在發生技術問題。</p>
 785+ <p>此問題應為暫時狀況,我們將盡快修復,<a href="%U" onclick="RefreshPage(); return false">請稍後再試</a>。</p>
 786+ <p>如果您願意協助非營利的維基媒體基金會,請考慮<a href="http://wikimediafoundation.org/wiki/%E8%B5%84%E5%8A%A9">捐款資助</a>。</p>
 787+ <hr noshade="noshade" size="1px" width="80%"/>
 788+ <div class="TechnicalStuff" style="font-style:normal">
 789+ 如欲匯報此錯誤予維基媒體的系統管理員,請附上以下詳細資料。<br/>
 790+ </div>
 791+ </div>
 792+
 793+ <div id="zh-Hans" lang="zh-Hans">
 794+ <div id="zh-Hans_head">
 795+ <hr noshade="noshade" size="1px" width="100%"/>
 796+ <h3 class="LanguageHeading">
 797+ <a name="SimplifiedChinese">
 798+ 简体中文
 799+ </a>
 800+ </h3>
 801+ </div>
 802+ <p>维基媒体基金会服务器现在发生技术问题。</p>
 803+ <p>此问题应为暂时状况,我们将尽快修复,<a href="%U" onclick="RefreshPage(); return false">请稍后再试</a>。</p>
 804+ <p>如果您愿意协助非营利的维基媒体基金会,请考虑<a href="http://wikimediafoundation.org/wiki/%E8%B5%84%E5%8A%A9">捐款资助</a>。</p>
 805+ <hr noshade="noshade" size="1px" width="80%"/>
 806+ <div class="TechnicalStuff" style="font-style:normal">
 807+ 如欲汇报此错误予维基媒体的系统管理员,请附上以下详细数据。<br/>
 808+ </div>
 809+ </div>
 810+
 811+ <!-- Technical details of the error; shows all the time, with any language -->
 812+ <div class="TechnicalStuff">
 813+ <bdo dir="ltr">
 814+ PHP fatal error in $file line $line: <br/>
 815+ $message
 816+ </bdo>
 817+ <div id="AdditionalTechnicalStuff"></div>
 818+ </div>
 819+ </div>
 820+
 821+ <!-- Shadow-style gradient -->
 822+ <div class="Lines" style="background-color:#f4f4f4;"></div>
 823+ <div class="Lines" style="background-color:#eaeaea;"></div>
 824+ <div class="Lines" style="background-color:#dbdbdb;"></div>
 825+ <div class="Lines" style="background-color:#c6c6c6;"></div>
 826+ <div class="Lines" style="background-color:#acacac;"></div>
 827+ <div class="Lines" style="background-color:#dbe5df;"></div>
 828+
 829+ <!-- The top row of the language links at the foot of the page -->
 830+ <div class="BottomStrip">
 831+ <a href="#Arabic" class="BottomLinks" id="ar_link" onclick="ShowLanguage('ar')">العربية</a>
 832+ <a href="#Indonesian" class="BottomLinks" id="id_link" onclick="ShowLanguage('id')">Bahasa Indonesia</a>
 833+ <a href="#Czech" class="BottomLinks" id="cs_link" onclick="ShowLanguage('cs')">Česky</a>
 834+ <a href="#Danish" class="BottomLinks" id="da_link" onclick="ShowLanguage('da')">Dansk</a>
 835+ <a href="#German" class="BottomLinks" id="de_link" onclick="ShowLanguage('de')">Deutsch</a>
 836+ <a href="#Estonian" class="BottomLinks" id="et_link" onclick="ShowLanguage('et')">Eesti</a>
 837+ <a href="#Greek" class="BottomLinks" id="el_link" onclick="ShowLanguage('el')">Ελληνικά</a>
 838+ <a href="#English" class="BottomLinks" id="en_link" onclick="ShowLanguage('en')">English</a>
 839+ <a href="#Spanish" class="BottomLinks" id="es_link" onclick="ShowLanguage('es')">Español</a>
 840+ <a href="#Persian" class="BottomLinks" id="fa_link" onclick="ShowLanguage('fa')">فارسي</a>
 841+ <a href="#French" class="BottomLinks" id="fr_link" onclick="ShowLanguage('fr')">Français</a>
 842+ <a href="#Korean" class="BottomLinks" id="ko_link" onclick="ShowLanguage('ko')">한국어</a>
 843+ <a href="#Italian" class="BottomLinks" id="it_link" onclick="ShowLanguage('it')">Italiano</a>
 844+ <a href="#Hebrew" class="BottomLinks" id="he_link" onclick="ShowLanguage('he')">עברית</a>
 845+ <a href="#Dutch" class="BottomLinks" id="nl_link" onclick="ShowLanguage('nl')">Nederlands</a>
 846+ </div>
 847+
 848+ <!-- Shadow-style gradient -->
 849+ <div class="Lines" style="background-color:#9d9fa1;"></div>
 850+ <div class="Lines" style="background-color:#a8aeb4;"></div>
 851+ <div class="Lines" style="background-color:#b4bec6;"></div>
 852+ <div class="Lines" style="background-color:#c0ced8;"></div>
 853+
 854+ <!-- The bottom row of the language links at the foot of the page -->
 855+ <div style="text-align:center; font-size:0.85em;background:#cbddeb;">
 856+ <a href="#Japanese" class="BottomLinks" id="ja_link" onclick="ShowLanguage('ja')">日本語</a>
 857+ <a href="#Norwegian" class="BottomLinks" id="no_link" onclick="ShowLanguage('no')">Norsk (Bokmål)</a>
 858+ <a href="#Polish" class="BottomLinks" id="pl_link" onclick="ShowLanguage('pl')">Polski</a>
 859+ <a href="#Portuguese" class="BottomLinks" id="pt_link" onclick="ShowLanguage('pt')">Português</a>
 860+ <a href="#Romanian" class="BottomLinks" id="ro_link" onclick="ShowLanguage('ro')">Română</a>
 861+ <a href="#Russian" class="BottomLinks" id="ru_link" onclick="ShowLanguage('ru')">Русский</a>
 862+ <a href="#Serbian" class="BottomLinks" id="sr_link" onclick="ShowLanguage('sr')">Српски</a>
 863+ <a href="#Finnish" class="BottomLinks" id="fi_link" onclick="ShowLanguage('fi')">Suomi</a>
 864+ <a href="#Swedish" class="BottomLinks" id="sv_link" onclick="ShowLanguage('sv')">Svenska</a>
 865+ <a href="#Thai" class="BottomLinks" id="th_link" onclick="ShowLanguage('th')">ไทย</a>
 866+ <a href="#Vietnamese" class="BottomLinks" id="vi_link" onclick="ShowLanguage('vi')">Tiếng Việt</a>
 867+ <a href="#Turkish" class="BottomLinks" id="tr_link" onclick="ShowLanguage('tr')">Türkçe</a>
 868+ <a href="#TraditionalChinese" class="BottomLinks" id="zh-Hant_link" onclick="ShowLanguage('zh-Hant')">繁體中文</a>
 869+ <a href="#SimplifiedChinese" class="BottomLinks" id="zh-Hans_link" onclick="ShowLanguage('zh-Hans')">简体中文</a>
 870+ </div>
 871+
 872+ <!-- Shadow-style gradient -->
 873+ <div class="Lines" style="background-color:#9ea09f;"></div>
 874+ <div class="Lines" style="background-color:#adb1af;"></div>
 875+ <div class="Lines" style="background-color:#bdc3bf;"></div>
 876+ <div class="Lines" style="background-color:#ccd4cf;"></div>
 877+
 878+ </body>
 879+</html>
 880+
Index: trunk/php/wmerrors/package2.xml
@@ -0,0 +1,49 @@
 2+<?xml version="1.0"?>
 3+<package version="2.0" xmlns="http://pear.php.net/dtd/package-2.0"
 4+ xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
 5+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 6+ xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
 7+http://pear.php.net/dtd/tasks-1.0.xsd
 8+http://pear.php.net/dtd/package-2.0
 9+http://pear.php.net/dtd/package-2.0.xsd">
 10+<name>wmerrors</name>
 11+<uri>.</uri>
 12+<summary>Custom fatal error messages</summary>
 13+<description>Custom fatal error messages</description>
 14+<lead>
 15+ <name>Tim Starling</name>
 16+ <user>tstarling</user>
 17+ <email>tstarling@wikimedia.org</email>
 18+ <active>yes</active>
 19+</lead>
 20+<date>2008-06-30</date>
 21+<version>
 22+ <release>1.0</release>
 23+ <api>0.0.0</api>
 24+</version>
 25+<stability>
 26+ <release>beta</release>
 27+ <api>stable</api>
 28+</stability>
 29+<license>.</license>
 30+<notes>.</notes>
 31+<contents>
 32+ <dir name="/">
 33+ <file name="config.w32" role="src"/>
 34+ <file name="config.m4" role="src"/>
 35+ <file name="wmerrors.c" role="src"/>
 36+ <file name="php_wmerrors.h" role="src"/>
 37+ <file name="error.html" role="data"/>
 38+ <file name="CREDITS" role="doc"/>
 39+ <file name="EXPERIMENTAL" role="doc"/>
 40+ </dir>
 41+</contents>
 42+<dependencies>
 43+ <required>
 44+ <php><min>0.0.0</min></php>
 45+ <pearinstaller><min>0.0.0</min></pearinstaller>
 46+ </required>
 47+</dependencies>
 48+<providesextension>wmerrors</providesextension>
 49+<extsrcrelease/>
 50+</package>
Index: trunk/php/wmerrors/CREDITS
@@ -0,0 +1 @@
 2+wmerrors
Index: trunk/php/wmerrors/EXPERIMENTAL
Index: trunk/php/wmerrors/php_wmerrors.h
@@ -0,0 +1,38 @@
 2+
 3+#ifndef PHP_WMERRORS_H
 4+#define PHP_WMERRORS_H
 5+
 6+extern zend_module_entry wmerrors_module_entry;
 7+#define phpext_wmerrors_ptr &wmerrors_module_entry
 8+
 9+#ifdef PHP_WIN32
 10+#define PHP_WMERRORS_API __declspec(dllexport)
 11+#else
 12+#define PHP_WMERRORS_API
 13+#endif
 14+
 15+#ifdef ZTS
 16+#include "TSRM.h"
 17+#endif
 18+
 19+PHP_MINIT_FUNCTION(wmerrors);
 20+PHP_MSHUTDOWN_FUNCTION(wmerrors);
 21+PHP_RINIT_FUNCTION(wmerrors);
 22+PHP_RSHUTDOWN_FUNCTION(wmerrors);
 23+PHP_MINFO_FUNCTION(wmerrors);
 24+
 25+ZEND_BEGIN_MODULE_GLOBALS(wmerrors)
 26+ void (*old_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
 27+ char * message_file;
 28+ int recursion_guard;
 29+ZEND_END_MODULE_GLOBALS(wmerrors)
 30+
 31+
 32+#ifdef ZTS
 33+#define WMERRORS_G(v) TSRMG(wmerrors_globals_id, zend_wmerrors_globals *, v)
 34+#else
 35+#define WMERRORS_G(v) (wmerrors_globals.v)
 36+#endif
 37+
 38+#endif
 39+
Property changes on: trunk/php/wmerrors/php_wmerrors.h
___________________________________________________________________
Added: svn:eol-style
140 + native
Index: trunk/php/README
@@ -0,0 +1 @@
 2+This directory is for PHP extensions that aren't MediaWiki-specific.

Status & tagging log