change "Invert" to "Invert selection" to be a little less ambiguous about
[lhc/web/wiklou.git] / languages / Language.php
index a173a1f..132af1b 100644 (file)
@@ -714,13 +714,13 @@ The upper text area contains the page text as it currently exists.
 Your changes are shown in the lower text area.
 You will have to merge your changes into the existing text.
 <b>Only</b> the text in the upper text area will be saved when you
-press \"Save page\".\n<p>",
+press \"Save page\".<br />",
 'yourtext'             => 'Your text',
 'storedversion' => 'Stored version',
 'nonunicodebrowser' => "<strong>WARNING: Your browser is not unicode compliant, please change it before editing an article.</strong>",
 'editingold'   => "<strong>WARNING: You are editing an out-of-date
 revision of this page.
-If you save it, any changes made since this revision will be lost.</strong>\n",
+If you save it, any changes made since this revision will be lost.</strong>",
 'yourdiff'             => 'Differences',
 'copyrightwarning' => "Please note that all contributions to {{SITENAME}} are
 considered to be released under the $2 (see $1 for details).
@@ -735,16 +735,13 @@ If you don't want your writing to be edited mercilessly, then don't submit it he
 You are also promising us that you wrote this yourself, or copied it from a
 public domain or similar free resource (see $1 for details).
 <strong>DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!</strong>",
-'longpagewarning' => "WARNING: This page is $1 kilobytes long; some
+'longpagewarning' => "<strong>WARNING: This page is $1 kilobytes long; some
 browsers may have problems editing pages approaching or longer than 32kb.
-Please consider breaking the page into smaller sections.",
-'readonlywarning' => 'WARNING: The database has been locked for maintenance,
+Please consider breaking the page into smaller sections.</strong>",
+'readonlywarning' => '<strong>WARNING: The database has been locked for maintenance,
 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 privileges can edit it. Be sure you are following the
-<a href='$wgScript/Project:Protected_page_guidelines'>protected page
-guidelines</a>.",
+the text into a text file and save it for later.</strong>',
+'protectedpagewarning' => "<strong>WARNING:  This page has been locked so that only users with sysop privileges can edit it. Be sure you are following the [[Project:Protected_page_guidelines|protected page guidelines]].</strong>",
 'templatesused'        => 'Templates used on this page:',
 
 # History pages
@@ -814,32 +811,22 @@ containing all of the search terms will appear in the result).",
 Search in namespaces :<br />
 $1<br />
 $2 List redirects &nbsp; Search for $3 $9",
-"searchdisabled" => '<p style="margin: 1.5em 2em 1em">{{SITENAME}} search is disabled for performance reasons. You can search via Google in the meantime.
-<span style="font-size: 89%; display: block; margin-left: .2em">Note that their indexes of {{SITENAME}} content may be out of date.</span></p>',
+"searchdisabled" => '{{SITENAME}} search is disabled. You can search via Google in the meantime. Note that their indexes of {{SITENAME}} content may be out of date.',
 
 'googlesearch' => '
-<div style="margin-left: 2em">
-
-<!-- Google search -->
-<div style="width:130px;float:left;text-align:center;position:relative;top:-8px"><a href="http://www.google.com/" style="padding:0;background-image:none"><img src="http://www.google.com/logos/Logo_40wht.gif" alt="Google" style="border:none" /></a></div>
-
-<form method="get" action="http://www.google.com/search" style="margin-left:135px">
-  <div>
+<form method="get" action="http://www.google.com/search" id="googlesearch">
     <input type="hidden" name="domains" value="{{SERVER}}" />
     <input type="hidden" name="num" value="50" />
     <input type="hidden" name="ie" value="$2" />
     <input type="hidden" name="oe" value="$2" />
     
     <input type="text" name="q" size="31" maxlength="255" value="$1" />
-    <input type="submit" name="btnG" value="Google Search" />
-  </div>
-  <div style="font-size:90%">
+    <input type="submit" name="btnG" value="$3" />
+  <div>
     <input type="radio" name="sitesearch" id="gwiki" value="{{SERVER}}" checked="checked" /><label for="gwiki">{{SITENAME}}</label>
     <input type="radio" name="sitesearch" id="gWWW" value="" /><label for="gWWW">WWW</label>
   </div>
-</form>
-
-</div>',
+</form>',
 'blanknamespace' => '(Main)',
 
 # Preferences page
@@ -870,8 +857,8 @@ See [[Project:User preferences help]] for help deciphering the options.",
 'prefs-personal' => 'User data',
 'prefs-rc' => 'Recent changes & stubs',
 'prefs-misc' => 'Misc',
