<?
+#--------------------------------------------------------------------------
+# Constants
+#--------------------------------------------------------------------------
+
+# Namespaces
+define("NS_SPECIAL", -1);
+define("NS_MAIN", 0);
+define("NS_TALK", 1);
+define("NS_USER", 2);
+define("NS_USER_TALK", 3);
+define("NS_WP", 4);
+define("NS_WP_TALK", 5);
+define("NS_IMAGE", 6);
+define("NS_IMAGE_TALK", 7);
+define("NS_MEDIAWIKI", 8);
+define("NS_MEDIAWIKI_TALK", 9);
+
+# Magic words
+define("MAG_REDIRECT", 0);
+define("MAG_NOTOC", 1);
+define("MAG_START", 2);
+define("MAG_CURRENTMONTH", 3);
+define("MAG_CURRENTMONTHNAME", 4);
+define("MAG_CURRENTDAY", 5);
+define("MAG_CURRENTDAYNAME", 6);
+define("MAG_CURRENTYEAR", 7);
+define("MAG_CURRENTTIME", 8);
+define("MAG_NUMBEROFARTICLES", 9);
+define("MAG_CURRENTMONTHNAMEGEN", 10);
+define("MAG_MSG", 11);
+define("MAG_SUBST", 12);
+define("MAG_MSGNW", 13);
+
+#--------------------------------------------------------------------------
+# Language-specific text
+#--------------------------------------------------------------------------
+
# NOTE: To turn off "Current Events" in the sidebar,
# set "currentevents" => "-"
4 => "Wikipedia",
5 => "Wikipedia_talk",
6 => "Image",
- 7 => "Image_talk"
+ 7 => "Image_talk",
+ 8 => "MediaWiki",
+ 9 => "MediaWiki_talk"
);
/* private */ $wgDefaultUserOptionsEn = array(
"cols" => 80, "rows" => 25, "searchlimit" => 20,
"contextlines" => 5, "contextchars" => 50,
"skin" => 0, "math" => 1, "rcdays" => 7, "rclimit" => 50,
- "highlightbroken" => 1, "stubthreshold" => 0
+ "highlightbroken" => 1, "stubthreshold" => 0,
+ "previewontop" => 1, "editsection"=>1,"editsectiononrightclick"=>0, "showtoc"=>1,
+ "date" => 0
);
/* private */ $wgQuickbarSettingsEn = array(
);
/* private */ $wgSkinNamesEn = array(
- "Standard", "Nostalgia", "Cologne Blue"
+ "Standard", "Nostalgia", "Cologne Blue", "Paddington", "Montparnasse"
);
/* private */ $wgMathNamesEn = array(
"Recommended for modern browsers"
);
+/* private */ $wgDateFormatsEn = array(
+ "No preference",
+ "January 15, 2001",
+ "15 January 2001",
+ "2001 January 15"
+);
+
/* private */ $wgUserTogglesEn = array(
"hover" => "Show hoverbox over wiki links",
"underline" => "Underline links",
"hideminor" => "Hide minor edits in recent changes",
"usenewrc" => "Enhanced recent changes (not for all browsers)",
"numberheadings" => "Auto-number headings",
+ "editondblclick" => "Edit pages on double click (JavaScript)",
+ "editsection"=>"Enable section editing via [edit] links",
+ "editsectiononrightclick"=>"Enable section editing by right clicking<br> on section titles (JavaScript)",
+ "showtoc"=>"Show table of contents<br>(for articles with more than 3 headings)",
"rememberpassword" => "Remember password across sessions",
"editwidth" => "Edit box has full width",
- "editondblclick" => "Edit pages on double click (JavaScript)",
- "watchdefault" => "Watch new and modified articles",
+ "watchdefault" => "Add pages you edit to your watchlist",
"minordefault" => "Mark all edits minor by default",
- "previewontop" => "Show preview before edit box and not after it"
+ "previewontop" => "Show preview before edit box and not after it",
+ "nocache" => "Disable page caching"
);
/* private */ $wgBookstoreListEn = array(
"sr" => "Srpski",
"ss" => "Siswati",
"st" => "Sesotho",
- "su" => "Sudanese",
+ "su" => "Sundanese",
"sv" => "Svenska",
"sw" => "Kiswahili",
"ta" => "Tamil",
"yo" => "Yoruba",
"za" => "Zhuang",
"zh" => "中文 (Zhongwen)",
+ "zh-cn" => "中文(简体) (Simplified Chinese)",
+ "zh-tw" => "中文(繁体) (Traditional Chinese)",
"zu" => "Zulu"
);
"Sep", "Oct", "Nov", "Dec"
);
+/* private */ $wgMagicWordsEn = array(
+# ID CASE SYNONYMS
+ MAG_REDIRECT => array( 0, "#redirect" ),
+ MAG_NOTOC => array( 0, "__NOTOC__" ),
+ MAG_START => array( 0, "__START__" ),
+ MAG_CURRENTMONTH => array( 1, "{{CURRENTMONTH}}" ),
+ MAG_CURRENTMONTHNAME => array( 1, "{{CURRENTMONTHNAME}}" ),
+ MAG_CURRENTDAY => array( 1, "{{CURRENTDAY}}" ),
+ MAG_CURRENTDAYNAME => array( 1, "{{CURRENTDAYNAME}}" ),
+ MAG_CURRENTYEAR => array( 1, "{{CURRENTYEAR}}" ),
+ MAG_CURRENTTIME => array( 1, "{{CURRENTTIME}}" ),
+ MAG_NUMBEROFARTICLES => array( 1, "{{NUMBEROFARTICLES}}" ),
+ MAG_CURRENTMONTHNAMEGEN => array( 1, "{{CURRENTMONTHNAMEGEN}}"),
+ MAG_MSG => array( 1, "{{MSG:$1}}" ),
+ MAG_SUBST => array( 1, "{{SUBST:$1}}" ),
+ MAG_MSGNW => array( 1, "{{MSGNW:$1}}" )
+);
+
# All special pages have to be listed here: a description of ""
# will make them not show up on the "Special Pages" page, which
# is the right thing for some of them (such as the "targeted" ones).
"Shortpages" => "Short articles",
"Longpages" => "Long articles",
"Newpages" => "Newly created articles",
+ "Ancientpages" => "Oldest articles",
"Intl" => "Interlanguage links",
"Allpages" => "All pages by title",
- "Ipblocklist" => "Blocked IP addresses",
+ "Ipblocklist" => "Blocked users/IP addresses",
"Maintenance" => "Maintenance page",
"Specialpages" => "",
"Contributions" => "",
"Whatlinkshere" => "",
"Recentchangeslinked" => "",
"Movepage" => "",
- "Booksources" => "External book sources"
+ "Booksources" => "External book sources",
+"Categories" => "Page categories",
+"Export" => ""
);
/* private */ $wgSysopSpecialPagesEn = array(
- "Blockip" => "Block an IP address",
+ "Blockip" => "Block a user/IP address",
"Asksql" => "Query the database",
"Undelete" => "Restore deleted pages"
);
# Bits of text used by many pages:
#
+"categories" => "Page categories",
+"category" => "category",
+"category_header" => "Articles in category \"$1\"",
+"subcategories" => "Subcategories",
+
"linktrail" => "/^([a-z]+)(.*)\$/sD",
"mainpage" => "Main Page",
+"mainpagetext" => "Wiki software successfully installed.",
"about" => "About",
"aboutwikipedia" => "About Wikipedia",
"aboutpage" => "Wikipedia:About",
"unprotectthispage" => "Unprotect this page",
"newpage" => "New page",
"talkpage" => "Discuss this page",
+"postcomment" => "Post a comment",
"articlepage" => "View article",
"subjectpage" => "View subject", # For compatibility
"userpage" => "View user page",
"viewtalkpage" => "View discussion",
"otherlanguages" => "Other languages",
"redirectedfrom" => "(Redirected from $1)",
-"lastmodified" => "It was last modified $1.",
+"lastmodified" => "This page was last modified $1.",
"viewcount" => "This page has been accessed $1 times.",
"gnunote" => "All text is available under the terms of the <a class=internal href='/wiki/GNU_FDL'>GNU Free Documentation License</a>.",
"printsubtitle" => "(From http://www.wikipedia.org)",
"retrievedfrom" => "Retrieved from \"$1\"",
"newmessages" => "You have $1.",
"newmessageslink" => "new messages",
+"editsection"=>"edit",
+"toc" => "Table of contents",
+"showtoc" => "show",
+"hidetoc" => "hide",
+"thisisdeleted" => "View or restore $1?",
+"restorelink" => "$1 deleted edits",
# Main script and global functions
#
<blockquote><tt>$1</tt></blockquote>
from within function \"<tt>$2</tt>\".
MySQL returned error \"<tt>$3: $4</tt>\".",
-"noconnect" => "Could not connect to DB on $1",
+"dberrortextcl" => "A database query syntax error has occurred.
+The last attempted database query was:
+\"$1\"
+from within function \"$2\".
+MySQL returned error \"$3: $4\".\n",
+"noconnect" => "Sorry! The wiki is experiencing some technical difficulties, and cannot contact the database server.",
"nodb" => "Could not select database $1",
+"cachederror" => "The following is a cached copy of the requested page, and may not be up to date.",
"readonly" => "Database locked",
"enterlockreason" => "Enter a reason for the lock, including an estimate
of when the lock will be released",
an incorrectly linked inter-language or inter-wiki title.",
"perfdisabled" => "Sorry! This feature has been temporarily disabled
because it slows the database down to the point that no one can use
-the wiki. Which is bad. It will be rewritten for efficiency in the near
-future (possibly by you! we're open source after all)",
+the wiki.",
+"perfdisabledsub" => "Here's a saved copy from $1:",
# Login and logout pages
#
"logouttitle" => "User logout",
-"logouttext" => "You are now logged out.
+"logouttext" => "You are now logged out.
You can continue to use Wikipedia anonymously, or you can log in
-again as the same or as a different user.\n",
+again as the same or as a different user. Note that some pages may
+continue to be displayed as if you were still logged in, until you clear
+your browser cache\n",
"welcomecreation" => "<h2>Welcome, $1!</h2><p>Your account has been created.
Don't forget to personalize your wikipedia preferences.",
"userlogin" => "Log in",
"logout" => "Log out",
"userlogout" => "Log out",
+"notloggedin" => "Not logged in",
"createaccount" => "Create new account",
+"createaccountmail" => "by eMail",
"badretype" => "The passwords you entered do not match.",
-"userexists" => "The user name you entered is already in use. Please choosea different name.",
+"userexists" => "The user name you entered is already in use. Please choose a different name.",
"youremail" => "Your e-mail*",
"yournick" => "Your nickname (for signatures)",
"emailforlost" => "* Entering an email address is optional. But it enables people to
# Edit pages
#
"summary" => "Summary",
+"subject" => "Subject/headline",
"minoredit" => "This is a minor edit",
"watchthis" => "Watch this article",
"savearticle" => "Save page",
"blockedtext" => "Your user name or IP address has been blocked by $1.
The reason given is this:<br>''$2''<p>You may contact $1 or one of the other
[[Wikipedia:administrators|administrators]] to discuss the block.",
+"whitelistedittitle" => "Login required to edit",
+"whitelistedittext" => "You have to [[Special:Userlogin|login]] to edit articles.",
+"whitelistreadtitle" => "Login required to read",
+"whitelistreadtext" => "You have to [[Special:Userlogin|login]] to read articles.",
+"whitelistacctitle" => "You are not allowed to create an account",
+"whitelistacctext" => "To be allowed to create accounts in this Wiki you have to [[Special:Userlogin|log]] in and have the appropriate permissions.",
+"accmailtitle" => "Password sent.",
+"accmailtext" => "The Password for '$1' has been sent to $2.",
"newarticle" => "(New)",
"newarticletext" =>
"You've followed a link to a page that doesn't exist yet.
"previewconflict" => "This preview reflects the text in the upper
text editing area as it will appear if you choose to save.",
"editing" => "Editing $1",
+"sectionedit" => " (section)",
+"commentedit" => " (comment)",
"editconflict" => "Edit conflict: $1",
"explainconflict" => "Someone else has changed this page since you
started editing it.
so you will not be able to save your edits right now. You may wish to cut-n-paste
the text into a text file and save it for later.",
"protectedpagewarning" => "WARNING: This page has been locked so that only
-users with sysop priviledges can edit it. Be sure you are following the
+users with sysop privileges can edit it. Be sure you are following the
<a href='/wiki/Wikipedia:Protected_page_guidelines'>protected page
guidelines</a>.",
"nextn" => "next $1",
"viewprevnext" => "View ($1) ($2) ($3).",
"showingresults" => "Showing below <b>$1</b> results starting with #<b>$2</b>.",
+"showingresultsnum" => "Showing below <b>$3</b> results starting with #<b>$2</b>.",
"nonefound" => "<strong>Note</strong>: unsuccessful searches are
often caused by searching for common words like \"have\" and \"from\",
which are not indexed, or by specifying more than one search term (only pages
Search in namespaces :<br>
$1<br>
$2 List redirects Search for $3 $9",
-
+"searchdisabled" => "<p>Sorry! Full text search has been disabled temporarily, for performance reasons. In the meantime, you can use the Google search below, which may be out of date.</p>
+
+<!-- SiteSearch Google -->
+<FORM method=GET action=\"http://www.google.com/search\">
+<TABLE bgcolor=\"#FFFFFF\"><tr><td>
+<A HREF=\"http://www.google.com/\">
+<IMG SRC=\"http://www.google.com/logos/Logo_40wht.gif\"
+border=\"0\" ALT=\"Google\"></A>
+</td>
+<td>
+<INPUT TYPE=text name=q size=31 maxlength=255 value=\"\">
+<INPUT type=submit name=btnG VALUE=\"Google Search\">
+<font size=-1>
+<input type=hidden name=domains value=\"{$wgServer}\"><br><input type=radio name=sitesearch value=\"\"> WWW <input type=radio name=sitesearch value=\"{$wgServer}\" checked> {$wgServer} <br>
+<input type='hidden' name='ie' value='$2'>
+<input type='hidden' name='oe' value='$2'>
+</font>
+</td></tr></TABLE>
+</FORM>
+<!-- SiteSearch Google -->",
+"blanknamespace" => "(Main)",
# Preferences page
#
wfLocalUrl( "Special:Userlogin" ) . "\">logged in</a>
to set user preferences.",
"prefslogintext" => "You are logged in as \"$1\".
-Your internal ID number is $2.",
+Your internal ID number is $2.
+
+See [[Wikipedia:User preferences help]] for help deciphering the options.",
"prefsreset" => "Preferences have been reset from storage.",
"qbsettings" => "Quickbar settings",
"changepassword" => "Change password",
"skin" => "Skin",
"math" => "Rendering math",
+"dateformat" => "Date format",
"math_failure" => "Failed to parse",
"math_unknown_error" => "unknown error",
"math_unknown_function" => "unknown function ",
"savedprefs" => "Your preferences have been saved.",
"timezonetext" => "Enter number of hours your local time differs
from server time (UTC).",
-"localtime" => "Local time",
+"localtime" => "Local time display",
"timezoneoffset" => "Offset",
+"servertime" => "Server time is now",
+"guesstimezone" => "Fill in from browser",
"emailflag" => "Disable e-mail from other users",
+"defaultns" => "Search in these namespaces by default:",
# Recent changes
#
"changes" => "changes",
"recentchanges" => "Recent changes",
-"recentchangestext" => "Track the most recent changes to Wikipedia on this page.
+"recentchangestext" =>
+"Track the most recent changes to Wikipedia on this page.
[[Wikipedia:Welcome,_newcomers|Welcome, newcomers]]!
Please have a look at these pages: [[wikipedia:FAQ|Wikipedia FAQ]],
[[Wikipedia:Policies and guidelines|Wikipedia policy]]
"rcnotefrom" => "Below are the changes since <b>$2</b> (up to <b>$1</b> shown).",
"rclistfrom" => "Show new changes starting from $1",
# "rclinks" => "Show last $1 changes in last $2 hours / last $3 days",
-"rclinks" => "Show last $1 changes in last $2 days.",
+# "rclinks" => "Show last $1 changes in last $2 days.",
+"rclinks" => "Show last $1 changes in last $2 days; $3 minor edits",
"rchide" => "in $4 form; $1 minor edits; $2 secondary namespaces; $3 multiple edits.",
+"rcliu" => "; $1 edits from logged in users",
"diff" => "diff",
"hist" => "hist",
"hide" => "hide",
"uploadnologintext" => "You must be <a href=\"" .
wfLocalUrl( "Special:Userlogin" ) . "\">logged in</a>
to upload files.",
-"uploadfile" => "Upload file",
+"uploadfile" => "Upload images, sounds, documents etc.",
"uploaderror" => "Upload error",
"uploadtext" => "<strong>STOP!</strong> Before you upload here,
make sure to read and follow Wikipedia's <a href=\"" .
",
"filename" => "Filename",
"filedesc" => "Summary",
+"filestatus" => "Copyright status",
+"filesource" => "Source",
"affirmation" => "I affirm that the copyright holder of this file
agrees to license it under the terms of the $1.",
"copyrightpage" => "Wikipedia:Copyrights",
"longpages" => "Long pages",
"listusers" => "User list",
"specialpages" => "Special pages",
-"spheading" => "Special pages",
-"sysopspheading" => "Special pages for sysop use",
-"developerspheading" => "Special pages for developer use",
+"spheading" => "Special pages for all users",
+"sysopspheading" => "For sysop use only",
+"developerspheading" => "For developer use only",
"protectpage" => "Protect page",
"recentchangeslinked" => "Related changes",
"rclsub" => "(to pages linked from \"$1\")",
"debug" => "Debug",
"newpages" => "New pages",
+"ancientpages" => "Oldest articles",
"intl" => "Interlanguage links",
"movethispage" => "Move this page",
"unusedimagestext" => "<p>Please note that other web sites
"watchthispage" => "Watch this page",
"unwatchthispage" => "Stop watching",
"notanarticle" => "Not an article",
+"watchnochange" => "None of your watched items were edited in the time period displayed.",
+"watchdetails" => "($1 pages watched not counting talk pages;
+$2 total pages edited since cutoff;
+$3...
+<a href='$4'>show and edit complete list</a>.)",
+"watchmethod-recent" => "checking recent edits for watched pages",
+"watchmethod-list" => "checking watched pages for recent edits",
+"removechecked" => "Remove checked items from watchlist",
+"watchlistcontains" => "Your watchlist contains $1 pages.",
+"watcheditlist" => "Here's an alphabetical list of your
+watched pages. Check the boxes of pages you want to remove
+from your watchlist and click the 'remove checked' button
+at the bottom of the screen.",
+"removingchecked" => "Removing requested items from watchlist...",
+"couldntremove" => "Couldn't remove item '$1'...",
+"iteminvalidname" => "Problem with item '$1', invalid name...",
+"wlnote" => "Below are the last $1 changes in the last <b>$2</b> hours.",
+"wlshowlast" => "Show last ",
+"wlhours" => " hours",
+"wldays" => " days",
+
# Delete/protect/revert
#
"deletepage" => "Delete page",
"confirm" => "Confirm",
+"excontent" => "content was:",
+"exbeforeblank" => "content before blanking was:",
+"exblank" => "page was empty",
"confirmdelete" => "Confirm delete",
"deletesub" => "(Deleting \"$1\")",
+"historywarning" => "Warning: The page you are about to delete has a history: ",
"confirmdeletetext" => "You are about to permanently delete a page
or image along with all of its history from the database.
Please confirm that you intend to do this, that you understand the
"imagereverted" => "Revert to earlier version was successful.",
"rollback" => "Roll back edits",
"rollbacklink" => "rollback",
-"cantrollback" => "Can't revert edit; last contributor is only author of this article.",
+"rollbackfailed" => "Rollback failed",
+"cantrollback" => "Cannot revert edit; last contributor is only author of this article.",
+"alreadyrolled" => "Cannot rollback last edit of [[$1]]
+by [[User:$2|$2]] ([[User talk:$2|Talk]]); someone else has edited or rolled back the article already.
+
+Last edit was by [[User:$3|$3]] ([[User talk:$3|Talk]]). ",
+# only shown if there is an edit comment
+"editcomment" => "The edit comment was: \"<i>$1</i>\".",
"revertpage" => "Reverted to last edit by $1",
# Undelete
# Block/unblock IP
#
-"blockip" => "Block IP address",
+"blockip" => "Block user",
"blockiptext" => "Use the form below to block write access
-from a specific IP address.
+from a specific IP address or username.
This should be done only only to prevent vandalism, and in
accordance with [[Wikipedia:Policy|Wikipedia policy]].
Fill in a specific reason below (for example, citing particular
pages that were vandalized).",
-"ipaddress" => "IP Address",
+"ipaddress" => "IP Address/username",
"ipbreason" => "Reason",
-"ipbsubmit" => "Block this address",
-"badipaddress" => "The IP address is badly formed.",
+"ipbsubmit" => "Block this user",
+"badipaddress" => "No user exists by that name",
"noblockreason" => "You must supply a reason for the block.",
"blockipsuccesssub" => "Block succeeded",
-"blockipsuccesstext" => "The IP address \"$1\" has been blocked.
+"blockipsuccesstext" => "\"$1\" has been blocked.
<br>See [[Special:Ipblocklist|IP block list]] to review blocks.",
-"unblockip" => "Unblock IP address",
+"unblockip" => "Unblock user",
"unblockiptext" => "Use the form below to restore write access
-to a previously blocked IP address.",
+to a previously blocked IP address or username.",
"ipusubmit" => "Unblock this address",
-"ipusuccess" => "IP address \"$1\" unblocked",
-"ipblocklist" => "List of blocked IP addresses",
+"ipusuccess" => "\"$1\" unblocked",
+"ipblocklist" => "List of blocked IP addresses and usernames",
"blocklistline" => "$1, $2 blocked $3",
"blocklink" => "block",
"unblocklink" => "unblock",
"contribslink" => "contribs",
+"autoblocker" => "Autoblocked because you share an IP address with \"$1\". Reason \"$2\".",
# Developer tools
#
Use single quotes ('like this') to delimit string literals.
This can often add considerable load to the server, so please use
this function sparingly.",
+"sqlislogged" => "Please note that all queries are logged.",
"sqlquery" => "Enter query",
"querybtn" => "Submit query",
"selectonly" => "Queries other than \"SELECT\" are restricted to
"talkpagemoved" => "The corresponding talk page was also moved.",
"talkpagenotmoved" => "The corresponding talk page was <strong>not</strong> moved.",
+"export" => "Export pages",
+"exporttext" => "You can export the text and editing history of a particular
+page or set of pages wrapped in some XML; this can then be imported into another
+wiki running MediaWiki software, transformed, or just kept for your private
+amusement.",
+"exportcuronly" => "Include only the current revision, not the full history",
+
+# Namespace 8 related
+
+"allmessages" => "All_messages",
+"allmessagestext" => "This is a list of all messages available in the MediaWiki: namespace"
);
+#--------------------------------------------------------------------------
+# Internationalisation code
+#--------------------------------------------------------------------------
+
class Language {
function getDefaultUserOptions () {
global $wgMathNamesEn;
return $wgMathNamesEn;
}
+
+ function getDateFormats() {
+ global $wgDateFormatsEn;
+ return $wgDateFormatsEn;
+ }
function getUserToggles() {
global $wgUserTogglesEn;
global $wgMonthNamesEn;
return $wgMonthNamesEn[$key-1];
}
-
+
/* by default we just return base form */
function getMonthNameGen( $key )
{
global $wgMonthNamesEn;
return $wgMonthNamesEn[$key-1];
}
+
+ function getMonthRegex()
+ {
+ global $wgMonthNamesEn;
+ return implode( "|", $wgMonthNamesEn );
+ }
function getMonthAbbreviation( $key )
{
function date( $ts, $adj = false )
{
- global $wgAmericanDates;
- if ( $adj ) { $ts = $this->userAdjust( $ts ); }
+ global $wgAmericanDates, $wgUser, $wgUseDynamicDates;
- if( $wgAmericanDates ) {
+ if ( $adj ) { $ts = $this->userAdjust( $ts ); }
+
+ if ( $wgUseDynamicDates ) {
+ $datePreference = $wgUser->getOption( 'date' );
+ if ( $datePreference == 0 ) {
+ $datePreference = $wgAmericanDates ? 1 : 2;
+ }
+ } else {
+ $datePreference = $wgAmericanDates ? 1 : 2;
+ }
+
+ if ( $datePreference == 1 ) {
+ # MDY
$d = $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) .
" " . (0 + substr( $ts, 6, 2 )) . ", " .
substr( $ts, 0, 4 );
- } else {
+ } else if ( $datePreference == 2 ) {
+ #DMY
$d = (0 + substr( $ts, 6, 2 )) . " " .
$this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) . " " .
substr( $ts, 0, 4 );
+ } else {
+ #YMD
+ $d = substr( $ts, 0, 4 ) . " " . $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) .
+ " " . (0 + substr( $ts, 6, 2 ));
}
+
return $d;
}
function timeanddate( $ts, $adj = false )
{
- return $this->time( $ts, $adj ) . " " . $this->date( $ts, $adj );
+ return $this->time( $ts, $adj ) . ", " . $this->date( $ts, $adj );
}
function rfc1123( $ts )
return $wgAllMessagesEn[$key];
}
+ function getAllMessages()
+ {
+ global $wgAllMessagesEn;
+ return $wgAllMessagesEn;
+ }
+
function iconv( $in, $out, $string ) {
# For most languages, this is a wrapper for iconv
return iconv( $in, $out, $string );
}
}
+ function replaceDates( $text )
+ {
+ global $wgUser, $wgInputEncoding, $wgUseDynamicDates;
+
+ # Feature can be disabled
+ if ( !$wgUseDynamicDates ) {
+ return;
+ }
+
+ # Setup
+
+ $datePreference = $wgUser->getOption( 'date' );
+
+ static $monthNames = "", $rxDM, $rxMD, $rxY, $rxDMY, $rxYDM, $rxMDY, $rxYMD;
+ if ( $monthNames == "" ) {
+ $monthNames = $this->getMonthRegex();
+
+ # Attempt at UTF-8 support, untested at the moment
+ if ( $wgInputEncoding == 'UTF-8' ) {
+ $regexTrail = '(?![a-z])/iu';
+ } else {
+ $regexTrail = '(?![a-z])/i';
+ }
+
+ # Partial regular expressions
+ $prxDM = '\[\[(\d{1,2})[ _](' . $monthNames . ')]]';
+ $prxMD = '\[\[(' . $monthNames . ')[ _](\d{1,2})]]';
+ $prxY = '\[\[(\d{1,4}([ _]BC|))]]';
+
+ # Real regular expressions
+ $rxDMY = "/{$prxDM} *,? *{$prxY}{$regexTrail}";
+ $rxYDM = "/{$prxY} *,? *{$prxDM}{$regexTrail}";
+ $rxMDY = "/{$prxMD} *,? *{$prxY}{$regexTrail}";
+ $rxYMD = "/{$prxY} *,? *{$prxMD}{$regexTrail}";
+ $rxDM = "/{$prxDM}{$regexTrail}";
+ $rxMD = "/{$prxMD}{$regexTrail}";
+ $rxY = "/{$prxY}{$regexTrail}";
+ }
+
+ # Do replacements
+ # TODO: month capitalisation?
+ if ( $datePreference == 0 ) {
+ # no preference
+ $text = preg_replace( $rxDMY, '[[$2 $1|$1 $2]] [[$3]]', $text);
+ $text = preg_replace( $rxYDM, '[[$1]] [[$4 $3]]', $text);
+ $text = preg_replace( $rxMDY, '[[$1 $2]], [[$3]]', $text);
+ $text = preg_replace( $rxYMD, '[[$1]] [[$3 $4]]', $text);
+ $text = preg_replace ( $rxDM, '[[$2 $1|$1 $2]]', $text);
+ } else if ( $datePreference == 1 ) {
+ # MDY preferred
+ $text = preg_replace( $rxDMY, '[[$2 $1]], [[$3]]', $text);
+ $text = preg_replace( $rxYDM, '[[$4 $3]], [[$1]]', $text);
+ $text = preg_replace( $rxMDY, '[[$1 $2]], [[$3]]', $text);
+ $text = preg_replace( $rxYMD, '[[$3 $4]], [[$1]]', $text);
+ $text = preg_replace ( $rxDM, '[[$2 $1]]', $text);
+ } else if ( $datePreference == 2 ) {
+ # DMY preferred
+ $text = preg_replace( $rxDMY, '[[$2 $1|$1 $2]] [[$3]]', $text);
+ $text = preg_replace( $rxYDM, '[[$4 $3|$3 $4]] [[$1]]', $text);
+ $text = preg_replace( $rxMDY, '[[$1 $2|$2 $1]] [[$3]]', $text);
+ $text = preg_replace( $rxYMD, '[[$3 $4|$4 $3]] [[$1]]', $text);
+ $text = preg_replace ( $rxDM, '[[$2 $1|$1 $2]]', $text);
+ $text = preg_replace ( $rxMD, '[[$1 $2|$2 $1]]', $text);
+ } else if ( $datePreference == 3 ) {
+ # YMD preferred
+ $text = preg_replace( $rxDMY, '[[$3]] [[$2 $1]]', $text);
+ $text = preg_replace( $rxYDM, '[[$1]] [[$4 $3]]', $text);
+ $text = preg_replace( $rxMDY, '[[$3]] [[$1 $2]]', $text);
+ $text = preg_replace( $rxYMD, '[[$1]] [[$3 $4]]', $text);
+ $text = preg_replace ( $rxDM, '[[$2 $1]]', $text);
+ }
+ return $text;
+ }
+
+ # For right-to-left language support
+ function isRTL() { return false; }
+
+ function getMagicWords()
+ {
+ global $wgMagicWordsEn;
+ return $wgMagicWordsEn;
+ }
+
+ # Fill a MagicWord object with data from here
+ function getMagic( &$mw )
+ {
+ $raw = $this->getMagicWords(); # don't worry, it's reference counted not deep copy
+ $rawEntry = $raw[$mw->mId];
+ $mw->mCaseSensitive = $rawEntry[0];
+ $mw->mSynonyms = array_slice( $rawEntry, 1 );
+ }
}
global $IP;
-@include_once( "$IP/Language" . ucfirst( $wgLanguageCode ) . ".php" );
+@include_once( "{$IP}/Language" . ucfirst( $wgLanguageCode ) . ".php" );
?>