-'saveprefs'            => 'Save preferences',
-'resetprefs'   => 'Reset preferences',
+'saveprefs'            => 'Save',
+'resetprefs'   => 'Reset',
 'oldpassword'  => 'Old password',
 'newpassword'  => 'New password',
 'retypenew'            => 'Again',
@@ -883,7 +870,7 @@ See [[Project:User preferences help]] for help deciphering the options.",
 'contextlines' => 'Lines per hit',
 'contextchars' => 'Context per line',
 'stubthreshold' => 'Threshold for stub display',
-'recentchangescount' => 'Number of titles in recent changes',
+'recentchangescount' => 'Titles in recent changes',
 'savedprefs'   => 'Your preferences have been saved.',
 'timezonelegend' => 'Time zone',
 'timezonetext' => 'The number of hours your local time differs from server time (UTC).',
@@ -900,31 +887,55 @@ See [[Project:User preferences help]] for help deciphering the options.",
 #
 
 # switching pan
-'grouplevels-lookup-group' => 'Manage group rights',
-'grouplevels-group-edit' => 'Existing groups: ',
+'groups-lookup-group' => 'Manage group rights',
+'groups-group-edit' => 'Existing groups: ',
 'editgroup' => 'Edit Group',
 'addgroup' => 'Add Group',
 
-'userlevels-lookup-user' => 'Manage user groups',
-'userlevels-user-editname' => 'Enter a username: ',
+'userrights-lookup-user' => 'Manage user groups',
+'userrights-user-editname' => 'Enter a username: ',
 'editusergroup' => 'Edit User Groups',
 
 # group editing
-'grouplevels-editgroup' => 'Edit group',
-'grouplevels-addgroup' => 'Add group',
-'grouplevels-editgroup-name' => 'Group name: ',
-'grouplevels-editgroup-description' => 'Group description (max 255 characters):<br />',
-'savegroup' => 'Save Group',
+'groups-editgroup'          => 'Edit group',
+'groups-addgroup'           => 'Add group',
+'groups-editgroup-preamble' => 'If the name or description starts with a colon, the 
+remainder will be treated as a message name, and hence the text will be localised 
+using the MediaWiki namespace',
+'groups-editgroup-name'     => 'Group name: ',
+'groups-editgroup-description' => 'Group description (max 255 characters):<br />',
+'savegroup'                 => 'Save Group',
+'groups-tableheader'        => 'ID || Name || Description || Rights',
+'groups-existing'           => 'Existing groups',
+'groups-noname'             => 'Please specify a valid group name',
+'groups-already-exists'     => 'A group of that name already exists',
+'addgrouplogentry'          => 'Added group $2',
+'changegrouplogentry'       => 'Changed group $2',
+'renamegrouplogentry'       => 'Renamed group $2 to $3',
 
 # user groups editing
 #
-'userlevels-editusergroup' => 'Edit user groups',
+'userrights-editusergroup' => 'Edit user groups',
 'saveusergroups' => 'Save User Groups',
-'userlevels-groupsmember' => 'Member of:',
-'userlevels-groupsavailable' => 'Available groups:',
-'userlevels-groupshelp' => 'Select groups you want the user to be removed from or added to.
+'userrights-groupsmember' => 'Member of:',
+'userrights-groupsavailable' => 'Available groups:',
+'userrights-groupshelp' => 'Select groups you want the user to be removed from or added to.
 Unselected groups will not be changed. You can deselect a group with CTRL + Left Click',
 
+# Default group names and descriptions
+# 
+'group-anon-name'       => 'Anonymous',
+'group-anon-desc'       => 'Anonymous users',
+'group-loggedin-name'   => 'User',
+'group-loggedin-desc'   => 'General logged in users',
+'group-admin-name'      => 'Administrator',
+'group-admin-desc'      => 'Trusted users able to block users and delete articles',
+'group-bureaucrat-name' => 'Bureaucrat',
+'group-bureaucrat-desc' => 'The bureaucrat group is able to make sysops',
+'group-steward-name'    => 'Steward',
+'group-steward-desc'    => 'Full access',
+
+
 # Recent changes
 #
 'changes' => 'changes',
@@ -1057,12 +1068,8 @@ this old version, (rev) = revert to this old version.
 'nolinkstoimage' => 'There are no pages that link to this image.',
 'sharedupload' => 'This file is a shared upload and may be used by other projects.',
 'shareduploadwiki' => 'Please see the [$1 image description page] for further information.',
-'noimage'       => "No image by this name exists.
-
-<div class=\"editExternally\">
-'''[$1 Upload this image]'''
-</div>",
-'uploadnewversion' => "[$1 Upload a new version of this image]",
+'noimage'       => 'No file by this name exists, you can [$1 upload it]',
+'uploadnewversion' => '[$1 Upload a new version of this file]',
 
 # Statistics
 #
@@ -1154,8 +1161,8 @@ in active use.</p>',
 'booksources'  => 'Book sources',
 'categoriespagetext' => 'The following categories exist in the wiki.',
 'data' => 'Data',
-'userlevels' => 'User rights management',
-'grouplevels' => 'User group management',
+'userrights' => 'User rights management',
+'groups' => 'User groups',
 
 # FIXME: Other sites, of course, may have affiliate relations with the booksellers list
 'booksourcetext' => "Below is a list of links to other sites that
@@ -1174,22 +1181,7 @@ You can narrow down the view by selecting a log type, the user name, or the affe
 
 # Special:Allpages
 'nextpage'          => 'Next page ($1)',
-'articlenamespace'  => '(articles)',
-'allpagesformtext' => '
-<table border="0">
-       <tr>
-               <td align="right">Display pages starting at:</td>
-               <td align="left">$1</td>
-       </tr>
-       <tr>
-               <td align="right">Namespace:</td>
-               <td align="left">$2 $3</td>
-       </tr>
-       <tr>
-               <td align="right">$4</td>
-               <td align="left">Invert</td>
-       </tr>
-</table>',
+'allpagesfrom'         => 'Display pages starting at:',
 'allarticles'          => 'All articles',
 'allnonarticles'       => 'All non-articles',
 'allinnamespace'       => 'All pages ($1 namespace)',
@@ -1376,22 +1368,15 @@ will not be automatically replaced.',
 'undeletedtext'   => "[[$1]] has been successfully restored.
 See [[Special:Log/delete]] for a record of recent deletions and restorations.",
 
+# Namespace form on various pages
+'namespace' => 'Namespace:',
+'invert' => 'Invert selection',
+
 # Contributions
 #
 'contributions' => 'User contributions',
 'mycontris'     => 'My contributions',
 'contribsub'    => "For $1",
-'contributionsformtext' => '
-<table border="0">
-        <tr>
-                <td align="right">Namespace:</td>
-                <td align="left">$1 $2</td>
-        </tr>
-       <tr>
-               <td align="right">$3</td>
-               <td>Invert</td>
-       </tr>
-</table>',
 'nocontribs'    => 'No changes were found matching these criteria.',
 'ucnote'        => "Below are this user's last <b>$1</b> changes in the last <b>$2</b> days.",
 'uclinks'       => "View the last $1 changes; view the last $2 days.",
@@ -1424,7 +1409,6 @@ pages that were vandalized).",
 'ipbreason'            => 'Reason',
 'ipbsubmit'            => 'Block this user',
 'badipaddress' => 'Invalid IP address',
-'noblockreason' => 'You must supply a reason for the block.',
 'blockipsuccesssub' => 'Block succeeded',
 'blockipsuccesstext' => "\"$1\" has been blocked.
 <br />See [[Special:Ipblocklist|IP block list]] to review blocks.",
@@ -1850,7 +1834,125 @@ ta[\'ca-nstab-category\'] = new Array(\'c\',\'View the category page\');
 'passwordtooshort' => 'Your password is too short. It must have at least $1 characters.',
 
 # Exif data
-'exifdata' => 'Metadata',
+'metadata' => 'Metadata',
+# Exif tags
+'exif-imagewidth' =>'Image width',
+'exif-imagelength' =>'Image height',
+'exif-bitspersample' =>'Number of bits per component',
+'exif-compression' =>'Compression scheme',
+'exif-photometricinterpretation' =>'Pixel composition',
+'exif-orientation' =>'Orientation of image',
+'exif-samplesperpixel' =>'Number of components',
+'exif-planarconfiguration' =>'Image data arrangement',
+'exif-ycbcrsubsampling' =>'Subsampling ratio of Y to C',
+'exif-ycbcrpositioning' =>'Y and C positioning',
+'exif-xresolution' =>'Image resolution in width direction',
+'exif-yresolution' =>'Image resolution in height direction',
+'exif-resolutionunit' =>'Unit of X and Y resolution',
+'exif-stripoffsets' =>'Image data location',
+'exif-rowsperstrip' =>'Number of rows per strip',
+'exif-stripbytecounts' =>'Bytes per compressed strip',
+'exif-jpeginterchangeformat' =>'Offset to JPEG SOI',
+'exif-jpeginterchangeformatlength' =>'Bytes of JPEG data',
+'exif-transferfunction' =>'Transfer function',
+'exif-whitepoint' =>'White point chromaticity',
+'exif-primarychromaticities' =>'Chromaticities of primarities',
+'exif-ycbcrcoefficients' =>'Color space transformation matrix coefficients',
+'exif-referenceblackwhite' =>'Pair of black and white reference values',
+'exif-datetime' =>'File change date and time',
+'exif-imagedescription' =>'Image title',
+'exif-make' =>'Image input equipment manufacturer',
+'exif-model' =>'Image input equipment model',
+'exif-software' =>'Software used',
+'exif-artist' =>'Person who created the image',
+'exif-copyright' =>'Copyright holder',
+'exif-exifversion' =>'Exif version',
+'exif-flashpixversion' =>'Supported Flashpix version',
+'exif-colorspace' =>'Color space information',
+'exif-componentsconfiguration' =>'Meaning of each component',
+'exif-compressedbitsperpixel' =>'Image compression mode',
+'exif-pixelydimension' =>'Valid image width',
+'exif-pixelxdimension' =>'Valind image height',
+'exif-makernote' =>'Manufacturer notes',
+'exif-usercomment' =>'User comments',
+'exif-relatedsoundfile' =>'Related audio file',
+'exif-datetimeoriginal' =>'Date and time of original data generation',
+'exif-datetimedigitized' =>'Date and time of original data generation',
+'exif-subsectime' =>'DateTime subseconds',
+'exif-subsectimeoriginal' =>'DateTimeOriginal subseconds',
+'exif-subsectimedigitized' =>'DateTimeDigitized subseconds',
+'exif-exposuretime' =>'Exposure time',
+'exif-fnumber' =>'F Number',
+'exif-exposureprogram' =>'Exposure Program',
+'exif-spectralsensitivity' =>'Spectral sensitivity',
+'exif-isospeedratings' =>'ISO speed rating',
+'exif-oecf' =>'Optoelectronic conversion factor',
+'exif-shutterspeedvalue' =>'Shutter speed',
+'exif-aperturevalue' =>'Aperture',
+'exif-brightnessvalue' =>'Brightness',
+'exif-exposurebiasvalue' =>'Exposure bias',
+'exif-maxaperturevalue' =>'Maximum land aperture',
+'exif-subjectdistance' =>'Subject distance',
+'exif-meteringmode' =>'Metering mode',
+'exif-lightsource' =>'Light source',
+'exif-flash' =>'Flash',
+'exif-focallength' =>'Lens focal length',
+'exif-subjectarea' =>'Subject area',
+'exif-flashenergy' =>'Flash energy',
+'exif-spatialfrequencyresponse' =>'Spatial frequency response',
+'exif-focalplanexresolution' =>'Focal plane X resolution',
+'exif-focalplaneyresolution' =>'Focal plane Y resolution',
+'exif-focalplaneresolutionunit' =>'Focal plane resolution unit',
+'exif-subjectlocation' =>'Subject location',
+'exif-exposureindex' =>'Exposure index',
+'exif-sensingmethod' =>'Sensing method',
+'exif-filesource' =>'File source',
+'exif-scenetype' =>'Scene type',
+'exif-cfapattern' =>'CFA pattern',
+'exif-customrendered' =>'Custom image processing',
+'exif-exposuremode' =>'Exposure mode',
+'exif-whitebalance' =>'White Balance',
+'exif-digitalzoomratio' =>'Digital zoom ration',
+'exif-focallengthin35mmfilm' =>'Focal length in 35 mm film',
+'exif-scenecapturetype' =>'Scene capture type',
+'exif-gaincontrol' =>'Scene control',
+'exif-contrast' =>'Contrast',
+'exif-saturation' =>'Saturation',
+'exif-sharpness' =>'Sharpness',
+'exif-devicesettingdescription' =>'Desice settings description',
+'exif-subjectdistancerange' =>'Subject distance range',
+'exif-imageuniqueid' =>'Unique image ID',
+'exif-gpsversionid' =>'GPS tag version',
+'exif-gpslatituderef' =>'North or South Latitude',
+'exif-gpslatitude' =>'Latitude',
+'exif-gpslongituderef' =>'East or West Longitude',
+'exif-gpslongitude' =>'Longitude',
+'exif-gpsaltituderef' =>'Altitude reference',
+'exif-gpsaltitude' =>'Altitude',
+'exif-gpstimestamp' =>'GPS time (atomic clock)',
+'exif-gpssatellites' =>'Satellites used for measurement',
+'exif-gpsstatus' =>'Receiver status',
+'exif-gpsmeasuremode' =>'Measurement mode',
+'exif-gpsdop' =>'Measurement precision',
+'exif-gpsspeedref' =>'Speed unit',
+'exif-gpsspeed' =>'Speed of GPS receiver',
+'exif-gpstrackref' =>'Reference for direction of movement',
+'exif-gpstrack' =>'Direction of movement',
+'exif-gpsimgdirectionref' =>'Reference for direction of image',
+'exif-gpsimgdirection' =>'Direction of image',
+'exif-gpsmapdatum' =>'Geodetic survey data used',
+'exif-gpsdestlatituderef' =>'Reference for latitude of destination',
+'exif-gpsdestlatitude' =>'Latitude destination',
+'exif-gpsdestlongituderef' =>'Reference for longitude of destination',
+'exif-gpsdestlongitude' =>'Longitude of destination',
+'exif-gpsdestbearingref' =>'Reference for bearing of destination',
+'exif-gpsdestbearing' =>'Bearing of destination',
+'exif-gpsdestdistanceref' =>'Reference for distance to destination',
+'exif-gpsdestdistance' =>'Distance to destination',
+'exif-gpsprocessingmethod' =>'Name of GPS processing method',
+'exif-gpsareainformation' =>'Name of GPS area',
+'exif-gpsdatestamp' =>'GPS date',
+'exif-gpsdifferential' =>'GPS differential correction',
 
 # external editor support
 'edit-externally' => 'Edit this file using an external application',
@@ -1903,6 +2005,8 @@ class fakeConverter {
        function getExtraHashOptions() {return '';}
        function getParsedTitle() {return '';}
        function markNoConversion($text) {return $text;}
+       function convertCategoryKey( $key ) {return $key; }
+
 }
 
 #--------------------------------------------------------------------------
@@ -1961,7 +2065,23 @@ class Language {
                global $wgNamespaceNamesEn;
                return $wgNamespaceNamesEn;
        }
-       
+
+       /**
+        * A convenience function that returns the same thing as
+        * getNamespaces() except with the array values changed to ' '
+        * where it found '_', useful for producing output to be displayed
+        * e.g. in <select> forms.
+        *
+        * @return array
+        */
+       function getFormattedNamespaces() {
+               $ns = $this->getNamespaces();
+               foreach($ns as $k => $v) {
+                       $ns[$k] = strtr($v, '_', ' ');
+               }
+               return $ns;
+       }
+
        /**
         * Get a namespace value by key
         * <code>
@@ -1976,7 +2096,18 @@ class Language {
                global $wgNamespaceNamesEn;
                return $wgNamespaceNamesEn[$index];
        }
-       
+       /**
+        * A convenience function that returns the same thing as
+        * getNsText() except with '_' changed to ' ', useful for
+        * producing output.
+        *
+        * @return array
+        */
+       function getFormattedNsText( $index ) {
+               $ns = $this->getNsText( $index );
+               return strtr($ns, '_', ' ');
+       }
+
        /**
         * Get a namespace key by value
         *
@@ -1994,13 +2125,12 @@ class Language {
 
        /**
         * short names for language variants used for language conversion links. 
-        * so far only used by zh
         *
         * @param string $code
         * @return string
         */
        function getVariantname( $code ) {
-               return wfMsg( 'variantname-' . $code );
+               return wfMsg( "variantname-$code" );
        }
 
        function specialPage( $name ) {
@@ -2038,7 +2168,7 @@ class Language {
        }
 
        function getUserToggle( $tog ) {
-               return wfMsg('tog-'.$tog);
+               return wfMsg( "tog-$tog" );
        }
 
        function getLanguageNames() {
@@ -2371,6 +2501,7 @@ class Language {
 
        /**
         * For right-to-left language support
+        *
         * @return bool
         */
        function isRTL() { return false; }
@@ -2404,10 +2535,12 @@ class Language {
         * Italic is unsuitable for some languages
         *
         * @access public
+        *
         * @param string $text The text to be emphasized.
+        * @return string
         */
        function emphasize( $text ) {
-               return '<em>'.$text.'</em>';
+               return "<em>$text</em>";
        }
 
        /**
@@ -2529,10 +2662,14 @@ class Language {
        }
 
        # convert text to different variants of a language.
-       function convert( $text , $isTitle=false) {
+       function convert( $text, $isTitle = false) {
                return $this->mConverter->convert($text, $isTitle);
        }
 
+       function convertCategoryKey( $key ) {
+               return $this->mConverter->convertCategoryKey( $key );
+       }
+
        /**
         * get the list of variants supported by this langauge
         * see sample implementation in LanguageZh.php