* (bug 18121) maintenance/deleteArchivedRevisions.php no longer deletes
revisions when --delete is not passed
* (bug 13172) GPS coordinates in image Exif data are now actually displayed
+* Overhaul of preferences system, includes the following bug fixes:
+ * (bug 5363) Changes to default preferences now impact registered users.
+ * (bug 14806) Hook to enable putting preferences in existing tabs.
+ * (bug 17191) Registration date now listed on preferences page.
+ * Note that this change will break some extensions which have not been adapted
+ for it.
== API changes in 1.15 ==
* (bug 16858) Revamped list=deletedrevs to make listing deleted contributions
$url: string value as output (out parameter, can modify)
$query: query options passed to Title::getLocalURL()
+'GetPreferences': modify user preferences
+$user: User whose preferences are being modified.
+&$preferences: Preferences description array, to be fed to an HTMLForm object
+
'getUserPermissionsErrors': Add a permissions error when permissions errors are
checked for. Use instead of userCan for most cases. Return false if the
user can't do it, and populate $result with the reason in the form of
$ip: User's IP address
&$blocked: Whether the user is blocked, to be modified by the hook
+'UserLoadAfterLoadFromSession': called to authenticate users on external/environmental means; occurs after session is loaded
+$user: user object being loaded
+
'UserLoadDefaults': called when loading a default user
$user: user object
$name: user name
$user: user object being loaded
&$result: set this to a boolean value to abort the normal authentification process
-'UserLoadAfterLoadFromSession': called to authenticate users on external/environmental means; occurs after session is loaded
-$user: user object being loaded
+'UserLoadOptions': when user options/preferences are being loaded from the database.
+$user: User object
+&$options: Options, can be modified.
'UserLoginComplete': after a user has logged in
$user: the user object that was created on login
'UserSaveSettings': called when saving user settings
$user: User object
+'UserSaveOptions': Called just before saving user preferences/options.
+$user: User object
+&$options: Options, modifiable
+
'UserSetCookies': called when setting user cookies
$user: User object
&$session: session array, will be added to $_SESSION
'HTMLCacheUpdate' => 'includes/HTMLCacheUpdate.php',
'HTMLCacheUpdateJob' => 'includes/HTMLCacheUpdate.php',
'HTMLFileCache' => 'includes/HTMLFileCache.php',
+ 'HTMLForm' => 'includes/HTMLForm.php',
'Http' => 'includes/HttpFunctions.php',
'IEContentAnalyzer' => 'includes/IEContentAnalyzer.php',
'ImageGallery' => 'includes/ImageGallery.php',
'PatrolLog' => 'includes/PatrolLog.php',
'PostgresSearchResult' => 'includes/SearchPostgres.php',
'PostgresSearchResultSet' => 'includes/SearchPostgres.php',
+ 'Preferences' => 'includes/Preferences.php',
'PrefixSearch' => 'includes/PrefixSearch.php',
'Profiler' => 'includes/Profiler.php',
'ProfilerSimple' => 'includes/ProfilerSimple.php',
'PageArchive' => 'includes/specials/SpecialUndelete.php',
'SpecialResetpass' => 'includes/specials/SpecialResetpass.php',
'PopularPagesPage' => 'includes/specials/SpecialPopularpages.php',
- 'PreferencesForm' => 'includes/specials/SpecialPreferences.php',
+ 'PreferencesForm' => 'includes/Preferences.php',
'RandomPage' => 'includes/specials/SpecialRandompage.php',
'SpecialRevisionDelete' => 'includes/specials/SpecialRevisiondelete.php',
'RevisionDeleter' => 'includes/specials/SpecialRevisiondelete.php',
'SpecialImport' => 'includes/specials/SpecialImport.php',
'SpecialListGroupRights' => 'includes/specials/SpecialListgrouprights.php',
'SpecialMostlinkedtemplates' => 'includes/specials/SpecialMostlinkedtemplates.php',
+ 'SpecialPreferences' => 'includes/specials/SpecialPreferences.php',
'SpecialPrefixindex' => 'includes/specials/SpecialPrefixindex.php',
'SpecialRandomredirect' => 'includes/specials/SpecialRandomredirect.php',
'SpecialRecentchanges' => 'includes/specials/SpecialRecentchanges.php',
* to ensure that client-side caches don't keep obsolete copies of global
* styles.
*/
-$wgStyleVersion = '212';
+$wgStyleVersion = '213';
# Server-side caching:
'watchdeletion' => 0,
'noconvertlink' => 0,
'gender' => 'unknown',
+ 'ccmeonemails' => 0,
);
/** Whether or not to allow and use real name fields. Defaults to true. */
$name = preg_replace ( "/[^".Title::legalChars()."]|:/", '-', $name );
return $name;
}
+
+/**
+ * Insert array into another array after the specified *KEY*
+ * @param array $array The array.
+ * @param array $insert The array to insert.
+ * @param mixed $after The key to insert after
+ */
+function wfArrayInsertAfter( $array, $insert, $after ) {
+ // Find the offset of the element to insert after.
+ $keys = array_keys($array);
+ $offsetByKey = array_flip( $keys );
+
+ $offset = $offsetByKey[$after];
+
+ // Insert at the specified offset
+ $before = array_slice( $array, 0, $offset + 1, true );
+ $after = array_slice( $array, $offset + 1, count($array)-$offset, true );
+
+ $output = $before + $insert + $after;
+
+ return $output;
+}
--- /dev/null
+<?php
+
+class HTMLForm {
+
+ static $jsAdded = false;
+
+ /* The descriptor is an array of arrays.
+ i.e. array(
+ 'fieldname' => array( 'section' => 'section/subsection',
+ properties... ),
+ ...
+ )
+ */
+
+ static $typeMappings = array(
+ 'text' => 'HTMLTextField',
+ 'select' => 'HTMLSelectField',
+ 'radio' => 'HTMLRadioField',
+ 'multiselect' => 'HTMLMultiSelectField',
+ 'check' => 'HTMLCheckField',
+ 'toggle' => 'HTMLCheckField',
+ 'int' => 'HTMLIntField',
+ 'info' => 'HTMLInfoField',
+ 'selectorother' => 'HTMLSelectOrOtherField',
+ );
+
+ function __construct( $descriptor, $messagePrefix ) {
+ $this->mMessagePrefix = $messagePrefix;
+
+ // Expand out into a tree.
+ $loadedDescriptor = array();
+ $this->mFlatFields = array();
+
+ foreach( $descriptor as $fieldname => $info ) {
+ $section = '';
+ if ( isset( $info['section'] ) )
+ $section = $info['section'];
+
+ $info['name'] = $fieldname;
+
+ $field = $this->loadInputFromParameters( $info );
+ $field->mParent = $this;
+
+ $setSection =& $loadedDescriptor;
+ if ($section) {
+ $sectionParts = explode( '/', $section );
+
+ while( count($sectionParts) ) {
+ $newName = array_shift( $sectionParts );
+
+ if ( !isset($setSection[$newName]) ) {
+ $setSection[$newName] = array();
+ }
+
+ $setSection =& $setSection[$newName];
+ }
+ }
+
+ $setSection[$fieldname] = $field;
+ $this->mFlatFields[$fieldname] = $field;
+ }
+
+ $this->mFieldTree = $loadedDescriptor;
+
+ $this->mShowReset = true;
+ }
+
+ static function addJS() {
+ if (self::$jsAdded) return;
+
+ global $wgOut, $wgStylePath;
+
+ $wgOut->addScriptFile( "$wgStylePath/common/htmlform.js" );
+ }
+
+ static function loadInputFromParameters( $descriptor ) {
+ if ( isset( $descriptor['class'] ) ) {
+ $class = $descriptor['class'];
+ } elseif ( isset( $descriptor['type'] ) ) {
+ $class = self::$typeMappings[$descriptor['type']];
+ $descriptor['class'] = $class;
+ }
+
+ if (!$class) {
+ throw new MWException( "Descriptor with no class: ".print_r( $descriptor, true ) );
+ }
+
+ $obj = new $class( $descriptor );
+
+ return $obj;
+ }
+
+ function show() {
+ $html = '';
+
+ self::addJS();
+
+ // Load data from the request.
+ $this->loadData();
+
+ // Try a submission
+ global $wgUser, $wgRequest;
+ $editToken = $wgRequest->getVal( 'wpEditToken' );
+
+ $result = false;
+ if ( $wgUser->matchEditToken( $editToken ) )
+ $result = $this->trySubmit();
+
+ if ($result === true)
+ return $result;
+
+ // Display form.
+ $this->displayForm( $result );
+ }
+
+ /** Return values:
+ * TRUE == Successful submission
+ * FALSE == No submission attempted
+ * Anything else == Error to display.
+ */
+ function trySubmit() {
+ // Check for validation
+ foreach( $this->mFlatFields as $fieldname => $field ) {
+ if ( !empty($field->mParams['nodata']) ) continue;
+ if ( $field->validate( $this->mFieldData[$fieldname],
+ $this->mFieldData ) !== true ) {
+ return isset($this->mValidationErrorMessage) ?
+ $this->mValidationErrorMessage : array( 'htmlform-invalid-input' );
+ }
+ }
+
+ $callback = $this->mSubmitCallback;
+
+ $data = $this->filterDataForSubmit( $this->mFieldData );
+
+ $res = call_user_func( $callback, $data );
+
+ return $res;
+ }
+
+ function setSubmitCallback( $cb ) {
+ $this->mSubmitCallback = $cb;
+ }
+
+ function setValidationErrorMessage( $msg ) {
+ $this->mValidationErrorMessage = $msg;
+ }
+
+ function displayForm( $submitResult ) {
+ global $wgOut;
+
+ if ( $submitResult !== false ) {
+ $this->displayErrors( $submitResult );
+ }
+
+ $html = $this->getBody();
+
+ // Hidden fields
+ $html .= $this->getHiddenFields();
+
+ // Buttons
+ $html .= $this->getButtons();
+
+ $html = $this->wrapForm( $html );
+
+ $wgOut->addHTML( $html );
+ }
+
+ function wrapForm( $html ) {
+ return Xml::tags( 'form',
+ array(
+ 'action' => $this->getTitle()->getFullURL(),
+ 'method' => 'post',
+ ),
+ $html );
+ }
+
+ function getHiddenFields() {
+ global $wgUser;
+ $html = '';
+
+ $html .= Xml::hidden( 'wpEditToken', $wgUser->editToken() ) . "\n";
+ $html .= Xml::hidden( 'title', $this->getTitle() ) . "\n";
+
+ return $html;
+ }
+
+ function getButtons() {
+ $html = '';
+
+ $attribs = array();
+
+ if ( isset($this->mSubmitID) )
+ $attribs['id'] = $this->mSubmitID;
+
+ $attribs['class'] = 'mw-htmlform-submit';
+
+ $html .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
+
+ if ($this->mShowReset) {
+ $html .= Xml::element( 'input',
+ array( 'type' => 'reset',
+ 'value' => wfMsg('htmlform-reset')
+ ) ) . "\n";
+ }
+
+ return $html;
+ }
+
+ function getBody() {
+ return $this->displaySection( $this->mFieldTree );
+ }
+
+ function displayErrors( $errors ) {
+ if ( is_array( $errors ) ) {
+ $errorstr = $this->formatErrors( $errors );
+ } else {
+ $errorstr = $errors;
+ }
+
+ $errorstr = Xml::tags( 'div', array( 'class' => 'error' ), $errorstr );
+
+ global $wgOut;
+ $wgOut->addHTML( $errorstr );
+ }
+
+ static function formatErrors( $errors ) {
+ $errorstr = '';
+ foreach ( $errors as $error ) {
+ if (is_array($error)) {
+ $msg = array_shift($error);
+ } else {
+ $msg = $error;
+ $error = array();
+ }
+ $errorstr .= Xml::tags( 'li',
+ null,
+ wfMsgExt( $msg, array( 'parseinline' ), $error )
+ );
+ }
+
+ $errorstr = Xml::tags( 'ul', null, $errorstr );
+
+ return $errorstr;
+ }
+
+ function setSubmitText( $t ) {
+ $this->mSubmitText = $t;
+ }
+
+ function getSubmitText() {
+ return isset($this->mSubmitText) ? $this->mSubmitText : wfMsg('htmlform-submit');
+ }
+
+ function setSubmitID( $t ) {
+ $this->mSubmitID = $t;
+ }
+
+ function setMessagePrefix( $p ) {
+ $this->mMessagePrefix = $p;
+ }
+
+ function setTitle( $t ) {
+ $this->mTitle = $t;
+ }
+
+ function getTitle() {
+ return $this->mTitle;
+ }
+
+ function displaySection( $fields ) {
+ $tableHtml = '';
+ $subsectionHtml = '';
+
+ foreach( $fields as $key => $value ) {
+ if ( is_object( $value ) ) {
+ $v = empty($value->mParams['nodata'])
+ ? $this->mFieldData[$key]
+ : $value->getDefault();
+ $tableHtml .= $value->getTableRow( $v );
+ } elseif ( is_array( $value ) ) {
+ $section = $this->displaySection( $value );
+ $legend = wfMsg( "{$this->mMessagePrefix}-$key" );
+ $subsectionHtml .= Xml::fieldset( $legend, $section ) . "\n";
+ }
+ }
+
+ $tableHtml = "<table><tbody>\n$tableHtml\n</tbody></table>\n";
+
+ return $subsectionHtml . "\n" . $tableHtml;
+ }
+
+ function loadData() {
+ global $wgRequest;
+
+ $fieldData = array();
+
+ foreach( $this->mFlatFields as $fieldname => $field ) {
+ if ( !empty($field->mParams['nodata']) ) continue;
+ $fieldData[$fieldname] = $field->loadDataFromRequest( $wgRequest );
+ }
+
+ // Filter data.
+ foreach( $fieldData as $name => &$value ) {
+ $field = $this->mFlatFields[$name];
+ $value = $field->filter( $value, $this->mFlatFields );
+ }
+
+ $this->mFieldData = $fieldData;
+ }
+
+ function importData( $fieldData ) {
+ // Filter data.
+ foreach( $fieldData as $name => &$value ) {
+ $field = $this->mFlatFields[$name];
+ $value = $field->filter( $value, $this->mFlatFields );
+ }
+
+ foreach( $this->mFlatFields as $fieldname => $field ) {
+ if ( !isset($fieldData[$fieldname]) )
+ $fieldData[$fieldname] = $field->getDefault();
+ }
+
+ $this->mFieldData = $fieldData;
+ }
+
+ function suppressReset( $suppressReset = true ) {
+ $this->mShowReset = !$suppressReset;
+ }
+
+ function filterDataForSubmit( $data ) {
+ return $data;
+ }
+}
+
+abstract class HTMLFormField {
+ abstract function getInputHTML( $value );
+
+ function validate( $value, $alldata ) {
+ if ( isset($this->mValidationCallback) ) {
+ return call_user_func( $this->mValidationCallback, $value, $alldata );
+ }
+
+ return true;
+ }
+
+ function filter( $value, $alldata ) {
+ if( isset( $this->mFilterCallback ) ) {
+ $value = call_user_func( $this->mFilterCallback, $value, $alldata );
+ }
+
+ return $value;
+ }
+
+ function loadDataFromRequest( $request ) {
+ if ($request->getCheck( $this->mName ) ) {
+ return $request->getText( $this->mName );
+ } else {
+ return $this->getDefault();
+ }
+ }
+
+ function __construct( $params ) {
+ $this->mParams = $params;
+
+ if (isset( $params['label-message'] ) ) {
+ $msgInfo = $params['label-message'];
+
+ if ( is_array( $msgInfo ) ) {
+ $msg = array_shift( $msgInfo );
+ } else {
+ $msg = $msgInfo;
+ $msgInfo = array();
+ }
+
+ $this->mLabel = wfMsgExt( $msg, 'parseinline', $msgInfo );
+ } elseif ( isset($params['label']) ) {
+ $this->mLabel = $params['label'];
+ }
+
+ if ( isset( $params['name'] ) ) {
+ $this->mName = 'wp'.$params['name'];
+ $this->mID = 'mw-input-'.$params['name'];
+ }
+
+ if ( isset( $params['default'] ) ) {
+ $this->mDefault = $params['default'];
+ }
+
+ if ( isset( $params['id'] ) ) {
+ $this->mID = $params['id'];
+ }
+
+ if ( isset( $params['validation-callback'] ) ) {
+ $this->mValidationCallback = $params['validation-callback'];
+ }
+
+ if ( isset( $params['filter-callback'] ) ) {
+ $this->mFilterCallback = $params['filter-callback'];
+ }
+ }
+
+ function getTableRow( $value ) {
+ // Check for invalid data.
+ global $wgRequest;
+
+ $errors = $this->validate( $value, $this->mParent->mFieldData );
+ if ( $errors === true || !$wgRequest->wasPosted() ) {
+ $errors = '';
+ } else {
+ $errors = Xml::tags( 'span', array( 'class' => 'error' ), $errors );
+ }
+
+ $html = '';
+
+ $html .= Xml::tags( 'td', array( 'class' => 'mw-label' ),
+ Xml::tags( 'label', array( 'for' => $this->mID ), $this->getLabel() )
+ );
+ $html .= Xml::tags( 'td', array( 'class' => 'mw-input' ),
+ $this->getInputHTML( $value ) ."\n$errors" );
+
+ $fieldType = get_class($this);
+
+ $html = Xml::tags( 'tr', array( 'class' => "mw-htmlform-field-$fieldType" ),
+ $html ) . "\n";
+
+ // Help text
+ if ( isset($this->mParams['help-message']) ) {
+ $msg = $this->mParams['help-message'];
+
+ $text = wfMsgExt( $msg, 'parseinline' );
+
+ if (!wfEmptyMsg( $msg, $text ) ) {
+ $row = Xml::tags( 'td', array( 'colspan' => 2, 'class' => 'htmlform-tip' ),
+ $text );
+
+ $row = Xml::tags( 'tr', null, $row );
+
+ $html .= "$row\n";
+ }
+ }
+
+ return $html;
+ }
+
+ function getLabel() {
+ return $this->mLabel;
+ }
+
+ function getDefault() {
+ if ( isset( $this->mDefault ) ) {
+ return $this->mDefault;
+ } else {
+ return null;
+ }
+ }
+
+ static function flattenOptions( $options ) {
+ $flatOpts = array();
+
+ foreach( $options as $key => $value ) {
+ if ( is_array( $value ) ) {
+ $flatOpts = array_merge( $flatOpts, self::flattenOptions( $value ) );
+ } else {
+ $flatOpts[] = $value;
+ }
+ }
+
+ return $flatOpts;
+ }
+}
+
+class HTMLTextField extends HTMLFormField {
+
+ function getSize() {
+ return isset($this->mParams['size']) ? $this->mParams['size'] : 45;
+ }
+
+ function getInputHTML( $value ) {
+ $attribs = array( 'id' => $this->mID );
+
+ if ( isset($this->mParams['maxlength']) ) {
+ $attribs['maxlength'] = $this->mParams['maxlength'];
+ }
+
+ return Xml::input( $this->mName,
+ $this->getSize(),
+ $value,
+ $attribs );
+ }
+
+}
+
+class HTMLIntField extends HTMLTextField {
+ function getSize() {
+ return isset($this->mParams['size']) ? $this->mParams['size'] : 20;
+ }
+
+ function validate( $value, $alldata ) {
+ $p = parent::validate($value, $alldata);
+
+ if ($p !== true) return $p;
+
+ if ( intval($value) != $value ) {
+ return wfMsgExt( 'htmlform-int-invalid', 'parse' );
+ }
+
+ $in_range = true;
+
+ if ( isset($this->mParams['min']) ) {
+ $min = $this->mParams['min'];
+ if ( $min > $value )
+ return wfMsgExt( 'htmlform-int-toolow', 'parse', array($min) );
+ }
+
+ if ( isset($this->mParams['max']) ) {
+ $max = $this->mParams['max'];
+ if ($max < $value)
+ return wfMsgExt( 'htmlform-int-toohigh', 'parse', array($max) );
+ }
+
+ return true;
+ }
+}
+
+class HTMLCheckField extends HTMLFormField {
+ function getInputHTML( $value ) {
+ return Xml::check( $this->mName, $value, array( 'id' => $this->mID ) ) . ' ' .
+ Xml::tags( 'label', array( 'for' => $this->mID ), $this->mLabel );
+ }
+
+ function getLabel( ) {
+ return ' '; // In the right-hand column.
+ }
+
+ function loadDataFromRequest( $request ) {
+ $invert = false;
+ if ( isset( $this->mParams['invert'] ) && $this->mParams['invert'] ) {
+ $invert = true;
+ }
+
+ // GetCheck won't work like we want for checks.
+ if ($request->getCheck( 'wpEditToken' ) ) {
+ // XOR has the following truth table, which is what we want
+ // INVERT VALUE | OUTPUT
+ // true true | false
+ // false true | true
+ // false false | false
+ // true false | true
+ return $request->getBool( $this->mName ) xor $invert;
+ } else {
+ return $this->getDefault();
+ }
+ }
+}
+
+class HTMLSelectField extends HTMLFormField {
+
+ function validate( $value, $alldata ) {
+ $p = parent::validate( $value, $alldata );
+ if ($p !== true) return $p;
+
+ $validOptions = HTMLFormField::flattenOptions( $this->mParams['options'] );
+ if ( in_array( $value, $validOptions ) )
+ return true;
+ else
+ return wfMsgExt( 'htmlform-select-badoption', 'parseinline' );
+ }
+
+ function getInputHTML( $value ) {
+ $select = new XmlSelect( $this->mName, $this->mID, $value );
+
+ $select->addOptions( $this->mParams['options'] );
+
+ return $select->getHTML();
+ }
+}
+
+class HTMLSelectOrOtherField extends HTMLTextField {
+ static $jsAdded = false;
+
+ function __construct( $params ) {
+ if (! array_key_exists('other', $params['options']) ) {
+ $params['options']['other'] = wfMsg( 'htmlform-selectorother-other' );
+ }
+
+ parent::__construct( $params );
+ }
+
+ function getInputHTML( $value ) {
+
+ $valInSelect = false;
+ if ($value !== false)
+ $valInSelect = array_key_exists( $value, $this->mParams['options'] );
+
+ $selected = $valInSelect ? $value : 'other';
+
+ $select = new XmlSelect( $this->mName, $this->mID, $selected );
+ $select->addOptions( $this->mParams['options'] );
+
+ $select->setAttribute( 'class', 'mw-htmlform-select-or-other' );
+
+ $select = $select->getHTML();
+
+ $tbAttribs = array( 'id' => $this->mID.'-other' );
+
+ if ( isset($this->mParams['maxlength']) ) {
+ $tbAttribs['maxlength'] = $this->mParams['maxlength'];
+ }
+
+ $textbox = Xml::input( $this->mName.'-other',
+ $this->getSize(),
+ $valInSelect ? '' : $value,
+ $tbAttribs );
+
+ return "$select<br/>\n$textbox";
+ }
+
+ function loadDataFromRequest( $request ) {
+ if ($request->getCheck( $this->mName ) ) {
+ $val = $request->getText( $this->mName );
+
+ if ($val == 'other') {
+ $val = $request->getText( $this->mName.'-other' );
+ }
+
+ return $val;
+ } else {
+ return $this->getDefault();
+ }
+ }
+}
+
+class HTMLMultiSelectField extends HTMLFormField {
+ function validate( $value, $alldata ) {
+ $p = parent::validate( $value, $alldata );
+ if ($p !== true) return $p;
+
+ if (!is_array($value)) return false;
+
+ // If all options are valid, array_intersect of the valid options and the provided
+ // options will return the provided options.
+ $validOptions = HTMLFormField::flattenOptions( $this->mParams['options'] );
+
+ $validValues = array_intersect( $value, $validOptions );
+ if ( count( $validValues ) == count($value) )
+ return true;
+ else
+ return wfMsgExt( 'htmlform-select-badoption', 'parseinline' );
+ }
+
+ function getInputHTML( $value ) {
+ $html = $this->formatOptions( $this->mParams['options'], $value );
+
+ return $html;
+ }
+
+ function formatOptions( $options, $value ) {
+ $html = '';
+ foreach( $options as $label => $info ) {
+ if (is_array($info)) {
+ $html .= Xml::tags( 'h1', null, $label ) . "\n";
+ $html .= $this->formatOptions( $info, $value );
+ } else {
+ $checkbox = Xml::check( $this->mName.'[]', in_array( $info, $value ),
+ array( 'id' => $this->mID, 'value' => $info ) );
+ $checkbox .= ' ' . Xml::tags( 'label', array( 'for' => $this->mID ), $label );
+
+ $html .= Xml::tags( 'p', null, $checkbox );
+ }
+ }
+
+ return $html;
+ }
+
+ function loadDataFromRequest( $request ) {
+ // won't work with getCheck
+ if ($request->getCheck( 'wpEditToken' ) ) {
+ $arr = $request->getArray( $this->mName );
+
+ if (!$arr)
+ $arr = array();
+
+ return $arr;
+ } else {
+ return $this->getDefault();
+ }
+ }
+
+ function getDefault() {
+ if ( isset( $this->mDefault ) ) {
+ return $this->mDefault;
+ } else {
+ return array();
+ }
+ }
+}
+
+class HTMLRadioField extends HTMLFormField {
+ function validate( $value, $alldata ) {
+ $p = parent::validate( $value, $alldata );
+ if ($p !== true) return $p;
+
+ if (!is_string($value) && !is_int($value))
+ return false;
+
+ $validOptions = HTMLFormField::flattenOptions( $this->mParams['options'] );
+
+ if ( in_array( $value, $validOptions ) )
+ return true;
+ else
+ return wfMsgExt( 'htmlform-select-badoption', 'parseinline' );
+ }
+
+ function getInputHTML( $value ) {
+ $html = $this->formatOptions( $this->mParams['options'], $value );
+
+ return $html;
+ }
+
+ function formatOptions( $options, $value ) {
+ $html = '';
+ foreach( $options as $label => $info ) {
+ if (is_array($info)) {
+ $html .= Xml::tags( 'h1', null, $label ) . "\n";
+ $html .= $this->formatOptions( $info, $value );
+ } else {
+ $html .= Xml::radio( $this->mName, $info, $info == $value,
+ array( 'id' => $this->mID."-$info" ) );
+ $html .= ' ' .
+ Xml::tags( 'label', array( 'for' => $this->mID."-$info" ), $label );
+
+ $html .= "<br/>\n";
+ }
+ }
+
+ return $html;
+ }
+}
+
+class HTMLInfoField extends HTMLFormField {
+ function __construct( $info ) {
+ $info['nodata'] = true;
+
+ parent::__construct($info);
+ }
+
+ function getInputHTML( $value ) {
+ return !empty($this->mParams['raw']) ? $value : htmlspecialchars($value);
+ }
+
+ function getTableRow( $value ) {
+ if ( !empty($this->mParams['rawrow']) ) {
+ return $value;
+ }
+
+ return parent::getTableRow( $value );
+ }
+}
--- /dev/null
+<?php
+
+class Preferences {
+ static $defaultPreferences = null;
+ static $saveFilters =
+ array(
+ 'timecorrection' => array( 'Preferences', 'filterTimezoneInput' ),
+ );
+
+ static function getPreferences( $user ) {
+ if (self::$defaultPreferences)
+ return self::$defaultPreferences;
+
+ global $wgLang, $wgRCMaxAge;
+
+ $defaultPreferences = array();
+
+ ## User info #####################################
+ // Information panel
+ $defaultPreferences['username'] =
+ array(
+ 'type' => 'info',
+ 'label-message' => 'username',
+ 'default' => $user->getName(),
+ 'section' => 'personal',
+ );
+
+ $defaultPreferences['userid'] =
+ array(
+ 'type' => 'info',
+ 'label-message' => 'uid',
+ 'default' => $user->getId(),
+ 'section' => 'personal',
+ );
+
+ # Get groups to which the user belongs
+ $userEffectiveGroups = $user->getEffectiveGroups();
+ $userEffectiveGroupsArray = array();
+ foreach( $userEffectiveGroups as $ueg ) {
+ if( $ueg == '*' ) {
+ // Skip the default * group, seems useless here
+ continue;
+ }
+ $userEffectiveGroupsArray[] = User::makeGroupLinkHTML( $ueg );
+ }
+ asort( $userEffectiveGroupsArray );
+
+ $defaultPreferences['usergroups'] =
+ array(
+ 'type' => 'info',
+ 'label' => wfMsgExt( 'prefs-memberingroups', 'parseinline',
+ count($userEffectiveGroupsArray) ),
+ 'default' => $wgLang->commaList( $userEffectiveGroupsArray ),
+ 'raw' => true,
+ 'section' => 'personal',
+ );
+
+ $defaultPreferences['editcount'] =
+ array(
+ 'type' => 'info',
+ 'label-message' => 'prefs-edits',
+ 'default' => $user->getEditCount(),
+ 'section' => 'personal',
+ );
+
+ if ($user->getRegistration()) {
+ $defaultPreferences['registrationdate'] =
+ array(
+ 'type' => 'info',
+ 'label-message' => 'prefs-registration',
+ 'default' => $wgLang->timeanddate( $user->getRegistration() ),
+ 'section' => 'personal',
+ );
+ }
+
+ // Actually changeable stuff
+ global $wgAllowRealName;
+ if ($wgAllowRealName) {
+ $defaultPreferences['realname'] =
+ array(
+ 'type' => 'text',
+ 'default' => $user->getRealName(),
+ 'section' => 'personal',
+ 'label-message' => 'yourrealname',
+ 'help-message' => 'prefs-help-realname',
+ );
+ }
+
+ global $wgEmailConfirmToEdit;
+
+ $defaultPreferences['emailaddress'] =
+ array(
+ 'type' => 'text',
+ 'default' => $user->getEmail(),
+ 'section' => 'personal',
+ 'label-message' => 'youremail',
+ 'help-message' => $wgEmailConfirmToEdit
+ ? 'prefs-help-email-required'
+ : 'prefs-help-email',
+ 'validation-callback' => array( 'Preferences', 'validateEmail' ),
+ );
+
+ global $wgAuth;
+ if ($wgAuth->allowPasswordChange()) {
+ global $wgUser; // For skin.
+ $link = $wgUser->getSkin()->link( SpecialPage::getTitleFor( 'ResetPass' ),
+ wfMsgHtml( 'prefs-resetpass' ), array() ,
+ array('returnto' => SpecialPage::getTitleFor( 'Preferences') ) );
+
+ $defaultPreferences['password'] =
+ array(
+ 'type' => 'info',
+ 'raw' => true,
+ 'default' => $link,
+ 'label-message' => 'yourpassword',
+ 'section' => 'personal',
+ );
+ }
+
+ $defaultPreferences['gender'] =
+ array(
+ 'type' => 'select',
+ 'section' => 'personal',
+ 'options' => array(
+ wfMsg('gender-male') => 'male',
+ wfMsg('gender-female') => 'female',
+ wfMsg('gender-unknown') => 'unknown',
+ ),
+ 'label-message' => 'yourgender',
+ 'help-message' => 'prefs-help-gender',
+ );
+
+ // Language
+ global $wgContLanguageCode;
+ $languages = array_reverse( Language::getLanguageNames( false ) );
+ if( !array_key_exists( $wgContLanguageCode, $languages ) ) {
+ $languages[$wgContLanguageCode] = $wgContLanguageCode;
+ }
+ ksort( $languages );
+
+ $options = array();
+ foreach( $languages as $code => $name ) {
+ $display = "$code - $name";
+ $options[$display] = $code;
+ }
+ $defaultPreferences['language'] =
+ array(
+ 'type' => 'select',
+ 'section' => 'personal',
+ 'options' => $options,
+ 'label-message' => 'yourlanguage',
+ );
+
+ global $wgContLang, $wgDisableLangConversion;
+ /* see if there are multiple language variants to choose from*/
+ $variantArray = array();
+ if(!$wgDisableLangConversion) {
+ $variants = $wgContLang->getVariants();
+
+ $languages = Language::getLanguageNames( true );
+ foreach($variants as $v) {
+ $v = str_replace( '_', '-', strtolower($v));
+ if( array_key_exists( $v, $languages ) ) {
+ // If it doesn't have a name, we'll pretend it doesn't exist
+ $variantArray[$v] = $languages[$v];
+ }
+ }
+
+ $options = array();
+ foreach( $variantArray as $code => $name ) {
+ $options[$code] = "$code - $name";
+ }
+
+ if(count($variantArray) > 1) {
+ $defaultPreferences['variant'] =
+ array(
+ 'label-message' => 'yourvariant',
+ 'type' => 'select',
+ 'options' => $options,
+ 'section' => 'personal',
+ );
+ }
+ }
+
+ if(count($variantArray) > 1 && !$wgDisableLangConversion && !$wgDisableTitleConversion) {
+ $defaultPreferences['noconvertlink'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'misc',
+ 'label-message' => 'tog-noconvertlink',
+ );
+ }
+
+ global $wgMaxSigChars;
+ $defaultPreferences['nickname'] =
+ array(
+ 'type' => 'text',
+ 'maxlength' => $wgMaxSigChars,
+ 'label-message' => 'yournick',
+ 'validation-callback' =>
+ array( 'Preferences', 'validateSignature' ),
+ 'section' => 'personal',
+ 'filter-callback' => array( 'Preferences', 'cleanSignature' ),
+ );
+ $defaultPreferences['fancysig'] =
+ array(
+ 'type' => 'toggle',
+ 'label-message' => 'tog-fancysig',
+ 'section' => 'personal'
+ );
+
+ $defaultPreferences['rememberpassword'] =
+ array(
+ 'type' => 'toggle',
+ 'label-message' => 'tog-rememberpassword',
+ 'section' => 'personal',
+ );
+
+
+ ## Email #######################################
+ ## Email stuff
+ global $wgEnableEmail, $wgEnableUserEmail;
+ if ($wgEnableEmail) {
+
+ if ($wgEnableUserEmail) {
+ $defaultPreferences['disableemail'] =
+ array(
+ 'type' => 'toggle',
+ 'invert' => true,
+ 'section' => 'email',
+ 'label-message' => 'allowemail',
+ );
+ $defaultPreferences['ccmeonemails'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'email',
+ 'label-message' => 'tog-ccmeonemails',
+ );
+ }
+
+ $defaultPreferences['enotifwatchlistpages'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'email',
+ 'label-message' => 'tog-enotifwatchlistpages',
+ );
+ $defaultPreferences['enotifusertalkpages'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'email',
+ 'label-message' => 'tog-enotifusertalkpages',
+ );
+ $defaultPreferences['enotifminoredits'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'email',
+ 'label-message' => 'tog-enotifminoredits',
+ );
+ $defaultPreferences['enotifrevealaddr'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'email',
+ 'label-message' => 'tog-enotifrevealaddr'
+ );
+ }
+
+ ## Skin #####################################
+ global $wgAllowUserSkin;
+
+ if ($wgAllowUserSkin) {
+ $defaultPreferences['skin'] =
+ array(
+ 'type' => 'radio',
+ 'options' => self::generateSkinOptions( $user ),
+ 'label' => ' ',
+ 'section' => 'skin',
+ );
+ }
+
+ ## TODO QUICKBAR
+
+ ## Math #####################################
+ global $wgUseTeX;
+ if ($wgUseTeX) {
+ $defaultPreferences['math'] =
+ array(
+ 'type' => 'radio',
+ 'options' =>
+ array_flip( array_map( 'wfMsg', $wgLang->getMathNames() ) ),
+ 'label' => ' ',
+ 'section' => 'math',
+ 'label-message' => 'math',
+ );
+ }
+
+ ## Files #####################################
+ $defaultPreferences['imagesize'] =
+ array(
+ 'type' => 'select',
+ 'options' => self::getImageSizes(),
+ 'label-message' => 'imagemaxsize',
+ 'section' => 'files',
+ );
+ $defaultPreferences['thumbsize'] =
+ array(
+ 'type' => 'select',
+ 'options' => self::getThumbSizes(),
+ 'label-message' => 'thumbsize',
+ 'section' => 'files',
+ );
+
+ ## Date and time #####################################
+ $dateOptions = self::getDateOptions();
+ if ($dateOptions) {
+ $defaultPreferences['date'] =
+ array(
+ 'type' => 'radio',
+ 'options' => $dateOptions,
+ 'label-message' => 'dateformat',
+ 'section' => 'datetime',
+ );
+ }
+
+ // Info
+ $nowlocal = Xml::element( 'span', array( 'id' => 'wpLocalTime' ),
+ $wgLang->time( $now = wfTimestampNow(), true ) );
+ $nowserver = $wgLang->time( $now, false ) .
+ Xml::hidden( 'wpServerTime', substr( $now, 8, 2 ) * 60 + substr( $now, 10, 2 ) );
+
+ $defaultPreferences['nowserver'] =
+ array(
+ 'type' => 'info',
+ 'raw' => 1,
+ 'label-message' => 'servertime',
+ 'default' => $nowserver,
+ 'section' => 'datetime',
+ );
+
+ $defaultPreferences['nowlocal'] =
+ array(
+ 'type' => 'info',
+ 'raw' => 1,
+ 'label-message' => 'localtime',
+ 'default' => $nowlocal,
+ 'section' => 'datetime',
+ );
+
+ // Grab existing pref.
+ $tzOffset = $user->getOption( 'timecorrection' );
+ $tz = explode( '|', $tzOffset, 2 );
+
+ $tzSetting = $tzOffset;
+ if (count($tz) > 1 && $tz[0] == 'Offset') {
+ $minDiff = $tz[1];
+ $tzSetting = sprintf( '%+03d:%02d', floor($minDiff/60), abs($minDiff)%60 );;
+ }
+
+ $defaultPreferences['timecorrection'] =
+ array(
+ 'class' => 'HTMLSelectOrOtherField',
+ 'label-message' => 'timezonelegend',
+ 'options' => self::getTimezoneOptions(),
+ 'default' => $tzSetting,
+ 'section' => 'datetime',
+ );
+
+ ## Page Rendering ##############################
+ $defaultPreferences['underline'] =
+ array(
+ 'type' => 'select',
+ 'options' => array(
+ wfMsg( 'underline-never' ) => 0,
+ wfMsg( 'underline-always' ) => 1,
+ wfMsg( 'underline-default' ) => 2,
+ ),
+ 'label-message' => 'tog-underline',
+ 'section' => 'rendering',
+ );
+
+ $stubThresholdValues = array( 0, 50, 100, 500, 1000, 2000, 5000, 10000 );
+ $stubThresholdOptions = array();
+ foreach( $stubThresholdValues as $value ) {
+ $stubThresholdOptions[wfMsg( 'size-bytes', $value )] = $value;
+ }
+
+ $defaultPreferences['stubthreshold'] =
+ array(
+ 'type' => 'selectorother',
+ 'section' => 'rendering',
+ 'options' => $stubThresholdOptions,
+ 'label' => wfMsg('stub-threshold'), // Raw HTML message. Yay?
+ );
+ $defaultPreferences['highlightbroken'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rendering',
+ 'label' => wfMsg('tog-highlightbroken'), // Raw HTML
+ );
+ $defaultPreferences['showtoc'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rendering',
+ 'label-message' => 'tog-showtoc',
+ );
+ $defaultPreferences['nocache'] =
+ array(
+ 'type' => 'toggle',
+ 'label-message' => 'tog-nocache',
+ 'section' => 'rendering',
+ );
+ $defaultPreferences['showhiddencats'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rendering',
+ 'label-message' => 'tog-showhiddencats'
+ );
+ $defaultPreferences['showjumplinks'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rendering',
+ 'label-message' => 'tog-showjumplinks',
+ );
+ $defaultPreferences['justify'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rendering',
+ 'label-message' => 'tog-justify',
+ );
+ $defaultPreferences['numberheadings'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rendering',
+ 'label-message' => 'tog-numberheadings',
+ );
+
+ ## Editing #####################################
+ $defaultPreferences['cols'] =
+ array(
+ 'type' => 'int',
+ 'label-message' => 'columns',
+ 'section' => 'editing',
+ 'min' => 4,
+ 'max' => 1000,
+ );
+ $defaultPreferences['rows'] =
+ array(
+ 'type' => 'int',
+ 'label-message' => 'rows',
+ 'section' => 'editing',
+ 'min' => 4,
+ 'max' => 1000,
+ );
+ $defaultPreferences['previewontop'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-previewontop',
+ );
+ $defaultPreferences['previewonfirst'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-previewonfirst',
+ );
+ $defaultPreferences['editsection'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-editsection',
+ );
+ $defaultPreferences['editsectiononrightclick'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-editsectiononrightclick',
+ );
+ $defaultPreferences['editondblclick'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-editondblclick',
+ );
+ $defaultPreferences['editwidth'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-editwidth',
+ );
+ $defaultPreferences['showtoolbar'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-showtoolbar',
+ );
+ $defaultPreferences['minordefault'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-minordefault',
+ );
+ $defaultPreferences['externaleditor'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-externaleditor',
+ );
+ $defaultPreferences['externaldiff'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-externaldiff',
+ );
+ $defaultPreferences['forceeditsummary'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-forceeditsummary',
+ );
+ $defaultPreferences['uselivepreview'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'editing',
+ 'label-message' => 'tog-uselivepreview',
+ );
+
+ ## RecentChanges #####################################
+ $defaultPreferences['rcdays'] =
+ array(
+ 'type' => 'int',
+ 'label-message' => 'recentchangesdays',
+ 'section' => 'rc',
+ 'min' => 1,
+ 'max' => ceil($wgRCMaxAge / (3600*24)),
+ );
+ $defaultPreferences['rclimit'] =
+ array(
+ 'type' => 'int',
+ 'label-message' => 'recentchangescount',
+ 'section' => 'rc',
+ );
+ $defaultPreferences['usenewrc'] =
+ array(
+ 'type' => 'toggle',
+ 'label-message' => 'tog-usenewrc',
+ 'section' => 'rc',
+ );
+ $defaultPreferences['hideminor'] =
+ array(
+ 'type' => 'toggle',
+ 'label-message' => 'tog-hideminor',
+ 'section' => 'rc',
+ );
+
+ global $wgUseRCPatrol;
+ if ($wgUseRCPatrol) {
+ $defaultPreferences['hidepatrolled'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rc',
+ 'label-message' => 'tog-hidepatrolled',
+ );
+ $defaultPreferences['newpageshidepatrolled'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rc',
+ 'label-message' => 'tog-newpageshidepatrolled',
+ );
+ }
+
+ global $wgRCShowWatchingUsers;
+ if ($wgRCShowWatchingUsers) {
+ $defaultPreferences['shownumberswatching'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'rc',
+ 'label-message' => 'tog-shownumberswatching',
+ );
+ }
+
+ ## Watchlist #####################################
+ $defaultPreferences['wllimit'] =
+ array(
+ 'type' => 'int',
+ 'min' => 0,
+ 'max' => 1000,
+ 'label-message' => 'prefs-watchlist-edits',
+ 'section' => 'watchlist'
+ );
+ $defaultPreferences['watchlistdays'] =
+ array(
+ 'type' => 'int',
+ 'min' => 0,
+ 'max' => 7,
+ 'section' => 'watchlist',
+ 'label-message' => 'prefs-watchlist-days',
+ );
+ $defaultPreferences['extendwatchlist'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'watchlist',
+ 'label-message' => 'tog-extendwatchlist',
+ );
+ $defaultPreferences['watchlisthideminor'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'watchlist',
+ 'label-message' => 'tog-watchlisthideminor',
+ );
+ $defaultPreferences['watchlisthidebots'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'watchlist',
+ 'label-message' => 'tog-watchlisthidebots',
+ );
+ $defaultPreferences['watchlisthideown'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'watchlist',
+ 'label-message' => 'tog-watchlisthideown',
+ );
+ $defaultPreferences['watchlisthideanons'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'watchlist',
+ 'label-message' => 'tog-watchlisthideanons',
+ );
+ $defaultPreferences['watchlisthideliu'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'watchlist',
+ 'label-message' => 'tog-watchlisthideliu',
+ );
+
+ if ( $wgUseRCPatrol ) {
+ $defaultPreferences['watchlisthidepatrolled'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'watchlist',
+ 'label-message' => 'tog-watchlisthidepatrolled',
+ );
+ }
+
+ $watchTypes = array( 'edit' => 'watchdefault',
+ 'move' => 'watchmoves',
+ 'delete' => 'watchdeletion' );
+
+ // Kinda hacky
+ if( $user->isAllowed( 'createpage' ) || $user->isAllowed( 'createtalk' ) ) {
+ $watchTypes['read'] = 'watchcreations';
+ }
+
+ foreach( $watchTypes as $action => $pref ) {
+ if ( $user->isAllowed( $action ) ) {
+ $defaultPreferences[$pref] = array(
+ 'type' => 'toggle',
+ 'section' => 'watchlist',
+ 'label-message' => "tog-$pref",
+ );
+ }
+ }
+
+ ## Search #####################################
+ $defaultPreferences['searchlimit'] =
+ array(
+ 'type' => 'int',
+ 'label-message' => 'resultsperpage',
+ 'section' => 'searchoptions',
+ 'min' => 0,
+ );
+ $defaultPreferences['contextlines'] =
+ array(
+ 'type' => 'int',
+ 'label-message' => 'contextlines',
+ 'section' => 'searchoptions',
+ 'min' => 0,
+ );
+ $defaultPreferences['contextchars'] =
+ array(
+ 'type' => 'int',
+ 'label-message' => 'contextchars',
+ 'section' => 'searchoptions',
+ 'min' => 0,
+ );
+
+ // Searchable namespaces back-compat with old format
+ $searchableNamespaces = SearchEngine::searchableNamespaces();
+
+ $nsOptions = array();
+ foreach( $wgContLang->getNamespaces() as $ns => $name ) {
+ if ($ns < 0) continue;
+ $displayNs = str_replace( '_', ' ', $name );
+
+ if (!$displayNs) $displayNs = wfMsg( 'blanknamespace' );
+
+ $nsOptions[$displayNs] = $ns;
+ }
+
+ $defaultPreferences['searchnamespaces'] =
+ array(
+ 'type' => 'multiselect',
+ 'label-message' => 'defaultns',
+ 'options' => $nsOptions,
+ 'section' => 'searchoptions',
+ 'prefix' => 'searchNs',
+ );
+
+ global $wgEnableMWSuggest;
+ if ($wgEnableMWSuggest) {
+ $defaultPreferences['disablesuggest'] =
+ array(
+ 'type' => 'toggle',
+ 'label-message' => 'mwsuggest-disable',
+ 'section' => 'searchoptions',
+ );
+ }
+
+ ## Misc #####################################
+ $defaultPreferences['diffonly'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'misc',
+ 'label-message' => 'tog-diffonly',
+ );
+ $defaultPreferences['norollbackdiff'] =
+ array(
+ 'type' => 'toggle',
+ 'section' => 'misc',
+ 'label-message' => 'tog-norollbackdiff',
+ );
+
+ wfRunHooks( 'GetPreferences', array( $user, &$defaultPreferences ) );
+
+ ## Prod in defaults from the user
+ global $wgDefaultUserOptions;
+ foreach( $defaultPreferences as $name => &$info ) {
+ $prefFromUser = self::getOptionFromUser( $name, $info, $user );
+ $field = HTMLForm::loadInputFromParameters( $info ); // For validation
+ $globalDefault = isset($wgDefaultUserOptions[$name])
+ ? $wgDefaultUserOptions[$name]
+ : null;
+
+ // If it validates, set it as the default
+ if ( isset($info['default']) ) {
+ // Already set, no problem
+ continue;
+ } elseif ( !is_null( $prefFromUser ) && // Make sure we're not just pulling nothing
+ $field->validate( $prefFromUser, $user->mOptions ) ) {
+ $info['default'] = $prefFromUser;
+ } elseif( $field->validate( $globalDefault, $user->mOptions ) ) {
+ $info['default'] = $globalDefault;
+ }
+ }
+
+ self::$defaultPreferences = $defaultPreferences;
+
+ return $defaultPreferences;
+ }
+
+ // Pull option from a user account. Handles stuff like array-type preferences.
+ static function getOptionFromUser( $name, $info, $user ) {
+ $val = $user->getOption( $name );
+
+ // Handling for array-type preferences
+ if ( ( isset($info['type']) && $info['type'] == 'multiselect' ) ||
+ ( isset($info['class']) && $info['class'] == 'HTMLMultiSelectField' ) ) {
+
+ $options = HTMLFormField::flattenOptions($info['options']);
+ $prefix = isset($info['prefix']) ? $info['prefix'] : $name;
+ $val = array();
+
+ foreach( $options as $label => $value ) {
+ if ($user->getOption( "$prefix$value" ) ) {
+ $val[] = $value;
+ }
+ }
+ }
+
+ return $val;
+ }
+
+ static function generateSkinOptions( $user ) {
+ global $wgDefaultSkin;
+ $ret = array();
+
+ $mptitle = Title::newMainPage();
+ $previewtext = wfMsg( 'skin-preview' );
+ # Only show members of Skin::getSkinNames() rather than
+ # $skinNames (skins is all skin names from Language.php)
+ $validSkinNames = Skin::getUsableSkins();
+ # Sort by UI skin name. First though need to update validSkinNames as sometimes
+ # the skinkey & UI skinname differ (e.g. "standard" skinkey is "Classic" in the UI).
+ foreach ( $validSkinNames as $skinkey => &$skinname ) {
+ $msgName = "skinname-{$skinkey}";
+ $localisedSkinName = wfMsg( $msgName );
+ if ( !wfEmptyMsg( $msgName, $localisedSkinName ) ) {
+ $skinname = $localisedSkinName;
+ }
+ }
+ asort($validSkinNames);
+ $sk = $user->getSkin();
+
+ foreach( $validSkinNames as $skinkey => $sn ) {
+ $mplink = htmlspecialchars( $mptitle->getLocalURL( "useskin=$skinkey" ) );
+ $previewlink = "(<a target='_blank' href=\"$mplink\">$previewtext</a>)";
+ $extraLinks = '';
+ global $wgAllowUserCss, $wgAllowUserJs;
+ if( $wgAllowUserCss ) {
+ $cssPage = Title::makeTitleSafe( NS_USER, $user->getName().'/'.$skinkey.'.css' );
+ $customCSS = $sk->makeLinkObj( $cssPage, wfMsgExt('prefs-custom-css', array() ) );
+ $extraLinks .= " ($customCSS)";
+ }
+ if( $wgAllowUserJs ) {
+ $jsPage = Title::makeTitleSafe( NS_USER, $user->getName().'/'.$skinkey.'.js' );
+ $customJS = $sk->makeLinkObj( $jsPage, wfMsgHtml('prefs-custom-js') );
+ $extraLinks .= " ($customJS)";
+ }
+ if( $skinkey == $wgDefaultSkin )
+ $sn .= ' (' . wfMsg( 'default' ) . ')';
+ $display = "$sn $previewlink{$extraLinks}";
+ $ret[$display] = $skinkey;
+ }
+
+ return $ret;
+ }
+
+ static function getDateOptions() {
+ global $wgLang;
+ $dateopts = $wgLang->getDatePreferences();
+
+ $ret = array();
+
+ if ($dateopts) {
+ $idCnt = 0;
+ $epoch = '20010115161234'; # Wikipedia day
+ foreach( $dateopts as $key ) {
+ if( $key == 'default' ) {
+ $formatted = wfMsg( 'datedefault' );
+ } else {
+ $formatted = $wgLang->timeanddate( $epoch, false, $key );
+ }
+ $ret[$formatted] = $key;
+ }
+ }
+ return $ret;
+ }
+
+ static function getImageSizes() {
+ global $wgImageLimits;
+
+ $ret = array();
+
+ foreach ( $wgImageLimits as $index => $limits ) {
+ $display = "{$limits[0]}×{$limits[1]}" . wfMsg('unit-pixel');
+ $ret[$display] = $index;
+ }
+
+ return $ret;
+ }
+
+ static function getThumbSizes() {
+ global $wgThumbLimits;
+
+ $ret = array();
+
+ foreach ( $wgThumbLimits as $index => $size ) {
+ $display = $size . wfMsg('unit-pixel');
+ $ret[$display] = $index;
+ }
+
+ return $ret;
+ }
+
+ static function validateSignature( $signature, $alldata ) {
+ global $wgParser, $wgMaxSigChars, $wgLang;
+ if( mb_strlen( $signature ) > $wgMaxSigChars ) {
+ return
+ Xml::element( 'span', array( 'class' => 'error' ),
+ wfMsgExt( 'badsiglength', 'parsemag',
+ $wgLang->formatNum( $wgMaxSigChars )
+ )
+ );
+ } elseif( !empty( $alldata['fancysig'] ) &&
+ false === $wgParser->validateSig( $signature ) ) {
+ return Xml::element( 'span', array( 'class' => 'error' ), wfMsg( 'badsig' ) );
+ } else {
+ return true;
+ }
+ }
+
+ static function cleanSignature( $signature, $alldata ) {
+ global $wgParser;
+ if( $alldata['fancysig'] ) {
+ $signature = $wgParser->cleanSig( $signature );
+ } else {
+ // When no fancy sig used, make sure ~{3,5} get removed.
+ $signature = $wgParser->cleanSigInSig( $signature );
+ }
+
+ return $signature;
+ }
+
+ static function validateEmail( $email, $alldata ) {
+ global $wgUser; // To check
+
+ if ( $email && !$wgUser->isValidEmailAddr( $email ) ) {
+ return wfMsgExt( 'invalidemailaddress', 'parseinline' );
+ }
+
+ global $wgEmailConfirmToEdit;
+ if( $wgEmailConfirmToEdit && !$email ) {
+ return wfMsgExt( 'noemailtitle', 'parseinline' );
+ }
+ return true;
+ }
+
+ static function getFormObject( $user ) {
+ $formDescriptor = Preferences::getPreferences( $user );
+ $htmlForm = new PreferencesForm( $formDescriptor, 'prefs' );
+
+ $htmlForm->setSubmitText( wfMsg('saveprefs') );
+ $htmlForm->setTitle( SpecialPage::getTitleFor( 'Preferences' ) );
+ $htmlForm->setSubmitID( 'prefsubmit' );
+ $htmlForm->setSubmitCallback( array( 'Preferences', 'tryFormSubmit' ) );
+
+ return $htmlForm;
+ }
+
+ static function getTimezoneOptions() {
+ $opt = array();
+
+ global $wgLocalTZoffset;
+
+ $opt[wfMsg( 'timezoneuseserverdefault' )] = "System|$wgLocalTZoffset";
+ $opt[wfMsg( 'timezoneuseoffset' )] = 'other';
+ $opt[wfMsg( 'guesstimezone' )] = 'guess';
+
+ if ( function_exists( 'timezone_identifiers_list' ) ) {
+ # Read timezone list
+ $tzs = timezone_identifiers_list();
+ sort( $tzs );
+
+ $tzRegions = array();
+ $tzRegions['Africa'] = wfMsg( 'timezoneregion-africa' );
+ $tzRegions['America'] = wfMsg( 'timezoneregion-america' );
+ $tzRegions['Antarctica'] = wfMsg( 'timezoneregion-antarctica' );
+ $tzRegions['Arctic'] = wfMsg( 'timezoneregion-arctic' );
+ $tzRegions['Asia'] = wfMsg( 'timezoneregion-asia' );
+ $tzRegions['Atlantic'] = wfMsg( 'timezoneregion-atlantic' );
+ $tzRegions['Australia'] = wfMsg( 'timezoneregion-australia' );
+ $tzRegions['Europe'] = wfMsg( 'timezoneregion-europe' );
+ $tzRegions['Indian'] = wfMsg( 'timezoneregion-indian' );
+ $tzRegions['Pacific'] = wfMsg( 'timezoneregion-pacific' );
+ asort( $tzRegions );
+
+ $prefill = array_fill_keys( array_values($tzRegions), array() );
+ $opt = array_merge( $opt, $prefill );
+
+ $now = date_create( 'now' );
+
+ foreach ( $tzs as $tz ) {
+ $z = explode( '/', $tz, 2 );
+
+ # timezone_identifiers_list() returns a number of
+ # backwards-compatibility entries. This filters them out of the
+ # list presented to the user.
+ if ( count( $z ) != 2 || !array_key_exists( $z[0], $tzRegions ) )
+ continue;
+
+ # Localize region
+ $z[0] = $tzRegions[$z[0]];
+
+ $minDiff = floor( timezone_offset_get( timezone_open( $tz ), $now ) / 60 );
+
+ $display = str_replace( '_', ' ', $z[0] . '/' . $z[1] );
+ $value = "ZoneInfo|$minDiff|$tz";
+
+ $opt[$z[0]][$display] = $value;
+ }
+ }
+ return $opt;
+ }
+
+ static function filterTimezoneInput( $tz, $alldata ) {
+ $data = explode( '|', $tz, 3 );
+ switch ( $data[0] ) {
+ case 'ZoneInfo':
+ case 'System':
+ return $tz;
+ default:
+ $data = explode( ':', $tz, 2 );
+ $minDiff = 0;
+ if( count( $data ) == 2 ) {
+ $data[0] = intval( $data[0] );
+ $data[1] = intval( $data[1] );
+ $minDiff = abs( $data[0] ) * 60 + $data[1];
+ if ( $data[0] < 0 ) $minDiff = -$minDiff;
+ } else {
+ $minDiff = intval( $data[0] ) * 60;
+ }
+
+ # Max is +14:00 and min is -12:00, see:
+ # http://en.wikipedia.org/wiki/Timezone
+ $minDiff = min( $minDiff, 840 ); # 14:00
+ $minDiff = max( $minDiff, -720 ); # -12:00
+ return 'Offset|'.$minDiff;
+ }
+ }
+
+ static function tryFormSubmit( $formData ) {
+ global $wgUser, $wgEmailAuthentication, $wgEnableEmail;
+
+ // Filter input
+ foreach( array_keys($formData) as $name ) {
+ if ( isset(self::$saveFilters[$name]) ) {
+ $formData[$name] =
+ call_user_func( self::$saveFilters[$name], $formData[$name], $formData );
+ }
+ }
+
+ // Stuff that shouldn't be saved as a preference.
+ $saveBlacklist = array(
+ 'realname',
+ 'emailaddress',
+ );
+
+ if( $wgEnableEmail ) {
+ $newadr = $formData['emailaddress'];
+ $oldadr = $wgUser->getEmail();
+ if( ($newadr != '') && ($newadr != $oldadr) ) {
+ # the user has supplied a new email address on the login page
+ # new behaviour: set this new emailaddr from login-page into user database record
+ $wgUser->setEmail( $newadr );
+ # but flag as "dirty" = unauthenticated
+ $wgUser->invalidateEmail();
+ if ($wgEmailAuthentication) {
+ # Mail a temporary password to the dirty address.
+ # User can come back through the confirmation URL to re-enable email.
+ $result = $wgUser->sendConfirmationMail();
+ if( WikiError::isError( $result ) ) {
+ return wfMsg( 'mailerror', htmlspecialchars( $result->getMessage() ) );
+ } else {
+ // TODO return this somehow
+# wfMsg( 'eauthentsent', $wgUser->getName() );
+ }
+ }
+ } else {
+ $wgUser->setEmail( $newadr );
+ }
+ if( $oldadr != $newadr ) {
+ wfRunHooks( 'PrefsEmailAudit', array( $wgUser, $oldadr, $newadr ) );
+ }
+ }
+
+ // Fortunately, the realname field is MUCH simpler
+ global $wgAllowRealName;
+ if ($wgAllowRealName) {
+ $realName = $formData['realname'];
+ $wgUser->setRealName( $realName );
+ }
+
+ foreach( $saveBlacklist as $b )
+ unset( $formData[$b] );
+
+ // Keeps old preferences from interfering due to back-compat
+ // code, etc.
+ $wgUser->resetOptions();
+
+ foreach( $formData as $key => $value ) {
+ $wgUser->setOption( $key, $value );
+ }
+
+ $wgUser->saveSettings();
+
+ // Done
+ global $wgOut;
+ $wgOut->redirect( SpecialPage::getTitleFor( 'Preferences' )->getFullURL( 'success' ) );
+
+ return true;
+ }
+
+ public static function loadOldSearchNs( $user ) {
+ $searchableNamespaces = SearchEngine::searchableNamespaces();
+ // Back compat with old format
+ $arr = array();
+
+ foreach( $searchableNamespaces as $ns => $name ) {
+ if( $user->getOption( 'searchNs' . $ns ) ) {
+ $arr[] = $ns;
+ }
+ }
+
+ return $arr;
+ }
+}
+
+/** Some tweaks to allow js prefs to work */
+class PreferencesForm extends HTMLForm {
+
+ function wrapForm( $html ) {
+ $html = Xml::tags( 'div', array( 'id' => 'preferences' ), $html );
+
+ return parent::wrapForm( $html );
+ }
+
+ function getButtons() {
+ $html = parent::getButtons();
+
+ global $wgUser;
+
+ $sk = $wgUser->getSkin();
+ $t = SpecialPage::getTitleFor( 'Preferences', 'reset' );
+
+ $html .= "\n" . $sk->link( $t, wfMsg( 'restoreprefs' ) );
+
+ return $html;
+ }
+
+ function filterDataForSubmit( $data ) {
+ // Support for separating MultiSelect preferences into multiple preferences
+ // Due to lack of array support.
+ foreach( $this->mFlatFields as $fieldname => $field ) {
+ $info = $field->mParams;
+ if ($field instanceof HTMLMultiSelectField) {
+ $options = HTMLFormField::flattenOptions( $info['options'] );
+ $prefix = isset($info['prefix']) ? $info['prefix'] : $fieldname;
+
+ foreach( $options as $opt ) {
+ $data["$prefix$opt"] = in_array( $opt, $data[$fieldname] );
+ }
+
+ unset( $data[$fieldname] );
+ }
+ }
+
+ return $data;
+ }
+}
* @param $user User
* @return Array
*/
- public static function userNamespaces( &$user ) {
- $arr = array();
- foreach( SearchEngine::searchableNamespaces() as $ns => $name ) {
- if( $user->getOption( 'searchNs' . $ns ) ) {
- $arr[] = $ns;
- }
- }
+ public static function userNamespaces( $user ) {
+ $arr = Preferences::loadOldSearchNs( $user );
+ $searchableNamespaces = SearchEngine::searchableNamespaces();
+
+ $arr = array_intersect( $arr, array_keys($searchableNamespaces) ); // Filter
+
return $arr;
}
'Ipblocklist' => array( 'SpecialPage', 'Ipblocklist' ),
'Resetpass' => 'SpecialResetpass',
'DeletedContributions' => 'DeletedContributionsPage',
- 'Preferences' => array( 'SpecialPage', 'Preferences' ),
+ 'Preferences' => 'SpecialPreferences',
'Contributions' => 'SpecialContributions',
'Listgrouprights' => 'SpecialListGroupRights',
'Listusers' => array( 'SpecialPage', 'Listusers' ),
'mNewpassword',
'mNewpassTime',
'mEmail',
- 'mOptions',
'mTouched',
'mToken',
'mEmailAuthenticated',
'mEditCount',
// user_group table
'mGroups',
+ // user_properties table
+ 'mOptions',
);
/**
/**
* \bool Whether the cache variables have been loaded.
*/
- var $mDataLoaded, $mAuthLoaded;
+ var $mDataLoaded, $mAuthLoaded, $mOptionsLoaded;
/**
* \string Initialization data source if mDataLoaded==false. May be one of:
function saveToCache() {
$this->load();
$this->loadGroups();
+ $this->loadOptions();
if ( $this->isAnon() ) {
// Anonymous users are uncached
return;
/**
* Site defaults will override the global/language defaults
*/
- global $wgDefaultUserOptions, $wgContLang;
+ global $wgDefaultUserOptions, $wgContLang, $wgDefaultSkin;
$defOpt = $wgDefaultUserOptions + $wgContLang->getDefaultUserOptionOverrides();
/**
$variant = $wgContLang->getPreferredVariant( false );
$defOpt['variant'] = $variant;
$defOpt['language'] = $variant;
-
- foreach( $wgNamespacesToBeSearchedDefault as $nsnum => $val ) {
- $defOpt['searchNs'.$nsnum] = $val;
+ foreach( SearchEngine::searchableNamespaces() as $nsnum => $nsname ) {
+ $defOpt['searchNs'.$nsnum] = !empty($wgNamespacesToBeSearchedDefault[$nsnum]);
}
+ $defOpt['skin'] = $wgDefaultSkin;
+
return $defOpt;
}
if( isset( $defOpts[$opt] ) ) {
return $defOpts[$opt];
} else {
- return '';
+ return null;
}
}
* @see getBoolOption()
* @see getIntOption()
*/
- function getOption( $oname, $defaultOverride = '' ) {
- $this->load();
+ function getOption( $oname, $defaultOverride = null ) {
+ $this->loadOptions();
if ( is_null( $this->mOptions ) ) {
if($defaultOverride != '') {
}
if ( array_key_exists( $oname, $this->mOptions ) ) {
- return trim( $this->mOptions[$oname] );
+ return $this->mOptions[$oname];
} else {
return $defaultOverride;
}
*/
function setOption( $oname, $val ) {
$this->load();
- if ( is_null( $this->mOptions ) ) {
- $this->mOptions = User::getDefaultOptions();
- }
+ $this->loadOptions();
+
if ( $oname == 'skin' ) {
# Clear cached skin, so the new one displays immediately in Special:Preferences
unset( $this->mSkin );
}
- // Filter out any newlines that may have passed through input validation.
- // Newlines are used to separate items in the options blob.
- if( $val ) {
- $val = str_replace( "\r\n", "\n", $val );
- $val = str_replace( "\r", "\n", $val );
- $val = str_replace( "\n", " ", $val );
- }
+
// Explicitly NULL values should refer to defaults
global $wgDefaultUserOptions;
if( is_null($val) && isset($wgDefaultUserOptions[$oname]) ) {
$val = $wgDefaultUserOptions[$oname];
}
+
$this->mOptions[$oname] = $val;
}
/**
* Reset all options to the site defaults
*/
- function restoreOptions() {
+ function resetOptions() {
$this->mOptions = User::getDefaultOptions();
}
}
}
- /**
- * Encode this user's options as a string
- * @return \string Encoded options
- * @private
- */
- function encodeOptions() {
- $this->load();
- if ( is_null( $this->mOptions ) ) {
- $this->mOptions = User::getDefaultOptions();
- }
- $a = array();
- foreach ( $this->mOptions as $oname => $oval ) {
- array_push( $a, $oname.'='.$oval );
- }
- $s = implode( "\n", $a );
- return $s;
- }
-
/**
* Set this user's options from an encoded string
* @param $str \string Encoded options to import
* @private
*/
function decodeOptions( $str ) {
+ if ($str)
+ $this->mOptionsLoaded = true;
+ else
+ return;
+
$this->mOptions = array();
$a = explode( "\n", $str );
foreach ( $a as $s ) {
'user_real_name' => $this->mRealName,
'user_email' => $this->mEmail,
'user_email_authenticated' => $dbw->timestampOrNull( $this->mEmailAuthenticated ),
- 'user_options' => $this->encodeOptions(),
+ 'user_options' => '',
'user_touched' => $dbw->timestamp($this->mTouched),
'user_token' => $this->mToken,
'user_email_token' => $this->mEmailToken,
'user_id' => $this->mId
), __METHOD__
);
+
+ $this->saveOptions();
+
wfRunHooks( 'UserSaveSettings', array( $this ) );
$this->clearSharedCache();
$this->getUserPage()->invalidateCache();
'user_email' => $this->mEmail,
'user_email_authenticated' => $dbw->timestampOrNull( $this->mEmailAuthenticated ),
'user_real_name' => $this->mRealName,
- 'user_options' => $this->encodeOptions(),
+ 'user_options' => '',
'user_token' => $this->mToken,
'user_registration' => $dbw->timestamp( $this->mRegistration ),
'user_editcount' => 0,
// Clear instance cache other than user table data, which is already accurate
$this->clearInstanceCache();
+
+ $this->saveOptions();
}
/**
$log->addEntry( 'autocreate', $this->getUserPage(), '', array( $this->getId() ) );
return true;
}
+
+ protected function loadOptions() {
+ $this->load();
+ if ($this->mOptionsLoaded || !$this->getId() )
+ return;
+
+ $this->mOptions = self::getDefaultOptions();
+
+ // Load from database
+ $dbr = wfGetDB( DB_SLAVE );
+
+ $res = $dbr->select( 'user_properties',
+ '*',
+ array('up_user' => $this->getId()),
+ __METHOD__
+ );
+
+ while( $row = $dbr->fetchObject( $res ) ) {
+ $this->mOptions[$row->up_property] = $row->up_value;
+ }
+
+ $this->mOptionsLoaded = true;
+
+ wfRunHooks( 'UserLoadOptions', array( $this, &$this->mOptions ) );
+ }
+
+ protected function saveOptions() {
+ $this->loadOptions();
+ $dbw = wfGetDB( DB_MASTER );
+
+ $insert_rows = array();
+
+ $saveOptions = $this->mOptions;
+
+ // Allow hooks to abort, for instance to save to a global profile.
+ // Reset options to default state before saving.
+ if (!wfRunHooks( 'UserSaveOptions', array($this, &$saveOptions) ) )
+ return;
+
+ foreach( $saveOptions as $key => $value ) {
+ if ( is_null(self::getDefaultOption($key)) ||
+ $value != self::getDefaultOption( $key ) ) {
+ $insert_rows[] = array(
+ 'up_user' => $this->getId(),
+ 'up_property' => $key,
+ 'up_value' => $value,
+ );
+ }
+ }
+
+ $dbw->begin();
+ $dbw->delete( 'user_properties', array( 'up_user' => $this->getId() ), __METHOD__ );
+ $dbw->insert( 'user_properties', $insert_rows, __METHOD__ );
+ $dbw->commit();
+ }
+
}
$value = ($value !== false) ? $value : $name;
$this->options[] = Xml::option( $name, $value, $value === $this->default );
}
+
+ // This accepts an array of form
+ // label => value
+ // label => ( label => value, label => value )
+ public function addOptions( $options ) {
+ $this->options[] = trim(self::formatOptions( $options, $this->default ));
+ }
+
+ // This accepts an array of form
+ // label => value
+ // label => ( label => value, label => value )
+ static function formatOptions( $options, $default = false ) {
+ $data = '';
+ foreach( $options as $label => $value ) {
+ if ( is_array( $value ) ) {
+ $contents = self::formatOptions( $value, $default );
+ $data .= Xml::tags( 'optgroup', array( 'label' => $label ), $contents ) . "\n";
+ } else {
+ $data .= Xml::option( $label, $value, $value === $default ) . "\n";
+ }
+ }
+
+ return $data;
+ }
public function getHTML() {
return Xml::tags( 'select', $this->attributes, implode( "\n", $this->options ) );
<?php
-/**
- * Hold things related to displaying and saving user preferences.
- * @file
- * @ingroup SpecialPage
- */
-/**
- * Entry point that create the "Preferences" object
- */
-function wfSpecialPreferences() {
- global $wgRequest;
-
- $form = new PreferencesForm( $wgRequest );
- $form->execute();
-}
-
-/**
- * Preferences form handling
- * This object will show the preferences form and can save it as well.
- * @ingroup SpecialPage
- */
-class PreferencesForm {
- var $mQuickbar, $mStubs;
- var $mRows, $mCols, $mSkin, $mMath, $mDate, $mUserEmail, $mEmailFlag, $mNick;
- var $mUserLanguage, $mUserVariant;
- var $mSearch, $mRecent, $mRecentDays, $mTimeZone, $mHourDiff, $mSearchLines, $mSearchChars, $mAction;
- var $mReset, $mPosted, $mToggles, $mSearchNs, $mRealName, $mImageSize;
- var $mUnderline, $mWatchlistEdits, $mGender;
-
- /**
- * Constructor
- * Load some values
- */
- function __construct( &$request ) {
- global $wgContLang, $wgUser, $wgAllowRealName;
-
- $this->mQuickbar = $request->getVal( 'wpQuickbar' );
- $this->mStubs = $request->getVal( 'wpStubs' );
- $this->mRows = $request->getVal( 'wpRows' );
- $this->mCols = $request->getVal( 'wpCols' );
- $this->mSkin = Skin::normalizeKey( $request->getVal( 'wpSkin' ) );
- $this->mMath = $request->getVal( 'wpMath' );
- $this->mDate = $request->getVal( 'wpDate' );
- $this->mUserEmail = $request->getVal( 'wpUserEmail' );
- $this->mRealName = $wgAllowRealName ? $request->getVal( 'wpRealName' ) : '';
- $this->mEmailFlag = $request->getCheck( 'wpEmailFlag' ) ? 0 : 1;
- $this->mNick = $request->getVal( 'wpNick' );
- $this->mUserLanguage = $request->getVal( 'wpUserLanguage' );
- $this->mUserVariant = $request->getVal( 'wpUserVariant' );
- $this->mSearch = $request->getVal( 'wpSearch' );
- $this->mRecent = $request->getVal( 'wpRecent' );
- $this->mRecentDays = $request->getVal( 'wpRecentDays' );
- $this->mTimeZone = $request->getVal( 'wpTimeZone' );
- $this->mHourDiff = $request->getVal( 'wpHourDiff' );
- $this->mSearchLines = $request->getVal( 'wpSearchLines' );
- $this->mSearchChars = $request->getVal( 'wpSearchChars' );
- $this->mImageSize = $request->getVal( 'wpImageSize' );
- $this->mThumbSize = $request->getInt( 'wpThumbSize' );
- $this->mUnderline = $request->getInt( 'wpOpunderline' );
- $this->mAction = $request->getVal( 'action' );
- $this->mReset = $request->getCheck( 'wpReset' );
- $this->mRestoreprefs = $request->getCheck( 'wpRestore' );
- $this->mPosted = $request->wasPosted();
- $this->mSuccess = $request->getCheck( 'success' );
- $this->mWatchlistDays = $request->getVal( 'wpWatchlistDays' );
- $this->mWatchlistEdits = $request->getVal( 'wpWatchlistEdits' );
- $this->mDisableMWSuggest = $request->getCheck( 'wpDisableMWSuggest' );
- $this->mGender = $request->getVal( 'wpGender' );
-
- $this->mSaveprefs = $request->getCheck( 'wpSaveprefs' ) &&
- $this->mPosted &&
- $wgUser->matchEditToken( $request->getVal( 'wpEditToken' ) );
-
- # User toggles (the big ugly unsorted list of checkboxes)
- $this->mToggles = array();
- if ( $this->mPosted ) {
- $togs = User::getToggles();
- foreach ( $togs as $tname ) {
- $this->mToggles[$tname] = $request->getCheck( "wpOp$tname" ) ? 1 : 0;
- }
- }
-
- $this->mUsedToggles = array();
-
- # Search namespace options
- # Note: namespaces don't necessarily have consecutive keys
- $this->mSearchNs = array();
- if ( $this->mPosted ) {
- $namespaces = $wgContLang->getNamespaces();
- foreach ( $namespaces as $i => $namespace ) {
- if ( $i >= 0 ) {
- $this->mSearchNs[$i] = $request->getCheck( "wpNs$i" ) ? 1 : 0;
- }
- }
- }
-
- # Validate language
- if ( !preg_match( '/^[a-z\-]*$/', $this->mUserLanguage ) ) {
- $this->mUserLanguage = 'nolanguage';
- }
-
- wfRunHooks( 'InitPreferencesForm', array( $this, $request ) );
+class SpecialPreferences extends SpecialPage {
+ function __construct() {
+ parent::__construct( 'Preferences' );
}
+
+ function execute( $par ) {
+ global $wgOut, $wgUser, $wgRequest;
+
+ $wgOut->setPageTitle( wfMsg( 'preferences' ) );
+ $wgOut->setArticleRelated( false );
+ $wgOut->setRobotPolicy( 'noindex,nofollow' );
+ $wgOut->addScriptFile( 'prefs.js' );
- function execute() {
- global $wgUser, $wgOut;
-
+ $wgOut->disallowUserJs(); # Prevent hijacked user scripts from sniffing passwords etc.
+
if ( $wgUser->isAnon() ) {
- $wgOut->showErrorPage( 'prefsnologin', 'prefsnologintext',
- array( SpecialPage::getTitleFor( 'Preferences' )->getPrefixedDBkey() ) );
+ $wgOut->showErrorPage( 'prefsnologin', 'prefsnologintext', array($this->getTitle()->getPrefixedDBkey()) );
return;
}
if ( wfReadOnly() ) {
$wgOut->readOnlyPage();
return;
}
- if ( $this->mReset ) {
- $this->resetPrefs();
- $this->mainPrefsForm( 'reset', wfMsg( 'prefsreset' ) );
- } else if ( $this->mSaveprefs ) {
- $this->savePreferences();
- } else if ( $this->mRestoreprefs ) {
- $this->restorePreferences();
- } else {
- $this->resetPrefs();
- $this->mainPrefsForm( '' );
- }
- }
- /**
- * @access private
- */
- function validateInt( &$val, $min=0, $max=0x7fffffff ) {
- $val = intval($val);
- $val = min($val, $max);
- $val = max($val, $min);
- return $val;
- }
-
- /**
- * @access private
- */
- function validateFloat( &$val, $min, $max=0x7fffffff ) {
- $val = floatval( $val );
- $val = min( $val, $max );
- $val = max( $val, $min );
- return( $val );
- }
-
- /**
- * @access private
- */
- function validateIntOrNull( &$val, $min=0, $max=0x7fffffff ) {
- $val = trim($val);
- if($val === '') {
- return null;
- } else {
- return $this->validateInt( $val, $min, $max );
- }
- }
-
- /**
- * @access private
- */
- function validateDate( $val ) {
- global $wgLang, $wgContLang;
- if ( $val !== false && (
- in_array( $val, (array)$wgLang->getDatePreferences() ) ||
- in_array( $val, (array)$wgContLang->getDatePreferences() ) ) )
- {
- return $val;
- } else {
- return $wgLang->getDefaultDateFormat();
- }
- }
-
- /**
- * Used to validate the user inputed timezone before saving it as
- * 'timecorrection', will return 'System' if fed bogus data.
- * @access private
- * @param string $tz the user input Zoneinfo timezone
- * @param string $s the user input offset string
- * @return string
- */
- function validateTimeZone( $tz, $s ) {
- $data = explode( '|', $tz, 3 );
- switch ( $data[0] ) {
- case 'ZoneInfo':
- case 'System':
- return $tz;
- case 'Offset':
- default:
- $data = explode( ':', $s, 2 );
- $minDiff = 0;
- if( count( $data ) == 2 ) {
- $data[0] = intval( $data[0] );
- $data[1] = intval( $data[1] );
- $minDiff = abs( $data[0] ) * 60 + $data[1];
- if ( $data[0] < 0 ) $minDiff = -$minDiff;
- } else {
- $minDiff = intval( $data[0] ) * 60;
- }
-
- # Max is +14:00 and min is -12:00, see:
- # http://en.wikipedia.org/wiki/Timezone
- $minDiff = min( $minDiff, 840 ); # 14:00
- $minDiff = max( $minDiff, -720 ); # -12:00
- return 'Offset|'.$minDiff;
- }
- }
-
- function validateGender( $val ) {
- $valid = array( 'male', 'female', 'unknown' );
- if ( in_array($val, $valid) ) {
- return $val;
- } else {
- return User::getDefaultOption( 'gender' );
- }
- }
-
- /**
- * @access private
- */
- function savePreferences() {
- global $wgUser, $wgOut, $wgParser;
- global $wgEnableUserEmail, $wgEnableEmail;
- global $wgEmailAuthentication, $wgRCMaxAge;
- global $wgAuth, $wgEmailConfirmToEdit;
-
- $wgUser->setRealName( $this->mRealName );
- $oldOptions = $wgUser->mOptions;
-
- if( $wgUser->getOption( 'language' ) !== $this->mUserLanguage ) {
- $needRedirect = true;
- } else {
- $needRedirect = false;
- }
-
- # Validate the signature and clean it up as needed
- global $wgMaxSigChars;
- if( mb_strlen( $this->mNick ) > $wgMaxSigChars ) {
- global $wgLang;
- $this->mainPrefsForm( 'error',
- wfMsgExt( 'badsiglength', 'parsemag', $wgLang->formatNum( $wgMaxSigChars ) ) );
- return;
- } elseif( $this->mToggles['fancysig'] ) {
- if( $wgParser->validateSig( $this->mNick ) !== false ) {
- $this->mNick = $wgParser->cleanSig( $this->mNick );
- } else {
- $this->mainPrefsForm( 'error', wfMsg( 'badsig' ) );
- return;
- }
- } else {
- // When no fancy sig used, make sure ~{3,5} get removed.
- $this->mNick = $wgParser->cleanSigInSig( $this->mNick );
- }
-
- $wgUser->setOption( 'language', $this->mUserLanguage );
- $wgUser->setOption( 'variant', $this->mUserVariant );
- $wgUser->setOption( 'nickname', $this->mNick );
- $wgUser->setOption( 'quickbar', $this->mQuickbar );
- global $wgAllowUserSkin;
- if( $wgAllowUserSkin ) {
- $wgUser->setOption( 'skin', $this->mSkin );
- }
- global $wgUseTeX;
- if( $wgUseTeX ) {
- $wgUser->setOption( 'math', $this->mMath );
- }
- $wgUser->setOption( 'date', $this->validateDate( $this->mDate ) );
- $wgUser->setOption( 'searchlimit', $this->validateIntOrNull( $this->mSearch ) );
- $wgUser->setOption( 'contextlines', $this->validateIntOrNull( $this->mSearchLines ) );
- $wgUser->setOption( 'contextchars', $this->validateIntOrNull( $this->mSearchChars ) );
- $wgUser->setOption( 'rclimit', $this->validateIntOrNull( $this->mRecent ) );
- $wgUser->setOption( 'rcdays', $this->validateInt($this->mRecentDays, 1, ceil($wgRCMaxAge / (3600*24))));
- $wgUser->setOption( 'wllimit', $this->validateIntOrNull( $this->mWatchlistEdits, 0, 1000 ) );
- $wgUser->setOption( 'rows', $this->validateInt( $this->mRows, 4, 1000 ) );
- $wgUser->setOption( 'cols', $this->validateInt( $this->mCols, 4, 1000 ) );
- $wgUser->setOption( 'stubthreshold', $this->validateIntOrNull( $this->mStubs ) );
- $wgUser->setOption( 'timecorrection', $this->validateTimeZone( $this->mTimeZone, $this->mHourDiff ) );
- $wgUser->setOption( 'imagesize', $this->mImageSize );
- $wgUser->setOption( 'thumbsize', $this->mThumbSize );
- $wgUser->setOption( 'underline', $this->validateInt($this->mUnderline, 0, 2) );
- $wgUser->setOption( 'watchlistdays', $this->validateFloat( $this->mWatchlistDays, 0, 7 ) );
- $wgUser->setOption( 'disablesuggest', $this->mDisableMWSuggest );
- $wgUser->setOption( 'gender', $this->validateGender( $this->mGender ) );
-
- # Set search namespace options
- foreach( $this->mSearchNs as $i => $value ) {
- $wgUser->setOption( "searchNs{$i}", $value );
- }
-
- if( $wgEnableEmail && $wgEnableUserEmail ) {
- $wgUser->setOption( 'disablemail', $this->mEmailFlag );
- }
-
- # Set user toggles
- foreach ( $this->mToggles as $tname => $tvalue ) {
- $wgUser->setOption( $tname, $tvalue );
- }
-
- $error = false;
- if( $wgEnableEmail ) {
- $newadr = $this->mUserEmail;
- $oldadr = $wgUser->getEmail();
- if( ($newadr != '') && ($newadr != $oldadr) ) {
- # the user has supplied a new email address on the login page
- if( $wgUser->isValidEmailAddr( $newadr ) ) {
- # new behaviour: set this new emailaddr from login-page into user database record
- $wgUser->setEmail( $newadr );
- # but flag as "dirty" = unauthenticated
- $wgUser->invalidateEmail();
- if ($wgEmailAuthentication) {
- # Mail a temporary password to the dirty address.
- # User can come back through the confirmation URL to re-enable email.
- $result = $wgUser->sendConfirmationMail();
- if( WikiError::isError( $result ) ) {
- $error = wfMsg( 'mailerror', htmlspecialchars( $result->getMessage() ) );
- } else {
- $error = wfMsg( 'eauthentsent', $wgUser->getName() );
- }
- }
- } else {
- $error = wfMsg( 'invalidemailaddress' );
- }
- } else {
- if( $wgEmailConfirmToEdit && empty( $newadr ) ) {
- $this->mainPrefsForm( 'error', wfMsg( 'noemailtitle' ) );
- return;
- }
- $wgUser->setEmail( $this->mUserEmail );
- }
- if( $oldadr != $newadr ) {
- wfRunHooks( 'PrefsEmailAudit', array( $wgUser, $oldadr, $newadr ) );
- }
- }
-
- if( !$wgAuth->updateExternalDB( $wgUser ) ){
- $this->mainPrefsForm( 'error', wfMsg( 'externaldberror' ) );
- return;
- }
-
- $msg = '';
- if ( !wfRunHooks( 'SavePreferences', array( $this, $wgUser, &$msg, $oldOptions ) ) ) {
- $this->mainPrefsForm( 'error', $msg );
+
+ if ($par == 'reset') {
+ $this->showResetForm();
return;
}
- $wgUser->setCookies();
- $wgUser->saveSettings();
-
- if( $needRedirect && $error === false ) {
- $title = SpecialPage::getTitleFor( 'Preferences' );
- $wgOut->redirect( $title->getFullURL( 'success' ) );
- return;
+ if ( $wgRequest->getCheck( 'success' ) ) {
+ $wgOut->wrapWikiMsg(
+ '<div class="successbox"><strong>$1</strong></div>',
+ 'savedprefs'
+ );
}
+
+ $htmlForm = Preferences::getFormObject( $wgUser );
- $wgOut->parserOptions( ParserOptions::newFromUser( $wgUser ) );
- $this->mainPrefsForm( $error === false ? 'success' : 'error', $error);
+ $htmlForm->show();
}
-
- /**
- * @access private
- */
- function resetPrefs() {
- global $wgUser, $wgLang, $wgContLang, $wgContLanguageCode, $wgAllowRealName, $wgLocalTZoffset;
-
- $this->mUserEmail = $wgUser->getEmail();
- $this->mUserEmailAuthenticationtimestamp = $wgUser->getEmailAuthenticationtimestamp();
- $this->mRealName = ($wgAllowRealName) ? $wgUser->getRealName() : '';
-
- # language value might be blank, default to content language
- $this->mUserLanguage = $wgUser->getOption( 'language', $wgContLanguageCode );
-
- $this->mUserVariant = $wgUser->getOption( 'variant');
- $this->mEmailFlag = $wgUser->getOption( 'disablemail' ) == 1 ? 1 : 0;
- $this->mNick = $wgUser->getOption( 'nickname' );
-
- $this->mQuickbar = $wgUser->getOption( 'quickbar' );
- $this->mSkin = Skin::normalizeKey( $wgUser->getOption( 'skin' ) );
- $this->mMath = $wgUser->getOption( 'math' );
- $this->mDate = $wgUser->getDatePreference();
- $this->mRows = $wgUser->getOption( 'rows' );
- $this->mCols = $wgUser->getOption( 'cols' );
- $this->mStubs = $wgUser->getOption( 'stubthreshold' );
-
- $tz = $wgUser->getOption( 'timecorrection' );
- $data = explode( '|', $tz, 3 );
- $minDiff = null;
- switch ( $data[0] ) {
- case 'ZoneInfo':
- $this->mTimeZone = $tz;
- # Check if the specified TZ exists, and change to 'Offset' if
- # not.
- if ( !function_exists('timezone_open') || @timezone_open( $data[2] ) === false ) {
- $this->mTimeZone = 'Offset';
- $minDiff = intval( $data[1] );
- }
- break;
- case '':
- case 'System':
- $this->mTimeZone = 'System|'.$wgLocalTZoffset;
- break;
- case 'Offset':
- $this->mTimeZone = 'Offset';
- $minDiff = intval( $data[1] );
- break;
- default:
- $this->mTimeZone = 'Offset';
- $data = explode( ':', $tz, 2 );
- if( count( $data ) == 2 ) {
- $data[0] = intval( $data[0] );
- $data[1] = intval( $data[1] );
- $minDiff = abs( $data[0] ) * 60 + $data[1];
- if ( $data[0] < 0 ) $minDiff = -$minDiff;
- } else {
- $minDiff = intval( $data[0] ) * 60;
- }
- break;
- }
- if ( is_null( $minDiff ) ) {
- $this->mHourDiff = '';
- } else {
- $this->mHourDiff = sprintf( '%+03d:%02d', floor($minDiff/60), abs($minDiff)%60 );
- }
-
- $this->mSearch = $wgUser->getOption( 'searchlimit' );
- $this->mSearchLines = $wgUser->getOption( 'contextlines' );
- $this->mSearchChars = $wgUser->getOption( 'contextchars' );
- $this->mImageSize = $wgUser->getOption( 'imagesize' );
- $this->mThumbSize = $wgUser->getOption( 'thumbsize' );
- $this->mRecent = $wgUser->getOption( 'rclimit' );
- $this->mRecentDays = $wgUser->getOption( 'rcdays' );
- $this->mWatchlistEdits = $wgUser->getOption( 'wllimit' );
- $this->mUnderline = $wgUser->getOption( 'underline' );
- $this->mWatchlistDays = $wgUser->getOption( 'watchlistdays' );
- $this->mDisableMWSuggest = $wgUser->getBoolOption( 'disablesuggest' );
- $this->mGender = $wgUser->getOption( 'gender' );
-
- $togs = User::getToggles();
- foreach ( $togs as $tname ) {
- $this->mToggles[$tname] = $wgUser->getOption( $tname );
- }
-
- $namespaces = $wgContLang->getNamespaces();
- foreach ( $namespaces as $i => $namespace ) {
- if ( $i >= NS_MAIN ) {
- $this->mSearchNs[$i] = $wgUser->getOption( 'searchNs'.$i );
- }
- }
-
- wfRunHooks( 'ResetPreferences', array( $this, $wgUser ) );
+
+ function showResetForm() {
+ global $wgOut;
+
+ $wgOut->addWikiMsg( 'prefs-reset-intro' );
+
+ $htmlForm = new HTMLForm( array(), 'prefs-restore' );
+
+ $htmlForm->setSubmitText( wfMsg( 'restoreprefs' ) );
+ $htmlForm->setTitle( $this->getTitle('reset') );
+ $htmlForm->setSubmitCallback( array( __CLASS__, 'submitReset' ) );
+ $htmlForm->suppressReset();
+
+ $htmlForm->show();
}
- /**
- * @access private
- */
- function restorePreferences() {
+ static function submitReset( $formData ) {
global $wgUser, $wgOut;
- $wgUser->restoreOptions();
- $wgUser->setCookies();
- $wgUser->saveSettings();
- $title = SpecialPage::getTitleFor( 'Preferences' );
- $wgOut->redirect( $title->getFullURL( 'success' ) );
- }
-
- /**
- * @access private
- */
- function namespacesCheckboxes() {
- global $wgContLang;
-
- # Determine namespace checkboxes
- $namespaces = $wgContLang->getNamespaces();
- $r1 = null;
-
- foreach ( $namespaces as $i => $name ) {
- if ($i < 0)
- continue;
- $checked = $this->mSearchNs[$i] ? "checked='checked'" : '';
- $name = str_replace( '_', ' ', $namespaces[$i] );
-
- if ( empty($name) )
- $name = wfMsg( 'blanknamespace' );
-
- $r1 .= "<input type='checkbox' value='1' name='wpNs$i' id='wpNs$i' {$checked}/> <label for='wpNs$i'>{$name}</label><br />\n";
- }
- return $r1;
- }
-
-
- function getToggle( $tname, $trailer = false, $disabled = false ) {
- global $wgUser, $wgLang;
-
- $this->mUsedToggles[$tname] = true;
- $ttext = $wgLang->getUserToggle( $tname );
-
- $checked = $wgUser->getOption( $tname ) == 1 ? ' checked="checked"' : '';
- $disabled = $disabled ? ' disabled="disabled"' : '';
- $trailer = $trailer ? $trailer : '';
- return "<div class='toggle'><input type='checkbox' value='1' id=\"$tname\" name=\"wpOp$tname\"$checked$disabled />" .
- " <span class='toggletext'><label for=\"$tname\">$ttext</label>$trailer</span></div>\n";
- }
-
- function getToggles( $items ) {
- $out = "";
- foreach( $items as $item ) {
- if( $item === false )
- continue;
- if( is_array( $item ) ) {
- list( $key, $trailer ) = $item;
- } else {
- $key = $item;
- $trailer = false;
- }
- $out .= $this->getToggle( $key, $trailer );
- }
- return $out;
- }
-
- function addRow($td1, $td2) {
- return "<tr><td class='mw-label'>$td1</td><td class='mw-input'>$td2</td></tr>";
- }
-
- /**
- * Helper function for user information panel
- * @param $td1 label for an item
- * @param $td2 item or null
- * @param $td3 optional help or null
- * @return xhtml block
- */
- function tableRow( $td1, $td2 = null, $td3 = null ) {
-
- if ( is_null( $td3 ) ) {
- $td3 = '';
- } else {
- $td3 = Xml::tags( 'tr', null,
- Xml::tags( 'td', array( 'class' => 'pref-label', 'colspan' => '2' ), $td3 )
- );
- }
-
- if ( is_null( $td2 ) ) {
- $td1 = Xml::tags( 'td', array( 'class' => 'pref-label', 'colspan' => '2' ), $td1 );
- $td2 = '';
- } else {
- $td1 = Xml::tags( 'td', array( 'class' => 'pref-label' ), $td1 );
- $td2 = Xml::tags( 'td', array( 'class' => 'pref-input' ), $td2 );
- }
-
- return Xml::tags( 'tr', null, $td1 . $td2 ). $td3 . "\n";
-
- }
-
- /**
- * @access private
- */
- function mainPrefsForm( $status , $message = '' ) {
- global $wgUser, $wgOut, $wgLang, $wgContLang, $wgAuth;
- global $wgAllowRealName, $wgImageLimits, $wgThumbLimits;
- global $wgDisableLangConversion, $wgDisableTitleConversion;
- global $wgEnotifWatchlist, $wgEnotifUserTalk,$wgEnotifMinorEdits;
- global $wgRCShowWatchingUsers, $wgEnotifRevealEditorAddress;
- global $wgEnableEmail, $wgEnableUserEmail, $wgEmailAuthentication;
- global $wgContLanguageCode, $wgDefaultSkin, $wgCookieExpiration;
- global $wgEmailConfirmToEdit, $wgEnableMWSuggest, $wgLocalTZoffset;
-
- $wgOut->setPageTitle( wfMsg( 'preferences' ) );
- $wgOut->setArticleRelated( false );
- $wgOut->setRobotPolicy( 'noindex,nofollow' );
- $wgOut->addScriptFile( 'prefs.js' );
-
- $wgOut->disallowUserJs(); # Prevent hijacked user scripts from sniffing passwords etc.
-
- if ( $this->mSuccess || 'success' == $status ) {
- $wgOut->wrapWikiMsg( '<div class="successbox"><strong>$1</strong></div>', 'savedprefs' );
- } else if ( 'error' == $status ) {
- $wgOut->addWikiText( '<div class="errorbox"><strong>' . $message . '</strong></div>' );
- } else if ( '' != $status ) {
- $wgOut->addWikiText( $message . "\n----" );
- }
-
- $qbs = $wgLang->getQuickbarSettings();
- $mathopts = $wgLang->getMathNames();
- $dateopts = $wgLang->getDatePreferences();
- $togs = User::getToggles();
-
- $titleObj = SpecialPage::getTitleFor( 'Preferences' );
-
- # Pre-expire some toggles so they won't show if disabled
- $this->mUsedToggles[ 'shownumberswatching' ] = true;
- $this->mUsedToggles[ 'showupdated' ] = true;
- $this->mUsedToggles[ 'enotifwatchlistpages' ] = true;
- $this->mUsedToggles[ 'enotifusertalkpages' ] = true;
- $this->mUsedToggles[ 'enotifminoredits' ] = true;
- $this->mUsedToggles[ 'enotifrevealaddr' ] = true;
- $this->mUsedToggles[ 'ccmeonemails' ] = true;
- $this->mUsedToggles[ 'uselivepreview' ] = true;
- $this->mUsedToggles[ 'noconvertlink' ] = true;
-
-
- if ( !$this->mEmailFlag ) { $emfc = 'checked="checked"'; }
- else { $emfc = ''; }
-
-
- if ($wgEmailAuthentication && ($this->mUserEmail != '') ) {
- if( $wgUser->getEmailAuthenticationTimestamp() ) {
- // date and time are separate parameters to facilitate localisation.
- // $time is kept for backward compat reasons.
- // 'emailauthenticated' is also used in SpecialConfirmemail.php
- $time = $wgLang->timeAndDate( $wgUser->getEmailAuthenticationTimestamp(), true );
- $d = $wgLang->date( $wgUser->getEmailAuthenticationTimestamp(), true );
- $t = $wgLang->time( $wgUser->getEmailAuthenticationTimestamp(), true );
- $emailauthenticated = wfMsg('emailauthenticated', $time, $d, $t ).'<br />';
- $disableEmailPrefs = false;
- } else {
- $disableEmailPrefs = true;
- $skin = $wgUser->getSkin();
- $emailauthenticated = wfMsg('emailnotauthenticated').'<br />' .
- $skin->makeKnownLinkObj( SpecialPage::getTitleFor( 'Confirmemail' ),
- wfMsg( 'emailconfirmlink' ) ) . '<br />';
- }
- } else {
- $emailauthenticated = '';
- $disableEmailPrefs = false;
- }
-
- if ($this->mUserEmail == '') {
- $emailauthenticated = wfMsg( 'noemailprefs' ) . '<br />';
- }
-
- $ps = $this->namespacesCheckboxes();
-
- $enotifwatchlistpages = ($wgEnotifWatchlist) ? $this->getToggle( 'enotifwatchlistpages', false, $disableEmailPrefs ) : '';
- $enotifusertalkpages = ($wgEnotifUserTalk) ? $this->getToggle( 'enotifusertalkpages', false, $disableEmailPrefs ) : '';
- $enotifminoredits = ($wgEnotifWatchlist && $wgEnotifMinorEdits) ? $this->getToggle( 'enotifminoredits', false, $disableEmailPrefs ) : '';
- $enotifrevealaddr = (($wgEnotifWatchlist || $wgEnotifUserTalk) && $wgEnotifRevealEditorAddress) ? $this->getToggle( 'enotifrevealaddr', false, $disableEmailPrefs ) : '';
-
- # </FIXME>
-
- $wgOut->addHTML(
- Xml::openElement( 'form', array(
- 'action' => $titleObj->getLocalUrl(),
- 'method' => 'post',
- 'id' => 'mw-preferences-form',
- ) ) .
- Xml::openElement( 'div', array( 'id' => 'preferences' ) )
- );
-
- # User data
-
- $wgOut->addHTML(
- Xml::fieldset( wfMsg('prefs-personal') ) .
- Xml::openElement( 'table' ) .
- $this->tableRow( Xml::element( 'h2', null, wfMsg( 'prefs-personal' ) ) )
- );
-
- # Get groups to which the user belongs
- $userEffectiveGroups = $wgUser->getEffectiveGroups();
- $userEffectiveGroupsArray = array();
- foreach( $userEffectiveGroups as $ueg ) {
- if( $ueg == '*' ) {
- // Skip the default * group, seems useless here
- continue;
- }
- $userEffectiveGroupsArray[] = User::makeGroupLinkHTML( $ueg );
- }
- asort( $userEffectiveGroupsArray );
-
- $sk = $wgUser->getSkin();
- $toolLinks = array();
- $toolLinks[] = $sk->makeKnownLinkObj( SpecialPage::getTitleFor( 'ListGroupRights' ), wfMsg( 'listgrouprights' ) );
- # At the moment one tool link only but be prepared for the future...
- # FIXME: Add a link to Special:Userrights for users who are allowed to use it.
- # $wgUser->isAllowed( 'userrights' ) seems to strict in some cases
-
- $userInformationHtml =
- $this->tableRow( wfMsgHtml( 'username' ), htmlspecialchars( $wgUser->getName() ) ) .
- $this->tableRow( wfMsgHtml( 'uid' ), htmlspecialchars( $wgUser->getId() ) ) .
-
- $this->tableRow(
- wfMsgExt( 'prefs-memberingroups', array( 'parseinline' ), count( $userEffectiveGroupsArray ) ),
- $wgLang->commaList( $userEffectiveGroupsArray ) .
- '<br />(' . $wgLang->pipeList( $toolLinks ) . ')'
- ) .
-
- $this->tableRow(
- wfMsgHtml( 'prefs-edits' ),
- $wgLang->formatNum( $wgUser->getEditCount() )
- );
-
- if( wfRunHooks( 'PreferencesUserInformationPanel', array( $this, &$userInformationHtml ) ) ) {
- $wgOut->addHTML( $userInformationHtml );
- }
-
- if ( $wgAllowRealName ) {
- $wgOut->addHTML(
- $this->tableRow(
- Xml::label( wfMsg('yourrealname'), 'wpRealName' ),
- Xml::input( 'wpRealName', 25, $this->mRealName, array( 'id' => 'wpRealName' ) ),
- Xml::tags('div', array( 'class' => 'prefsectiontip' ),
- wfMsgExt( 'prefs-help-realname', 'parseinline' )
- )
- )
- );
- }
- if ( $wgEnableEmail ) {
- $wgOut->addHTML(
- $this->tableRow(
- Xml::label( wfMsg('youremail'), 'wpUserEmail' ),
- Xml::input( 'wpUserEmail', 25, $this->mUserEmail, array( 'id' => 'wpUserEmail' ) ),
- Xml::tags('div', array( 'class' => 'prefsectiontip' ),
- wfMsgExt( $wgEmailConfirmToEdit ? 'prefs-help-email-required' : 'prefs-help-email', 'parseinline' )
- )
- )
- );
- }
-
- global $wgParser, $wgMaxSigChars;
- if( mb_strlen( $this->mNick ) > $wgMaxSigChars ) {
- $invalidSig = $this->tableRow(
- ' ',
- Xml::element( 'span', array( 'class' => 'error' ),
- wfMsgExt( 'badsiglength', 'parsemag', $wgLang->formatNum( $wgMaxSigChars ) ) )
- );
- } elseif( !empty( $this->mToggles['fancysig'] ) &&
- false === $wgParser->validateSig( $this->mNick ) ) {
- $invalidSig = $this->tableRow(
- ' ',
- Xml::element( 'span', array( 'class' => 'error' ), wfMsg( 'badsig' ) )
- );
- } else {
- $invalidSig = '';
- }
-
- $wgOut->addHTML(
- $this->tableRow(
- Xml::label( wfMsg( 'yournick' ), 'wpNick' ),
- Xml::input( 'wpNick', 25, $this->mNick,
- array(
- 'id' => 'wpNick',
- // Note: $wgMaxSigChars is enforced in Unicode characters,
- // both on the backend and now in the browser.
- // Badly-behaved requests may still try to submit
- // an overlong string, however.
- 'maxlength' => $wgMaxSigChars ) )
- ) .
- $invalidSig .
- $this->tableRow( ' ', $this->getToggle( 'fancysig' ) )
- );
-
- $gender = new XMLSelect( 'wpGender', 'wpGender', $this->mGender );
- $gender->addOption( wfMsg( 'gender-unknown' ), 'unknown' );
- $gender->addOption( wfMsg( 'gender-male' ), 'male' );
- $gender->addOption( wfMsg( 'gender-female' ), 'female' );
-
- $wgOut->addHTML(
- $this->tableRow(
- Xml::label( wfMsg( 'yourgender' ), 'wpGender' ),
- $gender->getHTML(),
- Xml::tags( 'div', array( 'class' => 'prefsectiontip' ),
- wfMsgExt( 'prefs-help-gender', 'parseinline' )
- )
- )
- );
-
- list( $lsLabel, $lsSelect) = Xml::languageSelector( $this->mUserLanguage, false );
- $wgOut->addHTML(
- $this->tableRow( $lsLabel, $lsSelect )
- );
-
- /* see if there are multiple language variants to choose from*/
- if(!$wgDisableLangConversion) {
- $variants = $wgContLang->getVariants();
- $variantArray = array();
-
- $languages = Language::getLanguageNames( true );
- foreach($variants as $v) {
- $v = str_replace( '_', '-', strtolower($v));
- if( array_key_exists( $v, $languages ) ) {
- // If it doesn't have a name, we'll pretend it doesn't exist
- $variantArray[$v] = $languages[$v];
- }
- }
-
- $options = "\n";
- foreach( $variantArray as $code => $name ) {
- $selected = ($code == $this->mUserVariant);
- $options .= Xml::option( "$code - $name", $code, $selected ) . "\n";
- }
-
- if(count($variantArray) > 1) {
- $wgOut->addHTML(
- $this->tableRow(
- Xml::label( wfMsg( 'yourvariant' ), 'wpUserVariant' ),
- Xml::tags( 'select',
- array( 'name' => 'wpUserVariant', 'id' => 'wpUserVariant' ),
- $options
- )
- )
- );
- }
-
- if(count($variantArray) > 1 && !$wgDisableLangConversion && !$wgDisableTitleConversion) {
- $wgOut->addHTML(
- Xml::tags( 'tr', null,
- Xml::tags( 'td', array( 'colspan' => '2' ),
- $this->getToggle( "noconvertlink" )
- )
- )
- );
- }
- }
-
- # Password
- if( $wgAuth->allowPasswordChange() ) {
- $link = $wgUser->getSkin()->link( SpecialPage::getTitleFor( 'ResetPass' ), wfMsgHtml( 'prefs-resetpass' ),
- array() , array('returnto' => SpecialPage::getTitleFor( 'Preferences') ) );
- $wgOut->addHTML(
- $this->tableRow( Xml::element( 'h2', null, wfMsg( 'changepassword' ) ) ) .
- $this->tableRow( '<ul><li>' . $link . '</li></ul>' ) );
- }
-
- # <FIXME>
- # Enotif
- if ( $wgEnableEmail ) {
-
- $moreEmail = '';
- if ($wgEnableUserEmail) {
- // fixme -- the "allowemail" pseudotoggle is a hacked-together
- // inversion for the "disableemail" preference.
- $emf = wfMsg( 'allowemail' );
- $disabled = $disableEmailPrefs ? ' disabled="disabled"' : '';
- $moreEmail =
- "<input type='checkbox' $emfc $disabled value='1' name='wpEmailFlag' id='wpEmailFlag' /> <label for='wpEmailFlag'>$emf</label>" .
- $this->getToggle( 'ccmeonemails', '', $disableEmailPrefs );
- }
-
-
- $wgOut->addHTML(
- $this->tableRow( Xml::element( 'h2', null, wfMsg( 'email' ) ) ) .
- $this->tableRow(
- $emailauthenticated.
- $enotifrevealaddr.
- $enotifwatchlistpages.
- $enotifusertalkpages.
- $enotifminoredits.
- $moreEmail
- )
- );
- }
- # </FIXME>
-
- $wgOut->addHTML(
- Xml::closeElement( 'table' ) .
- Xml::closeElement( 'fieldset' )
- );
-
-
- # Quickbar
- #
- if ($this->mSkin == 'cologneblue' || $this->mSkin == 'standard') {
- $wgOut->addHTML( "<fieldset>\n<legend>" . wfMsg( 'qbsettings' ) . "</legend>\n" );
- for ( $i = 0; $i < count( $qbs ); ++$i ) {
- if ( $i == $this->mQuickbar ) { $checked = ' checked="checked"'; }
- else { $checked = ""; }
- $wgOut->addHTML( "<div><label><input type='radio' name='wpQuickbar' value=\"$i\"$checked />{$qbs[$i]}</label></div>\n" );
- }
- $wgOut->addHTML( "</fieldset>\n\n" );
- } else {
- # Need to output a hidden option even if the relevant skin is not in use,
- # otherwise the preference will get reset to 0 on submit
- $wgOut->addHTML( Xml::hidden( 'wpQuickbar', $this->mQuickbar ) );
- }
-
- # Skin
- #
- global $wgAllowUserSkin;
- if( $wgAllowUserSkin ) {
- $wgOut->addHTML( "<fieldset>\n<legend>\n" . wfMsg( 'skin' ) . "</legend>\n" );
- $mptitle = Title::newMainPage();
- $previewtext = wfMsg( 'skin-preview' );
- # Only show members of Skin::getSkinNames() rather than
- # $skinNames (skins is all skin names from Language.php)
- $validSkinNames = Skin::getUsableSkins();
- # Sort by UI skin name. First though need to update validSkinNames as sometimes
- # the skinkey & UI skinname differ (e.g. "standard" skinkey is "Classic" in the UI).
- foreach ( $validSkinNames as $skinkey => &$skinname ) {
- $msgName = "skinname-{$skinkey}";
- $localisedSkinName = wfMsg( $msgName );
- if ( !wfEmptyMsg( $msgName, $localisedSkinName ) ) {
- $skinname = $localisedSkinName;
- }
- }
- asort($validSkinNames);
- foreach( $validSkinNames as $skinkey => $sn ) {
- $checked = $skinkey == $this->mSkin ? ' checked="checked"' : '';
- $mplink = htmlspecialchars( $mptitle->getLocalURL( "useskin=$skinkey" ) );
- $previewlink = "(<a target='_blank' href=\"$mplink\">$previewtext</a>)";
- $extraLinks = '';
- global $wgAllowUserCss, $wgAllowUserJs;
- if( $wgAllowUserCss ) {
- $cssPage = Title::makeTitleSafe( NS_USER, $wgUser->getName().'/'.$skinkey.'.css' );
- $customCSS = $sk->makeLinkObj( $cssPage, wfMsgExt('prefs-custom-css', array() ) );
- $extraLinks .= " ($customCSS)";
- }
- if( $wgAllowUserJs ) {
- $jsPage = Title::makeTitleSafe( NS_USER, $wgUser->getName().'/'.$skinkey.'.js' );
- $customJS = $sk->makeLinkObj( $jsPage, wfMsgHtml('prefs-custom-js') );
- $extraLinks .= " ($customJS)";
- }
- if( $skinkey == $wgDefaultSkin )
- $sn .= ' (' . wfMsg( 'default' ) . ')';
- $wgOut->addHTML( "<input type='radio' name='wpSkin' id=\"wpSkin$skinkey\" value=\"$skinkey\"$checked />
- <label for=\"wpSkin$skinkey\">{$sn}</label> $previewlink{$extraLinks}<br />\n" );
- }
- $wgOut->addHTML( "</fieldset>\n\n" );
- }
-
- # Math
- #
- global $wgUseTeX;
- if( $wgUseTeX ) {
- $wgOut->addHTML( "<fieldset>\n<legend>" . wfMsg('math') . '</legend>' );
- foreach ( $mathopts as $k => $v ) {
- $checked = ($k == $this->mMath);
- $wgOut->addHTML(
- Xml::openElement( 'div' ) .
- Xml::radioLabel( wfMsg( $v ), 'wpMath', $k, "mw-sp-math-$k", $checked ) .
- Xml::closeElement( 'div' ) . "\n"
- );
- }
- $wgOut->addHTML( "</fieldset>\n\n" );
- }
-
- # Files
- #
- $imageLimitOptions = null;
- foreach ( $wgImageLimits as $index => $limits ) {
- $selected = ($index == $this->mImageSize);
- $imageLimitOptions .= Xml::option( "{$limits[0]}×{$limits[1]}" .
- wfMsg('unit-pixel'), $index, $selected );
- }
-
- $imageThumbOptions = null;
- foreach ( $wgThumbLimits as $index => $size ) {
- $selected = ($index == $this->mThumbSize);
- $imageThumbOptions .= Xml::option($size . wfMsg('unit-pixel'), $index,
- $selected);
- }
-
- $imageSizeId = 'wpImageSize';
- $thumbSizeId = 'wpThumbSize';
- $wgOut->addHTML(
- Xml::fieldset( wfMsg( 'files' ) ) . "\n" .
- Xml::openElement( 'table' ) .
- '<tr>
- <td class="mw-label">' .
- Xml::label( wfMsg( 'imagemaxsize' ), $imageSizeId ) .
- '</td>
- <td class="mw-input">' .
- Xml::openElement( 'select', array( 'name' => $imageSizeId, 'id' => $imageSizeId ) ) .
- $imageLimitOptions .
- Xml::closeElement( 'select' ) .
- '</td>
- </tr><tr>
- <td class="mw-label">' .
- Xml::label( wfMsg( 'thumbsize' ), $thumbSizeId ) .
- '</td>
- <td class="mw-input">' .
- Xml::openElement( 'select', array( 'name' => $thumbSizeId, 'id' => $thumbSizeId ) ) .
- $imageThumbOptions .
- Xml::closeElement( 'select' ) .
- '</td>
- </tr>' .
- Xml::closeElement( 'table' ) .
- Xml::closeElement( 'fieldset' )
- );
-
- # Date format
- #
- # Date/Time
- #
-
- $wgOut->addHTML(
- Xml::openElement( 'fieldset' ) .
- Xml::element( 'legend', null, wfMsg( 'datetime' ) ) . "\n"
- );
-
- if ($dateopts) {
- $wgOut->addHTML(
- Xml::openElement( 'fieldset' ) .
- Xml::element( 'legend', null, wfMsg( 'dateformat' ) ) . "\n"
- );
- $idCnt = 0;
- $epoch = '20010115161234'; # Wikipedia day
- foreach( $dateopts as $key ) {
- if( $key == 'default' ) {
- $formatted = wfMsg( 'datedefault' );
- } else {
- $formatted = $wgLang->timeanddate( $epoch, false, $key );
- }
- $wgOut->addHTML(
- Xml::tags( 'div', null,
- Xml::radioLabel( $formatted, 'wpDate', $key, "wpDate$idCnt", $key == $this->mDate )
- ) . "\n"
- );
- $idCnt++;
- }
- $wgOut->addHTML( Xml::closeElement( 'fieldset' ) . "\n" );
- }
-
- $nowlocal = Xml::openElement( 'span', array( 'id' => 'wpLocalTime' ) ) .
- $wgLang->time( $now = wfTimestampNow(), true ) .
- Xml::closeElement( 'span' );
- $nowserver = $wgLang->time( $now, false ) .
- Xml::hidden( 'wpServerTime', substr( $now, 8, 2 ) * 60 + substr( $now, 10, 2 ) );
-
- $wgOut->addHTML(
- Xml::openElement( 'fieldset' ) .
- Xml::element( 'legend', null, wfMsg( 'timezonelegend' ) ) .
- Xml::openElement( 'table' ) .
- $this->addRow( wfMsg( 'servertime' ), $nowserver ) .
- $this->addRow( wfMsg( 'localtime' ), $nowlocal )
- );
- $opt = Xml::openElement( 'select', array(
- 'name' => 'wpTimeZone',
- 'id' => 'wpTimeZone',
- 'onchange' => 'javascript:updateTimezoneSelection(false)' ) );
- $opt .= Xml::option( wfMsg( 'timezoneuseserverdefault' ), "System|$wgLocalTZoffset", $this->mTimeZone === "System|$wgLocalTZoffset" );
- $opt .= Xml::option( wfMsg( 'timezoneuseoffset' ), 'Offset', $this->mTimeZone === 'Offset' );
-
- if ( function_exists( 'timezone_identifiers_list' ) ) {
- # Read timezone list
- $tzs = timezone_identifiers_list();
- sort( $tzs );
-
- # Precache localized region names
- $tzRegions = array();
- $tzRegions['Africa'] = wfMsg( 'timezoneregion-africa' );
- $tzRegions['America'] = wfMsg( 'timezoneregion-america' );
- $tzRegions['Antarctica'] = wfMsg( 'timezoneregion-antarctica' );
- $tzRegions['Arctic'] = wfMsg( 'timezoneregion-arctic' );
- $tzRegions['Asia'] = wfMsg( 'timezoneregion-asia' );
- $tzRegions['Atlantic'] = wfMsg( 'timezoneregion-atlantic' );
- $tzRegions['Australia'] = wfMsg( 'timezoneregion-australia' );
- $tzRegions['Europe'] = wfMsg( 'timezoneregion-europe' );
- $tzRegions['Indian'] = wfMsg( 'timezoneregion-indian' );
- $tzRegions['Pacific'] = wfMsg( 'timezoneregion-pacific' );
- asort( $tzRegions );
-
- $selZone = explode( '|', $this->mTimeZone, 3 );
- $selZone = ( $selZone[0] == 'ZoneInfo' ) ? $selZone[2] : null;
- $now = date_create( 'now' );
- $optgroup = '';
-
- foreach ( $tzs as $tz ) {
- $z = explode( '/', $tz, 2 );
-
- # timezone_identifiers_list() returns a number of
- # backwards-compatibility entries. This filters them out of the
- # list presented to the user.
- if ( count( $z ) != 2 || !array_key_exists( $z[0], $tzRegions ) )
- continue;
-
- # Localize region
- $z[0] = $tzRegions[$z[0]];
-
- # Create region groups
- if ( $optgroup != $z[0] ) {
- if ( $optgroup !== '' ) {
- $opt .= Xml::closeElement( 'optgroup' );
- }
- $optgroup = $z[0];
- $opt .= Xml::openElement( 'optgroup', array( 'label' => $z[0] ) ) . "\n";
- }
-
- $minDiff = floor( timezone_offset_get( timezone_open( $tz ), $now ) / 60 );
- $opt .= Xml::option( str_replace( '_', ' ', $z[0] . '/' . $z[1] ), "ZoneInfo|$minDiff|$tz", $selZone === $tz, array( 'label' => $z[1] ) ) . "\n";
- }
- if ( $optgroup !== '' ) $opt .= Xml::closeElement( 'optgroup' );
- }
- $opt .= Xml::closeElement( 'select' );
- $wgOut->addHTML(
- $this->addRow(
- Xml::label( wfMsg( 'timezoneselect' ), 'wpTimeZone' ),
- $opt )
- );
- $wgOut->addHTML(
- $this->addRow(
- Xml::label( wfMsg( 'timezoneoffset' ), 'wpHourDiff' ),
- Xml::input( 'wpHourDiff', 6, $this->mHourDiff, array(
- 'id' => 'wpHourDiff',
- 'onfocus' => 'javascript:updateTimezoneSelection(true)',
- 'onblur' => 'javascript:updateTimezoneSelection(false)' ) ) ) .
- "<tr>
- <td></td>
- <td class='mw-submit'>" .
- Xml::element( 'input',
- array( 'type' => 'button',
- 'value' => wfMsg( 'guesstimezone' ),
- 'onclick' => 'javascript:guessTimezone()',
- 'id' => 'guesstimezonebutton',
- 'style' => 'display:none;' ) ) .
- "</td>
- </tr>" .
- Xml::closeElement( 'table' ) .
- Xml::tags( 'div', array( 'class' => 'prefsectiontip' ), wfMsgExt( 'timezonetext', 'parseinline' ) ).
- Xml::closeElement( 'fieldset' ) .
- Xml::closeElement( 'fieldset' ) . "\n\n"
- );
-
- # Editing
- #
- global $wgLivePreview;
- $wgOut->addHTML(
- Xml::fieldset( wfMsg( 'textboxsize' ) ) .
- wfMsgHTML( 'prefs-edit-boxsize' ) . ' ' .
- Xml::inputLabel( wfMsg( 'rows' ), 'wpRows', 'wpRows', 3, $this->mRows ) . ' ' .
- Xml::inputLabel( wfMsg( 'columns' ), 'wpCols', 'wpCols', 3, $this->mCols ) .
- $this->getToggles( array(
- 'editsection',
- 'editsectiononrightclick',
- 'editondblclick',
- 'editwidth',
- 'showtoolbar',
- 'previewonfirst',
- 'previewontop',
- 'minordefault',
- 'externaleditor',
- 'externaldiff',
- $wgLivePreview ? 'uselivepreview' : false,
- 'forceeditsummary',
- ) )
- );
-
- $wgOut->addHTML( Xml::closeElement( 'fieldset' ) );
-
- # Recent changes
- global $wgRCMaxAge, $wgUseRCPatrol;
- $wgOut->addHTML(
- Xml::fieldset( wfMsg( 'prefs-rc' ) ) .
- Xml::openElement( 'table' ) .
- '<tr>
- <td class="mw-label">' .
- Xml::label( wfMsg( 'recentchangesdays' ), 'wpRecentDays' ) .
- '</td>
- <td class="mw-input">' .
- Xml::input( 'wpRecentDays', 3, $this->mRecentDays, array( 'id' => 'wpRecentDays' ) ) . ' ' .
- wfMsgExt( 'recentchangesdays-max', 'parsemag',
- $wgLang->formatNum( ceil( $wgRCMaxAge / ( 3600 * 24 ) ) ) ) .
- '</td>
- </tr><tr>
- <td class="mw-label">' .
- Xml::label( wfMsg( 'recentchangescount' ), 'wpRecent' ) .
- '</td>
- <td class="mw-input">' .
- Xml::input( 'wpRecent', 3, $this->mRecent, array( 'id' => 'wpRecent' ) ) .
- '</td>
- </tr>' .
- Xml::closeElement( 'table' ) .
- '<br />'
- );
-
- $toggles[] = 'hideminor';
- if( $wgUseRCPatrol ) {
- $toggles[] = 'hidepatrolled';
- $toggles[] = 'newpageshidepatrolled';
- }
- if( $wgRCShowWatchingUsers ) $toggles[] = 'shownumberswatching';
- $toggles[] = 'usenewrc';
-
- $wgOut->addHTML(
- $this->getToggles( $toggles ) .
- Xml::closeElement( 'fieldset' )
- );
-
- # Watchlist
- $watchlistToggles = array( 'watchlisthideminor', 'watchlisthidebots', 'watchlisthideown',
- 'watchlisthideanons', 'watchlisthideliu' );
- if( $wgUseRCPatrol ) $watchlistToggles[] = 'watchlisthidepatrolled';
-
- $wgOut->addHTML(
- Xml::fieldset( wfMsg( 'prefs-watchlist' ) ) .
- Xml::inputLabel( wfMsg( 'prefs-watchlist-days' ), 'wpWatchlistDays', 'wpWatchlistDays', 3, $this->mWatchlistDays ) . ' ' .
- wfMsgHTML( 'prefs-watchlist-days-max' ) .
- '<br /><br />' .
- $this->getToggle( 'extendwatchlist' ) .
- Xml::inputLabel( wfMsg( 'prefs-watchlist-edits' ), 'wpWatchlistEdits', 'wpWatchlistEdits', 3, $this->mWatchlistEdits ) . ' ' .
- wfMsgHTML( 'prefs-watchlist-edits-max' ) .
- '<br /><br />' .
- $this->getToggles( $watchlistToggles )
- );
-
- if( $wgUser->isAllowed( 'createpage' ) || $wgUser->isAllowed( 'createtalk' ) ) {
- $wgOut->addHTML( $this->getToggle( 'watchcreations' ) );
- }
-
- foreach( array( 'edit' => 'watchdefault', 'move' => 'watchmoves', 'delete' => 'watchdeletion' ) as $action => $toggle ) {
- if( $wgUser->isAllowed( $action ) )
- $wgOut->addHTML( $this->getToggle( $toggle ) );
- }
- $this->mUsedToggles['watchcreations'] = true;
- $this->mUsedToggles['watchdefault'] = true;
- $this->mUsedToggles['watchmoves'] = true;
- $this->mUsedToggles['watchdeletion'] = true;
-
- $wgOut->addHTML( Xml::closeElement( 'fieldset' ) );
-
- # Search
- $mwsuggest = $wgEnableMWSuggest ?
- $this->addRow(
- Xml::label( wfMsg( 'mwsuggest-disable' ), 'wpDisableMWSuggest' ),
- Xml::check( 'wpDisableMWSuggest', $this->mDisableMWSuggest, array( 'id' => 'wpDisableMWSuggest' ) )
- ) : '';
- $wgOut->addHTML(
- // Elements for the search tab itself
- Xml::openElement( 'fieldset' ) .
- Xml::element( 'legend', null, wfMsg( 'searchresultshead' ) ) .
- // Elements for the search options in the search tab
- Xml::openElement( 'fieldset' ) .
- Xml::element( 'legend', null, wfMsg( 'prefs-searchoptions' ) ) .
- Xml::openElement( 'table' ) .
- $this->addRow(
- Xml::label( wfMsg( 'resultsperpage' ), 'wpSearch' ),
- Xml::input( 'wpSearch', 4, $this->mSearch, array( 'id' => 'wpSearch' ) )
- ) .
- $this->addRow(
- Xml::label( wfMsg( 'contextlines' ), 'wpSearchLines' ),
- Xml::input( 'wpSearchLines', 4, $this->mSearchLines, array( 'id' => 'wpSearchLines' ) )
- ) .
- $this->addRow(
- Xml::label( wfMsg( 'contextchars' ), 'wpSearchChars' ),
- Xml::input( 'wpSearchChars', 4, $this->mSearchChars, array( 'id' => 'wpSearchChars' ) )
- ) .
- $mwsuggest .
- Xml::closeElement( 'table' ) .
- Xml::closeElement( 'fieldset' ) .
- // Elements for the namespace options in the search tab
- Xml::openElement( 'fieldset' ) .
- Xml::element( 'legend', null, wfMsg( 'prefs-namespaces' ) ) .
- wfMsgExt( 'defaultns', array( 'parse' ) ) .
- $ps .
- Xml::closeElement( 'fieldset' ) .
- // End of the search tab
- Xml::closeElement( 'fieldset' )
- );
-
- # Misc
- #
- $uopt = $wgUser->getOption( 'underline' );
- $wgOut->addHTML(
- Xml::fieldset( wfMsg( 'prefs-misc' ) ) .
- Xml::openElement( 'table' ) .
- '<tr>
- <td class="mw-label">' .
- // Xml::label() cannot be used because 'stub-threshold' contains plain HTML
- Xml::tags( 'label', array( 'for' => 'wpStubs' ), wfMsg( 'stub-threshold' ) ) .
- '</td>
- <td class="mw-input">' .
- Xml::input( 'wpStubs', 6, $this->mStubs, array( 'id' => 'wpStubs' ) ) .
- '</td>
- </tr><tr>
- <td class="mw-label">' .
- Xml::label( wfMsg( 'tog-underline' ), 'wpOpunderline' ) .
- '</td>
- <td class="mw-input">' .
- Xml::openElement( 'select', array( 'id' => 'wpOpunderline', 'name' => 'wpOpunderline' ) ) .
- Xml::option( wfMsg ( 'underline-never' ), '0', $uopt == 0 ) .
- Xml::option( wfMsg ( 'underline-always' ), '1', $uopt == 1 ) .
- Xml::option( wfMsg ( 'underline-default' ), '2', $uopt == 2 ) .
- Xml::closeElement( 'select' ) .
- '</td>
- </tr>' .
- Xml::closeElement( 'table' )
- );
-
- # And now the rest = Misc.
- foreach ( $togs as $tname ) {
- if( !array_key_exists( $tname, $this->mUsedToggles ) ) {
- if( $tname == 'norollbackdiff' && $wgUser->isAllowed( 'rollback' ) )
- $wgOut->addHTML( $this->getToggle( $tname ) );
- else
- $wgOut->addHTML( $this->getToggle( $tname ) );
- }
- }
-
- $wgOut->addHTML( '</fieldset>' );
-
- wfRunHooks( 'RenderPreferencesForm', array( $this, $wgOut ) );
-
- $token = htmlspecialchars( $wgUser->editToken() );
- $skin = $wgUser->getSkin();
- $rtl = $wgContLang->isRTL() ? 'left' : 'right';
- $wgOut->addHTML( "
- <table id='prefsubmit' cellpadding='0' width='100%' style='background:none;'><tr>
- <td><input type='submit' name='wpSaveprefs' class='btnSavePrefs' value=\"" . wfMsgHtml( 'saveprefs' ) .
- '"'.$skin->tooltipAndAccesskey('save')." />
- <input type='submit' name='wpReset' value=\"" . wfMsgHtml( 'resetprefs' ) . "\" /></td>
- <td align='$rtl'><input type='submit' name='wpRestore' value=\"" . wfMsgHtml( 'restoreprefs' ) . "\" /></td>
- </tr></table>
-
- <input type='hidden' name='wpEditToken' value=\"{$token}\" />
- </div></form>\n" );
-
- $wgOut->addHTML( Xml::tags( 'div', array( 'class' => "prefcache" ),
- wfMsgExt( 'clearyourcache', 'parseinline' ) )
- );
+ $wgUser->resetOptions();
+
+ $url = SpecialPage::getTitleFor( 'Preferences')->getFullURL( 'success' );
+
+ $wgOut->redirect( $url );
+
+ return true;
}
}
'qbsettings-floatingleft' => 'Dryf links.',
'qbsettings-floatingright' => 'Dryf regs.',
'changepassword' => 'Verander wagwoord',
-'skin' => 'Omslag',
+'prefs-skin' => 'Omslag',
'skin-preview' => 'Voorskou',
'math' => 'Wiskunde',
'dateformat' => 'Datumformaat',
'datedefault' => 'Geen voorkeur',
-'datetime' => 'Datum en tyd',
+'prefs-datetime' => 'Datum en tyd',
'math_failure' => 'Kon nie verbeeld nie',
'math_unknown_error' => 'onbekende fout',
'math_unknown_function' => 'onbekende funksie',
'prefs-resetpass' => 'Verander wagwoord',
'saveprefs' => 'Stoor voorkeure',
'resetprefs' => 'Herstel voorkeure',
-'textboxsize' => 'Wysiging',
+'prefs-editing' => 'Wysiging',
'rows' => 'Rye',
'columns' => 'Kolomme',
'searchresultshead' => 'Soekresultate',
'prefs-namespaces' => 'Naamruimtes',
'defaultns' => 'Verstek naamruimtes vir soektog:',
'default' => 'verstek',
-'files' => 'Lêers',
+'prefs-files' => 'Lêers',
# User rights
'userrights' => 'Bestuur gebruikersregte',
'qbsettings-floatingleft' => 'በግራ ተንሳፋፊ',
'qbsettings-floatingright' => 'በቀኝ ተንሳፋፊ',
'changepassword' => 'መግቢያ ቃልዎን ለመቀየር',
-'skin' => 'የድህረ-ገጽ መልክ',
+'prefs-skin' => 'የድህረ-ገጽ መልክ',
'skin-preview' => 'ቅድመ-ዕይታ',
'math' => 'የሂሳብ መልክ',
'dateformat' => 'ያውሮፓ አቆጣጠር ዘመን ሥርዓት',
'datedefault' => 'ግድ የለኝም',
-'datetime' => 'ዘመንና ሰዓት',
+'prefs-datetime' => 'ዘመንና ሰዓት',
'math_failure' => 'ዘርዛሪው ተሳነው',
'math_unknown_error' => 'የማይታወቅ ስኅተት',
'math_unknown_function' => 'የማይታወቅ ተግባር',
'prefs-resetpass' => 'መግቢያ ቃል ለመቀየር',
'saveprefs' => 'ይቆጠብ',
'resetprefs' => 'እንደ በፊቱ ይታደስ',
-'textboxsize' => 'የማዘጋጀት ምርጫዎች',
+'prefs-editing' => 'የማዘጋጀት ምርጫዎች',
'prefs-edit-boxsize' => 'ይህ የማዘጋጀት ሳጥን ስፋት ለመወሰን ነው።',
'rows' => 'በማዘጋጀቱ ሰንጠረዥ ስንት ተርታዎች?',
'columns' => 'ስንት ዓምዶችስ?',
'prefs-namespaces' => 'ክፍለ-ዊኪዎች',
'defaultns' => 'በመጀመርያው ፍለጋዎ በነዚህ ክፍለ-ዊኪዎች ብቻ ይደረግ:',
'default' => 'ቀዳሚ',
-'files' => 'የስዕሎች መጠን',
+'prefs-files' => 'የስዕሎች መጠን',
# User rights
'userrights' => 'የአባል መብቶች ለማስተዳደር',
'qbsettings-floatingleft' => 'Flotant á la zurda',
'qbsettings-floatingright' => 'Flotant á la dreita',
'changepassword' => 'Cambiar a palabra de paso',
-'skin' => 'Aparenzia',
+'prefs-skin' => 'Aparenzia',
'skin-preview' => 'Fer una prebatina',
'math' => 'Esprisions matematicas',
'dateformat' => 'Formato de calendata',
'datedefault' => 'Sin de preferenzias',
-'datetime' => 'Calendata y ora',
+'prefs-datetime' => 'Calendata y ora',
'math_failure' => 'Error en o codigo',
'math_unknown_error' => 'error esconoxita',
'math_unknown_function' => 'funzión esconoxita',
'saveprefs' => 'Alzar preferenzias',
'resetprefs' => "Tornar t'as preferenzias por defeuto",
'restoreprefs' => 'Restaure todas as confegurazions por defeuto',
-'textboxsize' => 'Edizión',
+'prefs-editing' => 'Edizión',
'prefs-edit-boxsize' => "Grandaria d'a finestra d'edizión.",
'rows' => 'Ringleras:',
'columns' => 'Colunnas:',
'prefs-namespaces' => 'Espazios de nombres',
'defaultns' => 'Mirar por defeuto en istos espazios de nombres:',
'default' => 'por defeuto',
-'files' => 'Archibos',
+'prefs-files' => 'Archibos',
'prefs-custom-css' => 'CSS presonalizato',
'prefs-custom-js' => 'JS presonalizato',
'preferences' => 'Foreberunga',
'mypreferences' => 'Mīna foreberunga',
'prefsnologin' => 'Ne ingemeldod',
-'skin' => 'Scynn',
+'prefs-skin' => 'Scynn',
'skin-preview' => 'Forescēawian',
'dateformat' => 'Tælmearcwīse',
-'datetime' => 'Tælmearc and tīd',
+'prefs-datetime' => 'Tælmearc and tīd',
'math_unknown_error' => 'ungewiss gemearr',
'prefs-rc' => 'Nīwlica hweorfunga',
'prefs-watchlist' => 'Behealdnestalu',
'qbsettings-floatingleft' => 'حر لليسار',
'qbsettings-floatingright' => 'حر لليمين',
'changepassword' => 'غير كلمة السر',
-'skin' => 'واجهة',
+'prefs-skin' => 'واجهة',
'skin-preview' => 'عرض',
'math' => 'رياضيات',
'dateformat' => 'صيغة التاريخ',
'datedefault' => 'لا تفضيل',
-'datetime' => 'وقت وتاريخ',
+'prefs-datetime' => 'وقت وتاريخ',
'math_failure' => 'خطأ رياضيات',
'math_unknown_error' => 'خطأ غير معروف',
'math_unknown_function' => 'وظيفة غير معروفة',
'saveprefs' => 'حفظ',
'resetprefs' => 'إزالة التغييرات غير المحفوظة',
'restoreprefs' => 'استرجاع كل الإعدادات الافتراضية',
-'textboxsize' => 'أبعاد صندوق النصوص',
+'prefs-editing' => 'أبعاد صندوق النصوص',
'prefs-edit-boxsize' => 'حجم نافذة التحرير.',
'rows' => 'صفوف:',
'columns' => 'أعمدة:',
'prefs-namespaces' => 'أسماء النطاقات',
'defaultns' => 'ابحث في هذه النطاقات افتراضيا:',
'default' => 'افتراضي',
-'files' => 'ملفات',
+'prefs-files' => 'ملفات',
'prefs-custom-css' => 'CSS مخصص',
'prefs-custom-js' => 'جافاسكريبت مخصص',
'prefs-edits' => 'Rakin Wirin:',
'prefsnologin' => 'Mülelay Konün',
'skin-preview' => 'Pen chum müley',
-'textboxsize' => 'Wirin',
+'prefs-editing' => 'Wirin',
'searchresultshead' => 'Kintun',
'timezoneregion-africa' => 'Afrika',
'timezoneregion-america' => 'Amerika',
'qbsettings-floatingleft' => 'عايم على الشمال',
'qbsettings-floatingright' => 'عايم على اليمين',
'changepassword' => 'غير الباسورد',
-'skin' => 'الوش',
+'prefs-skin' => 'الوش',
'skin-preview' => 'بروفه',
'math' => 'رياضة',
'dateformat' => 'طريقة كتابة التاريخ',
'datedefault' => 'مافبش تفضيل',
-'datetime' => 'وقت وتاريخ',
+'prefs-datetime' => 'وقت وتاريخ',
'math_failure' => 'الاعراب فشل',
'math_unknown_error' => 'غلط مش معروف',
'math_unknown_function' => 'وظيفة مش معروفة',
'saveprefs' => 'حفظ',
'resetprefs' => 'امسح التغييرات اللى مش المحفوظة',
'restoreprefs' => 'استرجع التظبيطات الاصليه',
-'textboxsize' => 'تعديل',
+'prefs-editing' => 'تعديل',
'prefs-edit-boxsize' => 'كُبر الويندو بتاعة التحرير',
'rows' => 'صفوف:',
'columns' => 'عمدان:',
'prefs-namespaces' => 'أسماء النطاقات',
'defaultns' => 'دور فى النطاقات دى اوتوماتيكي:',
'default' => 'اوتوماتيكي',
-'files' => 'ملفات',
+'prefs-files' => 'ملفات',
'prefs-custom-css' => 'CSS مخصص',
'prefs-custom-js' => 'مخصص JS',
'qbsettings-floatingleft' => 'বাঁওফাল অস্থিৰ',
'qbsettings-floatingright' => 'সোঁফাল অস্থিৰ',
'changepassword' => 'গুপ্তশব্দ সলনী কৰক',
-'skin' => 'আৱৰন',
+'prefs-skin' => 'আৱৰন',
'skin-preview' => 'খচৰা',
'math' => 'গণিত',
'dateformat' => 'তাৰিখৰ সজ্জা',
'datedefault' => 'বিশেষ পচন্দ নাই',
-'datetime' => 'তাৰিখ আৰু সময়',
+'prefs-datetime' => 'তাৰিখ আৰু সময়',
'math_failure' => 'পার্চ কৰিব অসমর্থ',
'math_unknown_error' => 'অপৰিচিত সমস্যা',
'math_unknown_function' => 'অজ্ঞাত কার্য্য',
'prefs-misc' => 'অন্যান্য',
'saveprefs' => 'সঞ্চিত কৰক',
'resetprefs' => 'অসঞ্চিত সাল-সলনী বাতিল কৰক',
-'textboxsize' => 'সম্পাদন',
+'prefs-editing' => 'সম্পাদন',
'rows' => 'পথালী শাৰী:',
'columns' => 'ঠিয় শাৰী:',
'searchresultshead' => 'অনুসন্ধান',
'prefs-namespaces' => 'নামস্থান',
'defaultns' => 'এই নামস্থান সমুহত সদায়ে অনুসন্ধান কৰিব:',
'default' => 'অবিচল',
-'files' => 'ফাইলসমুহ',
+'prefs-files' => 'ফাইলসমুহ',
# User rights
'userrights' => 'সদস্যৰ অধিকাৰ ব্যৱস্থাপনা',
'qbsettings-floatingleft' => 'Flotante a manzorga',
'qbsettings-floatingright' => 'Flotante a mandrecha',
'changepassword' => 'Camudar clave',
-'skin' => 'Apariencia',
+'prefs-skin' => 'Apariencia',
'skin-preview' => 'Previsualizar',
'math' => 'Fórmules matemátiques',
'dateformat' => 'Formatu de fecha',
'datedefault' => 'Ensin preferencia',
-'datetime' => 'Fecha y hora',
+'prefs-datetime' => 'Fecha y hora',
'math_failure' => 'Fallu al revisar la fórmula',
'math_unknown_error' => 'error desconocíu',
'math_unknown_function' => 'función desconocida',
'prefs-resetpass' => 'Camudar clave',
'saveprefs' => 'Guardar preferencies',
'resetprefs' => 'Volver a les preferencies por defeutu',
-'textboxsize' => 'Edición',
+'prefs-editing' => 'Edición',
'prefs-edit-boxsize' => "Tamañu de la ventana d'edición.",
'rows' => 'Files:',
'columns' => 'Columnes:',
'prefs-namespaces' => 'Espacios de nome',
'defaultns' => 'Buscar por defeutu nestos espacios de nome:',
'default' => 'por defeutu',
-'files' => 'Archivos',
+'prefs-files' => 'Archivos',
'prefs-custom-css' => 'CSS personalizada',
'prefs-custom-js' => 'JS personalizada',
'qbsettings-floatingleft' => 'Roneon ezas',
'qbsettings-floatingright' => 'Talteon ezas',
'changepassword' => 'Betara va remravlem',
-'skin' => 'Laviuca',
+'prefs-skin' => 'Laviuca',
'skin-preview' => 'Abdiwira',
'math' => 'Rendu des maths',
'dateformat' => 'Evlabreviz',
'datedefault' => 'Megelukon',
-'datetime' => 'Evla is bartiv',
+'prefs-datetime' => 'Evla is bartiv',
'math_failure' => 'Erreur math',
'math_unknown_error' => 'erreur indéterminée',
'math_unknown_function' => 'megrupen fliok',
'prefs-resetpass' => 'Betara va remravlem',
'saveprefs' => 'Va lodamaceem tuená',
'resetprefs' => 'Va lodamceem dimplekú',
-'textboxsize' => 'Sutelaxo',
+'prefs-editing' => 'Sutelaxo',
'prefs-edit-boxsize' => 'Lum ke betaradilk.',
'rows' => 'Emacekeem',
'columns' => 'Brizeem',
'prefs-namespaces' => 'Yoltxo',
'defaultns' => 'Omavon, aneyara ko bato yoltxo se :',
'default' => 'omava',
-'files' => 'Iyeltak se',
+'prefs-files' => 'Iyeltak se',
# User rights
'userrights' => 'Pofera va favesikrokeem',
'mypreferences' => 'Nizamlamalarım',
'prefs-edits' => 'Redaktələrin sayı:',
'changepassword' => 'Parol dəyiş',
-'skin' => 'Üzlük',
+'prefs-skin' => 'Üzlük',
'skin-preview' => 'Sınaq göstərişi',
'math' => 'Riyaziyyat',
'dateformat' => 'Tarix formatı',
'datedefault' => 'Tərcih yox',
-'datetime' => 'Tarix və vaxt',
+'prefs-datetime' => 'Tarix və vaxt',
'math_unknown_error' => 'bilinməyən xəta',
'math_unknown_function' => 'bilinməyən funksiya',
'math_syntax_error' => 'sintaksis xətası',
'prefs-misc' => 'Digər tərcihlər',
'saveprefs' => 'Qeyd et',
'resetprefs' => 'Reset',
-'textboxsize' => 'Redaktə',
+'prefs-editing' => 'Redaktə',
'rows' => 'Sıralar:',
'searchresultshead' => 'Axtar',
'resultsperpage' => 'Səhifəyə aid tapılmış nəticələr:',
'timezoneregion-africa' => 'Afrika',
'allowemail' => 'Digər istifadəçilər mənə e-məktub göndərəbilir',
'defaultns' => 'Susmaya görə bu ad fəzalarında axtar:',
-'files' => 'Fayllar',
+'prefs-files' => 'Fayllar',
# User rights
'userrights' => 'İstifadəçi hüququ idarəsi',
'mypreferences' => 'Eistellunga',
'changepassword' => 'Passwort ändan',
'math_unknown_function' => 'Unbekannte Funktion',
-'textboxsize' => 'Bearbatn',
+'prefs-editing' => 'Bearbatn',
'searchresultshead' => 'Suachn',
'guesstimezone' => 'Vom Browser übanehma',
'allowemail' => 'E-Mail-Empfang vo andere Benutzer möglich macha.',
'qbsettings' => 'Greitasā pasėrėnkėms',
'qbsettings-none' => 'Neruodītė',
'changepassword' => 'Pakeistė slaptažuodė',
-'skin' => 'Ėšruoda',
+'prefs-skin' => 'Ėšruoda',
'skin-preview' => 'Parveiza',
'math' => 'Matematėka',
'dateformat' => 'Datuos fuormats',
'datedefault' => 'Juokė pasėrėnkėma',
-'datetime' => 'Data ė čiesos',
+'prefs-datetime' => 'Data ė čiesos',
'math_failure' => 'Nepavīka apdoruotė',
'math_unknown_error' => 'nežinuoma klaida',
'math_unknown_function' => 'nežinuoma funkcėjė',
'saveprefs' => 'Ėšsauguotė',
'resetprefs' => 'Atstatītė nostatīmos',
'restoreprefs' => 'Atstatītė vėsus numatītūsius nustatīmus',
-'textboxsize' => 'Redagavėms',
+'prefs-editing' => 'Redagavėms',
'prefs-edit-boxsize' => 'Redagavėma longa dėdoms.',
'rows' => 'Eilotės:',
'columns' => 'Štolpalē:',
'prefs-namespaces' => 'Vardū srėtīs',
'defaultns' => 'Palē nutīliejėma ėiškuotė šėtuosė vardū srėtīsė:',
'default' => 'palē nūtīliejėma',
-'files' => 'Failā',
+'prefs-files' => 'Failā',
# User rights
'userrights' => 'Nauduotuoju teisiu valdīms',
'qbsettings-floatingleft' => 'چپ شناور',
'qbsettings-floatingright' => 'راست شناور',
'changepassword' => 'کلمه رمز عوض کن',
-'skin' => 'پوست',
+'prefs-skin' => 'پوست',
'skin-preview' => 'بازین',
'math' => 'ریاضی',
'dateformat' => 'فرم تاریح',
'datedefault' => 'هچ ترجیح',
-'datetime' => 'تاریح و وهد',
+'prefs-datetime' => 'تاریح و وهد',
'math_failure' => 'تجزیه پروش وارت',
'math_unknown_error' => 'ناشناسین حطا',
'math_unknown_function' => 'ناشناس عملگر',
'saveprefs' => 'ذخیره',
'resetprefs' => 'پاکن تغییرات ذخیره نه بوتگین',
'restoreprefs' => 'کل پیش فرضین تنظیمات برگردین',
-'textboxsize' => 'اصلاح',
+'prefs-editing' => 'اصلاح',
'prefs-edit-boxsize' => 'حد پنجره اصلاح.',
'rows' => 'ردیفآن«',
'columns' => 'ستونان:',
'prefs-namespaces' => 'نام فصا',
'defaultns' => 'گردگ ته ای نام فضا آن په طور پیش فرض:',
'default' => 'پیش فرض',
-'files' => 'فایلان',
+'prefs-files' => 'فایلان',
'prefs-custom-css' => 'رسمی سیاساس',
'prefs-custom-js' => 'رسمی جیاس',
'qbsettings-floatingleft' => 'Naglálatáw sa walá',
'qbsettings-floatingright' => 'Naglálatáw sa tûo',
'changepassword' => 'Ribayan an sekretong panlaog',
-'skin' => "''Skin''",
+'prefs-skin' => "''Skin''",
'skin-preview' => 'Tânawon',
'math' => 'Mat',
'dateformat' => "''Format'' kan petsa",
'datedefault' => 'Mayong kabôtan',
-'datetime' => 'Petsa asin oras',
+'prefs-datetime' => 'Petsa asin oras',
'math_failure' => 'Nagprakaso an pagatíd-atíd',
'math_unknown_error' => 'dai aram an salâ',
'math_unknown_function' => 'Dai aram an gamit',
'prefs-misc' => 'Lain',
'saveprefs' => 'Itagama',
'resetprefs' => 'Ipwesto giraray',
-'textboxsize' => 'Pighihira',
+'prefs-editing' => 'Pighihira',
'rows' => 'Mga hilera:',
'columns' => 'Mga taytay:',
'searchresultshead' => 'Hanápon',
'allowemail' => "Togotan an mga ''e''-surat halî sa ibang mga parágamit",
'defaultns' => 'Maghilíng mûna sa ining mga ngaran-espacio:',
'default' => 'pwestong normal',
-'files' => 'Mga dokumento',
+'prefs-files' => 'Mga dokumento',
# User rights
'userrights' => 'Pagmaneho kan mga derecho nin paragamit',
'qbsettings-floatingleft' => 'Плавае злева',
'qbsettings-floatingright' => 'Плавае справа',
'changepassword' => 'Пароль',
-'skin' => 'Вокладка',
+'prefs-skin' => 'Вокладка',
'skin-preview' => 'перадпаказ',
'math' => 'Матэматыка',
'dateformat' => 'Фармат даты',
'datedefault' => 'Не вызначана',
-'datetime' => 'Дата і час',
+'prefs-datetime' => 'Дата і час',
'math_failure' => 'Не ўдалося разабраць',
'math_unknown_error' => 'невядомая памылка',
'math_unknown_function' => 'невядомая функцыя',
'saveprefs' => 'Запісаць',
'resetprefs' => 'Да пачатковых',
'restoreprefs' => 'Аднавіць усе прадвызначэнні',
-'textboxsize' => 'Праца',
+'prefs-editing' => 'Праца',
'prefs-edit-boxsize' => 'Памер рэдактарскага акна.',
'rows' => 'Радкі:',
'columns' => 'Калонкі:',
'prefs-namespaces' => 'Прасторы назваў',
'defaultns' => 'Шукаць у гэтых прасторах назваў, калі не загадана іначай:',
'default' => 'прадвызначэнні',
-'files' => 'Файлы',
+'prefs-files' => 'Файлы',
'prefs-custom-css' => 'Уласны CSS',
'prefs-custom-js' => 'Уласны JS',
'qbsettings-floatingleft' => 'Рухомая зьлева',
'qbsettings-floatingright' => 'Плавае справа',
'changepassword' => 'Зьмяніць пароль',
-'skin' => 'Афармленьне',
+'prefs-skin' => 'Афармленьне',
'skin-preview' => 'Папярэдні прагляд',
'math' => 'Матэматыка',
'dateformat' => 'Фармат даты',
'datedefault' => 'Па змоўчаньні',
-'datetime' => 'Дата і час',
+'prefs-datetime' => 'Дата і час',
'math_failure' => 'Не атрымалася разабраць',
'math_unknown_error' => 'невядомая памылка',
'math_unknown_function' => 'невядомая функцыя',
'saveprefs' => 'Захаваць',
'resetprefs' => 'Скінуць',
'restoreprefs' => 'Вярнуць усе настройкі па змоўчваньні',
-'textboxsize' => 'Рэдагаваньне',
+'prefs-editing' => 'Рэдагаваньне',
'prefs-edit-boxsize' => 'Памер акна рэдагаваньня.',
'rows' => 'Радкоў:',
'columns' => 'Слупкоў:',
'prefs-namespaces' => 'Прасторы назваў',
'defaultns' => 'Па змоўчаньні, шукаць у наступных прасторах назваў:',
'default' => 'па змоўчваньні',
-'files' => 'Файлы',
+'prefs-files' => 'Файлы',
'prefs-custom-css' => 'Індывідуальны CSS',
'prefs-custom-js' => 'Індывідуальны JS',
'qbsettings-floatingleft' => 'Плаващо вляво',
'qbsettings-floatingright' => 'Плаващо вдясно',
'changepassword' => 'Смяна на парола',
-'skin' => 'Облик',
+'prefs-skin' => 'Облик',
'skin-preview' => 'предварителен преглед',
'math' => 'Математически формули',
'dateformat' => 'Формат на датата',
'datedefault' => 'Без предпочитание',
-'datetime' => 'Дата и час',
+'prefs-datetime' => 'Дата и час',
'math_failure' => 'Неуспех при разбора',
'math_unknown_error' => 'непозната грешка',
'math_unknown_function' => 'непозната функция',
'saveprefs' => 'Съхраняване',
'resetprefs' => 'Отмяна на текущите промени',
'restoreprefs' => 'Възстановяване на всички настройки по подразбиране',
-'textboxsize' => 'Редактиране',
+'prefs-editing' => 'Редактиране',
'prefs-edit-boxsize' => 'Размер на прозореца за редактиране.',
'rows' => 'Редове:',
'columns' => 'Колони:',
'prefs-namespaces' => 'Именни пространства',
'defaultns' => 'Търсене в тези именни пространства по подразбиране:',
'default' => 'по подразбиране',
-'files' => 'Файлове',
+'prefs-files' => 'Файлове',
'prefs-custom-css' => 'Персонализиран CSS',
'prefs-custom-js' => 'Персонализиран JS',
# Preferences page
'preferences' => 'Fisayali',
-'skin' => 'Apparence',
+'prefs-skin' => 'Apparence',
# Recent changes
'hide' => 'dogo',
'qbsettings-floatingleft' => 'ভাসমান বাম',
'qbsettings-floatingright' => 'ভাসমান ডান',
'changepassword' => 'শব্দচাবি (password) পরিবর্তন',
-'skin' => 'আবরণ (Skin)',
+'prefs-skin' => 'আবরণ (Skin)',
'skin-preview' => 'প্রাকদর্শন',
'math' => 'গণিত',
'dateformat' => 'তারিখের ফরম্যাট',
'datedefault' => 'কোন পছন্দ নেই',
-'datetime' => 'তারিখ ও সময়',
+'prefs-datetime' => 'তারিখ ও সময়',
'math_failure' => 'পার্স করতে ব্যর্থ',
'math_unknown_error' => 'অজানা ত্রুটি',
'math_unknown_function' => 'অজানা ফাংশন',
'prefs-misc' => 'বিবিধ',
'saveprefs' => 'সংরক্ষণ করো',
'resetprefs' => 'আবার শুরু করো',
-'textboxsize' => 'সম্পাদনা',
+'prefs-editing' => 'সম্পাদনা',
'rows' => 'সারি:',
'columns' => 'কলাম:',
'searchresultshead' => 'অনুসন্ধান',
'prefs-namespaces' => 'নামস্থানসমূহ',
'defaultns' => 'নির্দিষ্ট করা না থাকলে এই নামস্থানগুলিতে অনুসন্ধান করা হোক:',
'default' => 'আদি অবস্থা',
-'files' => 'ফাইল',
+'prefs-files' => 'ফাইল',
# User rights
'userrights' => 'ব্যবহারকারী অধিকার ব্যবস্থাপনা',
'qbsettings-floatingleft' => 'War-neuñv a-gleiz',
'qbsettings-floatingright' => 'War-neuñv a-zehou',
'changepassword' => 'Kemmañ ar ger-tremen',
-'skin' => 'Gwiskadur',
+'prefs-skin' => 'Gwiskadur',
'skin-preview' => 'Rakwelet',
'math' => 'Tres jedoniel',
'dateformat' => 'Stumm an deiziad',
'datedefault' => 'Dre ziouer',
-'datetime' => 'Deiziad hag eur',
+'prefs-datetime' => 'Deiziad hag eur',
'math_failure' => 'Fazi jedoniezh',
'math_unknown_error' => 'fazi dianav',
'math_unknown_function' => 'kevreizhenn jedoniel dianav',
'saveprefs' => 'Enrollañ ar penndibaboù',
'resetprefs' => 'Adlakaat ar penndibaboù kent',
'restoreprefs' => 'Adlakaat an holl arventennoù dre ziouer',
-'textboxsize' => 'Prenestr skridaozañ',
+'prefs-editing' => 'Prenestr skridaozañ',
'prefs-edit-boxsize' => 'Ment ar prenestr skridaozañ.',
'rows' => 'Linennoù :',
'columns' => 'Bannoù',
'prefs-namespaces' => 'Esaouennoù',
'defaultns' => 'Klask en esaouennoù-mañ dre ziouer :',
'default' => 'dre ziouer',
-'files' => 'Restroù',
+'prefs-files' => 'Restroù',
'prefs-custom-css' => 'CSS personelaet',
'prefs-custom-js' => 'JS personelaet',
'qbsettings-floatingleft' => 'Plutajuća lijevo',
'qbsettings-floatingright' => 'Plutajući desno',
'changepassword' => 'Promjeni šifru',
-'skin' => 'Koža',
+'prefs-skin' => 'Koža',
'skin-preview' => 'Pregled',
'math' => 'Prikazivanje matematike',
'dateformat' => 'Format datuma',
'datedefault' => 'Nije bitno',
-'datetime' => 'Datum i vrijeme',
+'prefs-datetime' => 'Datum i vrijeme',
'math_failure' => 'Neuspjeh pri parsiranju',
'math_unknown_error' => 'nepoznata greška',
'math_unknown_function' => 'nepoznata funkcija',
'saveprefs' => 'Sačuvajte podešavanja',
'resetprefs' => 'Vrati podešavanja',
'restoreprefs' => 'Vrati sve pretpostavljene postavke',
-'textboxsize' => 'Veličine tekstualnog polja',
+'prefs-editing' => 'Veličine tekstualnog polja',
'prefs-edit-boxsize' => 'Veličina prozora za uređivanje.',
'rows' => 'Redova',
'columns' => 'Kolona',
'prefs-namespaces' => 'Imenski prostori',
'defaultns' => 'Uobičajeno tražite u ovim imenskim prostorima:',
'default' => 'standardno',
-'files' => 'Datoteke',
+'prefs-files' => 'Datoteke',
'prefs-custom-css' => 'Prilagođeni CSS',
'prefs-custom-js' => 'Prilagođeni JS',
'prefs-watchlist' => 'Watchlist',
'prefs-misc' => 'Misc',
'saveprefs' => 'Taro',
-'textboxsize' => 'Mapadécéŋ',
+'prefs-editing' => 'Mapadécéŋ',
'searchresultshead' => 'Masappa',
# Groups
'qbsettings-floatingleft' => "Surant a l'esquerra",
'qbsettings-floatingright' => 'Surant a la dreta',
'changepassword' => 'Canvia la contrasenya',
-'skin' => 'Aparença',
+'prefs-skin' => 'Aparença',
'skin-preview' => 'prova',
'math' => 'Com es mostren les fórmules',
'dateformat' => 'Format de la data',
'datedefault' => 'Cap preferència',
-'datetime' => 'Data i hora',
+'prefs-datetime' => 'Data i hora',
'math_failure' => "No s'ha pogut entendre",
'math_unknown_error' => 'error desconegut',
'math_unknown_function' => 'funció desconeguda',
'saveprefs' => 'Desa les preferències',
'resetprefs' => 'Esborra els canvis no guardats',
'restoreprefs' => 'Restaura les preferències per defecte',
-'textboxsize' => "Caixa d'edició",
+'prefs-editing' => "Caixa d'edició",
'prefs-edit-boxsize' => "Mida de la finestra d'edició.",
'rows' => 'Files',
'columns' => 'Columnes',
'prefs-namespaces' => 'Espais de noms',
'defaultns' => 'Busca per defecte en els següents espais de noms:',
'default' => 'per defecte',
-'files' => 'Fitxers',
+'prefs-files' => 'Fitxers',
'prefs-custom-css' => 'CSS personalitzat',
'prefs-custom-js' => 'JS personalitzat',
'mypreferences' => 'Nguāi gì siék-diâng',
'prefs-edits' => 'Siŭ-gāi ché̤ṳ-só:',
'changepassword' => 'Gāi-biéng mĭk-mā',
-'skin' => 'Puòi-hŭ',
+'prefs-skin' => 'Puòi-hŭ',
'math' => 'Só-hŏk',
'dateformat' => 'Nĭk-gĭ gáh-sék',
'datedefault' => 'Mò̤ siék-diâng',
-'datetime' => 'Nĭk-gĭ gâe̤ng sì-găng',
+'prefs-datetime' => 'Nĭk-gĭ gâe̤ng sì-găng',
'math_unknown_error' => 'muôi báik gì dâng',
'math_unknown_function' => 'muôi báik hàng-só',
'prefs-personal' => 'Ê̤ṳng-hô cṳ̆-lâiu',
'timezoneoffset' => 'Sì-chă¹',
'servertime' => 'Hŭk-ô-ké sì-găng',
'allowemail' => 'Â̤ kīng bĕk-nè̤ng huák diêng-piĕ ké̤ṳk nṳ̄',
-'files' => 'Ùng-giông',
+'prefs-files' => 'Ùng-giông',
# User rights
'editusergroup' => 'Siŭ-gāi Ê̤ṳng-hô Cū',
'mypreferences' => 'сан настройки',
'changepassword' => 'Тешаман дош хийцар хьам',
'prefs-watchlist' => 'тергалдеш таптарш',
-'textboxsize' => 'Xийца',
+'prefs-editing' => 'Xийца',
# User rights
'editinguser' => "Хийца юзер '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
'qbsettings-floatingleft' => "Mamå'ya gi akague",
'qbsettings-floatingright' => "Mamå'ya gi agapa'",
'changepassword' => 'Tulaika password',
-'skin' => 'Låssas',
+'prefs-skin' => 'Låssas',
'skin-preview' => "Na'annok",
'math' => 'Math',
'dateformat' => 'Plantiyas fecha',
'datedefault' => "Tåya' prifirensia",
-'datetime' => 'Fecha yan ora',
+'prefs-datetime' => 'Fecha yan ora',
'math_failure' => 'Lachi ma parse',
'math_unknown_error' => "linachi ti matungo'",
'math_unknown_function' => "fonksion ti matungo'",
'prefs-misc' => 'Misc',
'saveprefs' => 'Såtba',
'resetprefs' => "Na'funas i tinilaika ti manma'såtba siha",
-'textboxsize' => 'Tumulaika',
+'prefs-editing' => 'Tumulaika',
'rows' => 'Fila siha:',
'columns' => 'Kolumna siha:',
'searchresultshead' => 'Aligao',
'prefs-namespaces' => "Sågan nå'an",
'defaultns' => "Fanaligao hålom este na sågan nå'an fine'nena:",
'default' => 'default',
-'files' => 'Atkibu siha',
+'prefs-files' => 'Atkibu siha',
# User rights
'userrights' => "Inenkåtgan i direchun muna'sesetbi",
'mypreferences' => 'ھەڵبژاردەکانی من',
'prefs-edits' => 'ژمارەی گۆڕانکارییەکان:',
'changepassword' => 'تێپەڕوشە بگۆڕە',
-'skin' => 'پێستە',
+'prefs-skin' => 'پێستە',
'skin-preview' => 'پێش بینین',
'math' => 'بیرکاری',
'dateformat' => 'ڕازاندەوەی ڕێکەوت',
'datedefault' => 'ھەڵنەبژێردراو',
-'datetime' => 'کات و ڕێکەوت',
+'prefs-datetime' => 'کات و ڕێکەوت',
'prefs-personal' => 'پرۆفایلی بەکارھێنەر',
'prefs-rc' => 'دوایین گۆڕانکارییەکان',
'prefs-watchlist' => 'لیستی چاودێڕییەکان',
'saveprefs' => 'پاشکەوت',
'resetprefs' => 'گۆڕانکارییە پاشکەوت نەکراوەکان پاک بکەرەوە',
'restoreprefs' => 'ھەموو تەنزیمەکان ببەرەوە بۆ حاڵەتی بنچینەیی',
-'textboxsize' => 'دەستکاری کردن',
+'prefs-editing' => 'دەستکاری کردن',
'prefs-edit-boxsize' => 'قەبارەی پەنجەرەی گۆڕانکاری.',
'rows' => 'ڕێز:',
'columns' => 'ستوون:',
'prefs-namespaces' => 'بۆشایییەکانی ناو',
'defaultns' => 'لە حاڵەتی بنەڕەت لەم بۆشایی ناوانەدا بگەڕە:',
'default' => 'بنچینەیی',
-'files' => 'پەڕگەکان',
+'prefs-files' => 'پەڕگەکان',
'prefs-custom-css' => 'CSSی دڵخواز',
'prefs-custom-js' => 'JSی دڵخواز',
'searchresultshead' => 'Ricerca',
'localtime' => 'Ora lucale',
'allowemail' => 'Abilità a ricezzione di e-mail da altri utilizatori',
-'files' => 'Schedarii',
+'prefs-files' => 'Schedarii',
# User rights
'editinguser' => "Mudifica di '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
'prefsreset' => 'Сазламалар ильк алына кетирильди.',
'qbsettings' => 'Вызлы иришим сутун сазламалары',
'changepassword' => 'Пароль денъиштир',
-'skin' => 'Ресимлеме',
+'prefs-skin' => 'Ресимлеме',
'skin-preview' => 'Бакъып чыкъув',
'math' => 'Риязий (математик) ишаретлер',
'dateformat' => 'Тарих косьтерими',
'datedefault' => 'Стандарт',
-'datetime' => 'Тарих ве саат',
+'prefs-datetime' => 'Тарих ве саат',
'math_unknown_error' => 'билинмеген хата',
'math_unknown_function' => 'бельгисиз функция',
'math_lexing_error' => 'лексик хата',
'prefs-misc' => 'Дигер сазламалар',
'saveprefs' => 'Денъишикликлерни сакъла',
'resetprefs' => 'Сакъланмагъан сазламаларны ильк алына кетир',
-'textboxsize' => 'Саифе язув пенджереси',
+'prefs-editing' => 'Саифе язув пенджереси',
'rows' => 'Сатыр',
'columns' => 'Сутун',
'searchresultshead' => 'Къыдырув',
'prefs-namespaces' => 'Исим фезалары',
'defaultns' => 'Къыдырувны ашагъыда сайлангъан исим фезаларында яп.',
'default' => 'оригинал',
-'files' => 'Файллар',
+'prefs-files' => 'Файллар',
# User rights
'userrights' => 'Къулланыджы акъларыны идаре этюв',
'prefsreset' => 'Sazlamalar ilk alına ketirildi.',
'qbsettings' => 'Vızlı irişim sutun sazlamaları',
'changepassword' => 'Parol deñiştir',
-'skin' => 'Resimleme',
+'prefs-skin' => 'Resimleme',
'skin-preview' => 'Baqıp çıquv',
'math' => 'Riyaziy (matematik) işaretler',
'dateformat' => 'Tarih kösterimi',
'datedefault' => 'Standart',
-'datetime' => 'Tarih ve saat',
+'prefs-datetime' => 'Tarih ve saat',
'math_unknown_error' => 'bilinmegen hata',
'math_unknown_function' => 'belgisiz funktsiya',
'math_lexing_error' => 'leksik hata',
'prefs-misc' => 'Diger sazlamalar',
'saveprefs' => 'Deñişikliklerni saqla',
'resetprefs' => 'Saqlanmağan sazlamalarnı ilk alına ketir',
-'textboxsize' => 'Saife yazuv penceresi',
+'prefs-editing' => 'Saife yazuv penceresi',
'rows' => 'Satır',
'columns' => 'Sutun',
'searchresultshead' => 'Qıdıruv',
'prefs-namespaces' => 'İsim fezaları',
'defaultns' => 'Qıdıruvnı aşağıda saylanğan isim fezalarında yap.',
'default' => 'original',
-'files' => 'Fayllar',
+'prefs-files' => 'Fayllar',
# User rights
'userrights' => 'Qullanıcı aqlarını idare etüv',
'qbsettings-floatingleft' => 'Plovoucí vlevo',
'qbsettings-floatingright' => 'Plovoucí vpravo',
'changepassword' => 'Změna hesla',
-'skin' => 'Vzhled',
+'prefs-skin' => 'Vzhled',
'skin-preview' => 'Náhled',
'math' => 'Matematika',
'dateformat' => 'Formát data',
'datedefault' => 'Implicitní',
-'datetime' => 'Datum a čas',
+'prefs-datetime' => 'Datum a čas',
'math_failure' => 'Nelze pochopit',
'math_unknown_error' => 'neznámá chyba',
'math_unknown_function' => 'neznámá funkce',
'saveprefs' => 'Uložit nastavení',
'resetprefs' => 'Vrátit původní nastavení',
'restoreprefs' => 'Obnovit všechna výchozí nastavení',
-'textboxsize' => 'Editace',
+'prefs-editing' => 'Editace',
'prefs-edit-boxsize' => 'Velikost editačního okna:',
'rows' => 'Řádky',
'columns' => 'Sloupce',
'prefs-namespaces' => 'Jmenné prostory',
'defaultns' => 'Implicitně hledat v těchto jmenných prostorech:',
'default' => 'implicitní',
-'files' => 'Soubory',
+'prefs-files' => 'Soubory',
'prefs-custom-css' => 'Vlastní CSS',
'prefs-custom-js' => 'Vlastní JS',
'prefsnologin' => 'Felënk logòwóniô',
'qbsettings' => 'Sztrépk chùtczégò przistãpù',
'changepassword' => 'Zmiana parolë',
-'skin' => 'Wëzdrzatk',
+'prefs-skin' => 'Wëzdrzatk',
'skin-preview' => 'Pòdzérk',
'math' => 'Matematika',
'dateformat' => 'Fòrmat datumù',
'datedefault' => 'Felëje preferencëji',
-'datetime' => 'Datum ë czas',
+'prefs-datetime' => 'Datum ë czas',
'math_failure' => 'Parser nie rozmiôł rozpòznac',
'prefs-personal' => 'Pòdôwczi brëkòwnika',
'prefs-rc' => 'Slédné edicëje',
'prefs-misc' => 'Jine',
'saveprefs' => 'Zapiszë',
'resetprefs' => 'Wëczëszczë niezapisóné zmianë',
-'textboxsize' => 'Edicëjô',
+'prefs-editing' => 'Edicëjô',
'rows' => 'Régów:',
'columns' => 'Kòlumnów:',
'searchresultshead' => 'Szëkba',
'guesstimezone' => 'Wezmi z przezérnika',
'allowemail' => 'Włączë mòżlewòtã sélaniô e-mailów òd jinëch brëkòwników',
'defaultns' => 'Domëslno przeszëkùjë nôslédné rëmnotë mionów:',
-'files' => 'Lopczi',
+'prefs-files' => 'Lopczi',
# User rights
'editinguser' => "Zmiana praw brëkòwnika '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
'prefs-watchlist' => 'блюдє́ниꙗ',
'searchresultshead' => 'иска́ниѥ',
'prefs-searchoptions' => 'иска́ниꙗ строи́',
-'files' => 'дѣла́',
+'prefs-files' => 'дѣла́',
# Groups
'group-user' => 'по́льꙃєватєлє',
'prefsnologin' => 'Эсир сайта кĕмен',
'qbsettings' => 'Навигаци хăми',
'changepassword' => 'Пароле улăштар',
-'skin' => 'Ерешленӳ',
+'prefs-skin' => 'Ерешленӳ',
'skin-preview' => 'Малтанхи курăну',
'dateformat' => 'Дата формачĕ',
'datedefault' => 'Палăртман чухнехи',
'prefs-watchlist' => 'Сăнав списокĕ',
'prefs-misc' => 'Ытти ĕнерлевсем',
'saveprefs' => 'Çырса хур',
-'textboxsize' => 'Тӳрлетни',
+'prefs-editing' => 'Тӳрлетни',
'rows' => 'Йěркесем',
'columns' => 'Юпасем:',
'searchresultshead' => 'Шыраса тупрăмăр',
'timezonelegend' => 'Сехет поясĕ',
'localtime' => 'Вырăнти вăхăт',
'servertime' => 'Сервер вăхăчě',
-'files' => 'Файлсем',
+'prefs-files' => 'Файлсем',
# User rights
'userrights' => 'Хутшăнакансен прависемпе ĕçлесси',
'qbsettings-floatingleft' => 'Yn arnofio ar y chwith',
'qbsettings-floatingright' => 'Yn arnofio ar y dde',
'changepassword' => 'Newid y cyfrinair',
-'skin' => 'Gwedd',
+'prefs-skin' => 'Gwedd',
'skin-preview' => 'Rhagolwg',
'math' => 'Mathemateg',
'dateformat' => 'Fformat dyddiad',
'datedefault' => 'Dim dewisiad',
-'datetime' => 'Dyddiad ac amser',
+'prefs-datetime' => 'Dyddiad ac amser',
'math_failure' => 'Wedi methu dosrannu',
'math_unknown_error' => 'gwall anhysbys',
'math_unknown_function' => 'ffwythiant anhysbys',
'saveprefs' => "Cadw'r dewisiadau",
'resetprefs' => "Clirio'r darpar newidiadau",
'restoreprefs' => 'Adfer yr holl osodiadau diofyn',
-'textboxsize' => 'Golygu',
+'prefs-editing' => 'Golygu',
'prefs-edit-boxsize' => 'Maint y blwch testun.',
'rows' => 'Rhesi:',
'columns' => 'Colofnau:',
'prefs-namespaces' => 'Parthau',
'defaultns' => 'Chwiliwch y parthau rhagosodedig isod:',
'default' => 'rhagosodyn',
-'files' => 'Ffeiliau',
+'prefs-files' => 'Ffeiliau',
'prefs-custom-css' => 'CSS o hunan-ddewis',
'prefs-custom-js' => 'JS o hunan-ddewis',
'qbsettings-floatingleft' => 'Flydende venstre',
'qbsettings-floatingright' => 'Flydende højre',
'changepassword' => 'Skift adgangskode',
-'skin' => 'Udseende',
+'prefs-skin' => 'Udseende',
'skin-preview' => 'Forhåndsvisning',
'math' => 'Matematiske formler',
'dateformat' => 'Datoformat',
'datedefault' => 'Ingen præference',
-'datetime' => 'Dato og klokkeslæt',
+'prefs-datetime' => 'Dato og klokkeslæt',
'math_failure' => 'Fejl i matematikken',
'math_unknown_error' => 'ukendt fejl',
'math_unknown_function' => 'ukendt funktion',
'saveprefs' => 'Gem indstillinger',
'resetprefs' => 'Gendan indstillinger',
'restoreprefs' => 'Gendan alle standardindstillinger',
-'textboxsize' => 'Redigering',
+'prefs-editing' => 'Redigering',
'prefs-edit-boxsize' => 'Størrelse på redigeringsvinduet.',
'rows' => 'Rækker',
'columns' => 'Kolonner',
'prefs-namespaces' => 'Navnerum',
'defaultns' => 'Søg som standard i disse navnerum:',
'default' => 'standard',
-'files' => 'Filer',
+'prefs-files' => 'Filer',
'prefs-custom-css' => 'Personlig CSS',
'prefs-custom-js' => 'Personlig JavaScript',
'qbsettings-floatingleft' => 'Links, schwebend',
'qbsettings-floatingright' => 'Rechts, schwebend',
'changepassword' => 'Passwort ändern',
-'skin' => 'Skin',
+'prefs-skin' => 'Skin',
'skin-preview' => 'Vorschau',
'math' => 'TeX',
'dateformat' => 'Datumsformat',
'datedefault' => 'Standard',
-'datetime' => 'Datum und Zeit',
+'prefs-datetime' => 'Datum und Zeit',
'math_failure' => 'Parser-Fehler',
'math_unknown_error' => 'Unbekannter Fehler',
'math_unknown_function' => 'Unbekannte Funktion ',
'saveprefs' => 'Einstellungen speichern',
'resetprefs' => 'Eingaben verwerfen',
'restoreprefs' => 'Alle Standardeinstellungen wiederherstellen',
-'textboxsize' => 'Bearbeiten',
+'prefs-editing' => 'Bearbeiten',
'prefs-edit-boxsize' => 'Größe des Bearbeitungsfensters:',
'rows' => 'Zeilen',
'columns' => 'Spalten',
'prefs-namespaces' => 'Namensräume',
'defaultns' => 'In diesen Namensräumen soll standardmäßig gesucht werden:',
'default' => 'Voreinstellung',
-'files' => 'Dateien',
+'prefs-files' => 'Dateien',
'prefs-custom-css' => 'Benutzerdefinierte CSS',
'prefs-custom-js' => 'Benutzerdefiniertes JS',
'prefs-watchlist' => 'Lista seyr-kerdışi',
'saveprefs' => 'Qeyd ke',
'timezonelegend' => 'Warey saete',
-'files' => 'Dosyey',
+'prefs-files' => 'Dosyey',
# Groups
'group-sysop' => 'İdarekaran',
'qbsettings-floatingleft' => 'nalěwo se znosujuce',
'qbsettings-floatingright' => 'napšawo se znosujuce',
'changepassword' => 'Šćitne gronidło změniś',
-'skin' => 'Šat',
+'prefs-skin' => 'Šat',
'skin-preview' => 'Pśeglěd',
'math' => 'Math',
'dateformat' => 'Format datuma',
'datedefault' => 'Standard',
-'datetime' => 'Datum a cas',
+'prefs-datetime' => 'Datum a cas',
'math_failure' => 'Zmólka',
'math_unknown_error' => 'njeznata zmólka',
'math_unknown_function' => 'njeznata funkcija',
'saveprefs' => 'Składowaś',
'resetprefs' => 'Njeskłaźone změny zachyśiś',
'restoreprefs' => 'Wše standardne nastajenja wobnowiś',
-'textboxsize' => 'Wobźěłaś',
+'prefs-editing' => 'Wobźěłaś',
'prefs-edit-boxsize' => 'Wjelikosć wobźěłowańskego wokna',
'rows' => 'Rědki:',
'columns' => 'Słupy:',
'prefs-namespaces' => 'Mjenjowe rumy',
'defaultns' => 'Standardnje ma se w toś tych mjenjowych rumach pytaś:',
'default' => 'Standard',
-'files' => 'Dataje',
+'prefs-files' => 'Dataje',
'prefs-custom-css' => 'Swójski CSS',
'prefs-custom-js' => 'Swójski JS',
'mypreferences' => 'މަގޭ ތަރުޖީހުތައް',
'changepassword' => 'ސިއްރުބަސް ބަދަލުކުރައްވާ',
'columns' => 'ކޮލަންތައް:',
-'files' => 'ފައިލުތައް',
+'prefs-files' => 'ފައިލުތައް',
# User rights
'userrights' => 'މެންބަރުގެ ހައްގުތަކުގެ އިންތިޒާމް',
'qbsettings-floatingleft' => 'Πλανώμενα αριστερά',
'qbsettings-floatingright' => 'Πλανώμενα δεξιά',
'changepassword' => 'Αλλαγή κωδικού',
-'skin' => 'Οπτική οργάνωση (skin)',
+'prefs-skin' => 'Οπτική οργάνωση (skin)',
'skin-preview' => 'Προεπισκόπηση',
'math' => 'Απόδοση μαθηματικών',
'dateformat' => 'Μορφή ημερομηνίας',
'datedefault' => 'Χωρίς προτίμηση',
-'datetime' => 'Ημερομηνία και ώρα',
+'prefs-datetime' => 'Ημερομηνία και ώρα',
'math_failure' => 'Δεν μπόρεσε να γίνει ανάλυση του όρου.',
'math_unknown_error' => 'άγνωστο σφάλμα',
'math_unknown_function' => 'άγνωστη συνάρτηση',
'saveprefs' => 'Αποθήκευση',
'resetprefs' => 'Επαναφορά προτιμήσεων',
'restoreprefs' => 'Επαναφορά όλων των προεπιλεγμένων ρυθμίσεων',
-'textboxsize' => 'Επεξεργασία',
+'prefs-editing' => 'Επεξεργασία',
'prefs-edit-boxsize' => 'Μέγεθος του παραθύρου επεξεργασίας.',
'rows' => 'Σειρές',
'columns' => 'Στήλες',
'prefs-namespaces' => 'Περιοχές ονομάτων',
'defaultns' => 'Αναζήτηση σε αυτές τις περιοχές ονομάτων από προεπιλογή:',
'default' => 'Προκαθορισμένο',
-'files' => 'Αρχεία',
+'prefs-files' => 'Αρχεία',
'prefs-custom-css' => 'Προκαθορισμένη CSS',
'prefs-custom-js' => 'Προκαθορισμένη JS',
* LANGUAGES', # do not translate or duplicate this message to other languages
# User preference toggles
-'tog-underline' => 'Underline links:',
+'tog-underline' => 'Link underlining:',
'tog-highlightbroken' => 'Format broken links <a href="" class="new">like this</a> (alternative: like this<a href="" class="internal">?</a>)',
'tog-justify' => 'Justify paragraphs',
'tog-hideminor' => 'Hide minor edits in recent changes',
'tog-hidepatrolled' => 'Hide patrolled edits in recent changes',
'tog-newpageshidepatrolled' => 'Hide patrolled pages from new page list',
'tog-extendwatchlist' => 'Expand watchlist to show all changes, not just the most recent',
-'tog-usenewrc' => 'Enhanced recent changes (requires JavaScript)',
+'tog-usenewrc' => 'Use enhanced recent changes (requires JavaScript)',
'tog-numberheadings' => 'Auto-number headings',
'tog-showtoolbar' => 'Show edit toolbar (requires JavaScript)',
'tog-editondblclick' => 'Edit pages on double click (requires JavaScript)',
'tog-editsectiononrightclick' => 'Enable section editing by right clicking on section titles (requires JavaScript)',
'tog-showtoc' => 'Show table of contents (for pages with more than 3 headings)',
'tog-rememberpassword' => 'Remember my login on this computer',
-'tog-editwidth' => 'Edit box has full width',
+'tog-editwidth' => 'Widen the edit box to fill the entire screen',
'tog-watchcreations' => 'Add pages I create to my watchlist',
'tog-watchdefault' => 'Add pages I edit to my watchlist',
'tog-watchmoves' => 'Add pages I move to my watchlist',
'username' => 'Username:',
'uid' => 'User ID:',
'prefs-memberingroups' => 'Member of {{PLURAL:$1|group|groups}}:',
+'prefs-registration' => 'Registration time:',
'yourrealname' => 'Real name:',
'yourlanguage' => 'Language:',
'yourvariant' => 'Variant:', # only translate this message to other languages if you have to change it
'qbsettings-floatingleft' => 'Floating left',
'qbsettings-floatingright' => 'Floating right',
'changepassword' => 'Change password',
-'skin' => 'Skin',
+'prefs-skin' => 'Skin',
'skin-preview' => 'Preview',
'math' => 'Math',
'dateformat' => 'Date format',
'datedefault' => 'No preference',
-'datetime' => 'Date and time',
+'prefs-datetime' => 'Date and time',
'math_failure' => 'Failed to parse',
'math_unknown_error' => 'unknown error',
'math_unknown_function' => 'unknown function',
'prefs-watchlist-edits-max' => '(maximum number: 1000)',
'prefs-misc' => 'Misc',
'prefs-resetpass' => 'Change password',
+'prefs-email' => 'Email options',
+'prefs-rendering' => 'Page Rendering',
'saveprefs' => 'Save',
'resetprefs' => 'Clear unsaved changes',
'restoreprefs' => 'Restore all default settings',
-'textboxsize' => 'Editing',
+'prefs-editing' => 'Editing',
'prefs-edit-boxsize' => 'Size of the edit window.',
'rows' => 'Rows:',
'columns' => 'Columns:',
'prefs-namespaces' => 'Namespaces',
'defaultns' => 'Search in these namespaces by default:',
'default' => 'default',
-'files' => 'Files',
+'prefs-files' => 'Files',
'prefs-custom-css' => 'Custom CSS',
'prefs-custom-js' => 'Custom JS',
+'prefs-reset-intro' => 'You can use this page to reset your preferences to the site defaults. This cannot be undone.',
# User rights
'userrights' => 'User rights management',
# Media information
'mediawarning' => "'''Warning''': This file may contain malicious code, by executing it your system may be compromised.<hr />",
-'imagemaxsize' => 'Limit images on file description pages to:',
+'imagemaxsize' => "Image size limit:<br/>''(for file description pages)''",
'thumbsize' => 'Thumbnail size:',
'widthheight' => '$1×$2', # only translate this message to other languages if you have to change it
'widthheightpage' => '$1×$2, $3 {{PLURAL:$3|page|pages}}',
'dberr-outofdate' => 'Note that their indexes of our content may be out of date.',
'dberr-cachederror' => 'This is a cached copy of the requested page, and may not be up to date.',
+# HTML forms
+'htmlform-invalid-input' => 'There are problems with some of your input',
+'htmlform-select-badoption' => 'The value you specified is not a valid option.',
+'htmlform-int-invalid' => 'The value you specified is not an integer.',
+'htmlform-int-toolow' => 'The value you specified is below the minimum of $1',
+'htmlform-int-toohigh' => 'The value you specified is above the maximum of $1',
+'htmlform-submit' => 'Submit',
+'htmlform-reset' => 'Undo changes',
+'htmlform-selectorother-other' => 'Other',
);
'qbsettings-floatingleft' => 'Ŝvebas maldekstre',
'qbsettings-floatingright' => 'Ŝvebas dekstre',
'changepassword' => 'Ŝanĝi pasvorton',
-'skin' => 'Etoso',
+'prefs-skin' => 'Etoso',
'skin-preview' => 'Antaŭrigardo',
'math' => 'Matematikaĵoj',
'dateformat' => 'Datformato',
'datedefault' => 'Nenia prefero',
-'datetime' => 'Dato kaj horo',
+'prefs-datetime' => 'Dato kaj horo',
'math_failure' => 'malsukcesis analizi formulon',
'math_unknown_error' => 'nekonata eraro',
'math_unknown_function' => 'nekonata funkcio',
'saveprefs' => 'Konservi preferojn',
'resetprefs' => 'Forviŝi nekonservitajn ŝanĝojn',
'restoreprefs' => 'Restarigi ĉiujn defaŭltajn preferojn',
-'textboxsize' => 'Grandeco de redakta tekstujo',
+'prefs-editing' => 'Grandeco de redakta tekstujo',
'prefs-edit-boxsize' => 'Grandeco de la redakto-kesko.',
'rows' => 'Linioj:',
'columns' => 'Kolumnoj:',
'prefs-namespaces' => 'Nomspacoj',
'defaultns' => 'Traserĉi la jenajn nomspacojn:',
'default' => 'defaŭlte',
-'files' => 'Dosieroj',
+'prefs-files' => 'Dosieroj',
'prefs-custom-css' => 'Propra CSS',
'prefs-custom-js' => 'Propra JS',
'qbsettings-floatingleft' => 'Flotante a la izquierda',
'qbsettings-floatingright' => 'Flotante a la derecha',
'changepassword' => 'Cambiar la contraseña',
-'skin' => 'Apariencia',
+'prefs-skin' => 'Apariencia',
'skin-preview' => 'Ver cómo queda',
'math' => 'Fórmulas',
'dateformat' => 'Formato de fecha',
'datedefault' => 'Sin preferencia',
-'datetime' => 'Fecha y hora',
+'prefs-datetime' => 'Fecha y hora',
'math_failure' => 'No se pudo entender',
'math_unknown_error' => 'error desconocido',
'math_unknown_function' => 'función desconocida',
'saveprefs' => 'Guardar',
'resetprefs' => 'Restaurar preferencias por defecto',
'restoreprefs' => 'Restaure todos las configuraciones por defecto',
-'textboxsize' => 'Edición',
+'prefs-editing' => 'Edición',
'prefs-edit-boxsize' => 'Tamaño de la ventana de edición.',
'rows' => 'Filas:',
'columns' => 'Columnas:',
'prefs-namespaces' => 'Espacios de nombres',
'defaultns' => 'Buscar en estos espacios de nombres por defecto:',
'default' => 'por defecto',
-'files' => 'Archivos',
+'prefs-files' => 'Archivos',
'prefs-custom-css' => 'CSS preferido',
'prefs-custom-js' => 'JS preferido',
'qbsettings-floatingleft' => 'Ujuvalt vasakul',
'qbsettings-floatingright' => 'Ujuvalt paremal',
'changepassword' => 'Muuda parool',
-'skin' => 'Kujundus',
+'prefs-skin' => 'Kujundus',
'skin-preview' => 'Eelvaade',
'math' => 'Valemite näitamine',
'dateformat' => 'Kuupäeva formaat',
'datedefault' => 'Eelistus puudub',
-'datetime' => 'Kuupäev ja kellaaeg',
+'prefs-datetime' => 'Kuupäev ja kellaaeg',
'math_failure' => 'Arusaamatu süntaks',
'math_unknown_error' => 'Tundmatu viga',
'math_unknown_function' => 'Tundmatu funktsioon',
'prefs-resetpass' => 'Muuda parooli',
'saveprefs' => 'Salvesta eelistused',
'resetprefs' => 'Lähtesta eelistused',
-'textboxsize' => 'Redigeerimisseaded',
+'prefs-editing' => 'Redigeerimisseaded',
'prefs-edit-boxsize' => 'Toimetamise akna suurus.',
'rows' => 'Redaktoriakna ridade arv:',
'columns' => 'Veergude arv',
'prefs-namespaces' => 'Nimeruumid',
'defaultns' => 'Vaikimisi otsi järgmistest nimeruumidest:',
'default' => 'vaikeväärtus',
-'files' => 'Failid',
+'prefs-files' => 'Failid',
# User rights
'userrights' => 'Kasutaja õiguste muutmine',
'qbsettings-floatingleft' => 'Ezkerrean mugikor',
'qbsettings-floatingright' => 'Eskubian flotatzen',
'changepassword' => 'Pasahitza aldatu',
-'skin' => 'Itxura',
+'prefs-skin' => 'Itxura',
'skin-preview' => 'Aurrebista',
'math' => 'Formulak',
'dateformat' => 'Data formatua',
'datedefault' => 'Hobespenik ez',
-'datetime' => 'Data eta ordua',
+'prefs-datetime' => 'Data eta ordua',
'math_failure' => 'Interpretazio errorea',
'math_unknown_error' => 'errore ezezaguna',
'math_unknown_function' => 'funtzio ezezaguna',
'saveprefs' => 'Gorde',
'resetprefs' => 'Hasieratu',
'restoreprefs' => 'Konfigurazio lehenetsi guztiak berrezarri',
-'textboxsize' => 'Aldatzen',
+'prefs-editing' => 'Aldatzen',
'prefs-edit-boxsize' => 'Edizio lehioaren tamaina.',
'rows' => 'Lerroak:',
'columns' => 'Zutabeak:',
'prefs-namespaces' => 'Izen-tarteak',
'defaultns' => 'Izen-tarte hauetan bilatu lehenetsitzat:',
'default' => 'lehenetsia',
-'files' => 'Fitxategiak',
+'prefs-files' => 'Fitxategiak',
'prefs-custom-css' => 'CSS pertsonalizatua',
'prefs-custom-js' => 'JS pertsonalizatua',
'qbsettings-floatingleft' => 'Frotanti ena gocha',
'qbsettings-floatingright' => 'Frotanti ena derecha',
'changepassword' => 'Chambal consínia',
-'skin' => 'Aparéncia',
+'prefs-skin' => 'Aparéncia',
'skin-preview' => 'Previsoreal',
'math' => 'Hórmulas',
'dateformat' => 'Hormatu e fecha',
'datedefault' => 'Sin preferéncias',
-'datetime' => 'Fecha i ora',
+'prefs-datetime' => 'Fecha i ora',
'math_failure' => 'Nu es posibri entendel',
'math_unknown_error' => 'marru andarriu',
'math_unknown_function' => 'hunción andarria',
'prefs-misc' => 'Bandallu (una mihina e tó)',
'saveprefs' => 'Emburacal',
'resetprefs' => 'Esborral los chambus nu emburacaus',
-'textboxsize' => 'Eitandu',
+'prefs-editing' => 'Eitandu',
'rows' => 'Filas:',
'columns' => 'Colunas:',
'searchresultshead' => 'Landeal',
'allowemail' => 'Premitil que m´envíin emails otrus usuárius',
'defaultns' => 'Landeal nestus "espacius de nombris" pol defeutu:',
'default' => 'defeutu',
-'files' => 'Archivus',
+'prefs-files' => 'Archivus',
# User rights
'userrights' => "Alministral premisus d'usuárius",
'qbsettings-floatingleft' => 'شناور چپ',
'qbsettings-floatingright' => 'شناور راست',
'changepassword' => 'تغییر گذرواژه',
-'skin' => 'پوسته',
+'prefs-skin' => 'پوسته',
'skin-preview' => 'پیشنمایش',
'math' => 'نمایش ریاضیات',
'dateformat' => 'قالب تاریخ',
'datedefault' => 'بدون ترجیح',
-'datetime' => 'تاریخ و زمان',
+'prefs-datetime' => 'تاریخ و زمان',
'math_failure' => 'شکست در تجزیه',
'math_unknown_error' => 'خطای ناشناخته',
'math_unknown_function' => 'تابع ناشناختهٔ',
'saveprefs' => 'ذخیرهٔ ترجیحات',
'resetprefs' => 'صفر کردن ترجیحات',
'restoreprefs' => 'باز گرداندن تمام تنظیمات پیشفرض',
-'textboxsize' => 'ابعاد جعبهٔ متن',
+'prefs-editing' => 'ابعاد جعبهٔ متن',
'prefs-edit-boxsize' => 'اندازهٔ پنجرهٔ ویرایش.',
'rows' => 'تعداد سطرها',
'columns' => 'تعداد ستونها',
'prefs-namespaces' => 'فضاهای نام',
'defaultns' => 'به طور پیشفرض در این فضاهای نام جستجو شود:',
'default' => 'پیشفرض',
-'files' => 'پروندهها',
+'prefs-files' => 'پروندهها',
'prefs-custom-css' => 'سیاساس شخصی',
'prefs-custom-js' => 'جاوااسکریپت شخصی',
'qbsettings-floatingleft' => 'Pysyen vasemmalla',
'qbsettings-floatingright' => 'Pysyen oikealla',
'changepassword' => 'Salasanan vaihto',
-'skin' => 'Ulkonäkö',
+'prefs-skin' => 'Ulkonäkö',
'skin-preview' => 'esikatselu',
'math' => 'Matematiikka',
'dateformat' => 'Päiväyksen muoto',
'datedefault' => 'Ei valintaa',
-'datetime' => 'Aika ja päiväys',
+'prefs-datetime' => 'Aika ja päiväys',
'math_failure' => 'Jäsentäminen epäonnistui',
'math_unknown_error' => 'Tuntematon virhe',
'math_unknown_function' => 'Tuntematon funktio',
'saveprefs' => 'Tallenna asetukset',
'resetprefs' => 'Palauta tallennetut asetukset',
'restoreprefs' => 'Palauta kaikki oletusasetuksiin',
-'textboxsize' => 'Muokkaus',
+'prefs-editing' => 'Muokkaus',
'prefs-edit-boxsize' => 'Muokkauskentän koko.',
'rows' => 'Rivit',
'columns' => 'Sarakkeet',
'prefs-namespaces' => 'Nimiavaruudet',
'defaultns' => 'Etsi oletusarvoisesti näistä nimiavaruuksista',
'default' => 'oletus',
-'files' => 'Tiedostot',
+'prefs-files' => 'Tiedostot',
'prefs-custom-css' => 'Käyttäjäkohtainen CSS-tyylisivu',
'prefs-custom-js' => 'Käyttäjäkohtainen JavaScript-sivu',
'qbsettings-fixedright' => 'Fast høgru',
'qbsettings-floatingleft' => 'Flótandi vinstru',
'changepassword' => 'Broyt loyniorð',
-'skin' => 'Hamur',
+'prefs-skin' => 'Hamur',
'skin-preview' => 'Forskoðan',
'math' => 'Støddfrøðiligir formlar',
'dateformat' => 'Dato forsnið',
-'datetime' => 'Dato og tíð',
+'prefs-datetime' => 'Dato og tíð',
'prefs-personal' => 'Brúkaradáta',
'prefs-rc' => 'Nýkomnar broytingar og stubbaskoðan',
'prefs-watchlist' => 'Eftirlit',
'prefs-misc' => 'Ymiskar innstillingar',
'saveprefs' => 'Goym innstillingar',
'resetprefs' => 'Endurset innstillingar',
-'textboxsize' => 'Broyting av greinum',
+'prefs-editing' => 'Broyting av greinum',
'rows' => 'Røð:',
'columns' => 'Teigar:',
'searchresultshead' => 'Leita',
'guesstimezone' => 'Fyll út við kagara',
'allowemail' => 'Tilset t-post frá øðrum brúkarum',
'defaultns' => 'Leita í hesum navnarúminum sum fyrisett mál:',
-'files' => 'Fílur',
+'prefs-files' => 'Fílur',
# User rights
'saveusergroups' => 'Goym brúkaraflokk',
'qbsettings-floatingleft' => 'Flottante à gauche',
'qbsettings-floatingright' => 'Flottante à droite',
'changepassword' => 'Modification du mot de passe',
-'skin' => 'Habillage',
+'prefs-skin' => 'Habillage',
'skin-preview' => 'Prévisualiser',
'math' => 'Rendu des maths',
'dateformat' => 'Format de date',
'datedefault' => 'Aucune préférence',
-'datetime' => 'Date et heure',
+'prefs-datetime' => 'Date et heure',
'math_failure' => 'Erreur math',
'math_unknown_error' => 'erreur indéterminée',
'math_unknown_function' => 'fonction inconnue',
'saveprefs' => 'Enregistrer les préférences',
'resetprefs' => 'Rétablir les préférences',
'restoreprefs' => 'Restaurer toutes les valeurs par défaut',
-'textboxsize' => 'Fenêtre de modification',
+'prefs-editing' => 'Fenêtre de modification',
'prefs-edit-boxsize' => 'Taille de la fenêtre de modification.',
'rows' => 'Rangées :',
'columns' => 'Colonnes :',
'prefs-namespaces' => 'Espaces de noms',
'defaultns' => 'Rechercher par défaut dans ces espaces de noms',
'default' => 'défaut',
-'files' => 'Fichiers',
+'prefs-files' => 'Fichiers',
'prefs-custom-css' => 'CSS personnalisé',
'prefs-custom-js' => 'JavaScript personnalisé',
'qbsettings-floatingleft' => 'Fllotenta a gôche',
'qbsettings-floatingright' => 'Fllotenta a drêta',
'changepassword' => 'Modificacion du mot de pâssa',
-'skin' => 'Entèrface',
+'prefs-skin' => 'Entèrface',
'skin-preview' => 'Prèvisualisar',
'math' => 'Rendu de les formules matèmatiques',
'dateformat' => 'Format de dâta',
'datedefault' => 'Niona prèference',
-'datetime' => 'Dâta et hora',
+'prefs-datetime' => 'Dâta et hora',
'math_failure' => 'Èrror d’analisa sintaxica',
'math_unknown_error' => 'èrror endètèrmenâ',
'math_unknown_function' => 'fonccion encognua',
'prefs-misc' => 'Prèferences de totes sôrtes',
'saveprefs' => 'Enregistrar les prèferences',
'resetprefs' => 'Rètablir les prèferences',
-'textboxsize' => 'Fenétra d’èdicion',
+'prefs-editing' => 'Fenétra d’èdicion',
'rows' => 'Renchiês :',
'columns' => 'Colones :',
'searchresultshead' => 'Rechèrche',
'allowemail' => 'Ôtorisar l’èxpèdicion de mèl vegnent d’ôtros utilisators',
'defaultns' => 'Rechèrchiér per dèfôt dens cetos èspâços de nom :',
'default' => 'dèfôt',
-'files' => 'Fichiérs',
+'prefs-files' => 'Fichiérs',
# User rights
'userrights' => 'Maneyance des drêts d’utilisator',
'qbsettings-floatingleft' => 'Flutuant a çampe',
'qbsettings-floatingright' => 'Flutuant a diestre',
'changepassword' => 'Gambie peraule clâf',
-'skin' => 'Mascare',
+'prefs-skin' => 'Mascare',
'skin-preview' => 'Anteprime',
'math' => 'Matematiche',
'dateformat' => 'Formât de date',
'datedefault' => 'Nissune preference',
-'datetime' => 'Date e ore',
+'prefs-datetime' => 'Date e ore',
'prefs-personal' => 'Dâts utents',
'prefs-rc' => 'Ultins cambiaments & stubs',
'prefs-watchlist' => 'Tignudis di voli',
'saveprefs' => 'Salve lis preferencis',
'resetprefs' => 'Predeterminât',
'restoreprefs' => 'Torne a lis impostazions predeterminadis',
-'textboxsize' => 'Cambiament',
+'prefs-editing' => 'Cambiament',
'prefs-edit-boxsize' => 'Dimensions dal barcon pai cambiaments.',
'rows' => 'Riis',
'columns' => 'Colonis:',
'prefs-namespaces' => 'Spazis dai nons',
'defaultns' => 'Cîr in chescj spazis dai nons se no specifichi nuialtri:',
'default' => 'predeterminât',
-'files' => 'Files',
+'prefs-files' => 'Files',
# User rights
'editinguser' => "Cambiament dai dirits par l'utent '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
'qbsettings-floatingleft' => 'Lofts sweevjend',
'qbsettings-floatingright' => 'Rjochts sweevjend',
'changepassword' => 'Wachtwurd feroarje',
-'skin' => 'Side-oansjen',
+'prefs-skin' => 'Side-oansjen',
'skin-preview' => 'Proefbyld',
'math' => 'Formules',
'dateformat' => 'Datum',
'datedefault' => 'Gjin foarkar',
-'datetime' => 'Datum en tiid',
+'prefs-datetime' => 'Datum en tiid',
'math_failure' => 'Untsjutbere formule',
'math_unknown_error' => 'Unbekinde fout',
'math_unknown_function' => 'Unbekinde funksje',
'saveprefs' => 'Ynstellings fêstlizze',
'resetprefs' => 'Ynstellings werom sette',
'restoreprefs' => 'Tebek nei de standertynstellings',
-'textboxsize' => 'Siden bewurkje',
+'prefs-editing' => 'Siden bewurkje',
'prefs-edit-boxsize' => 'Ofmjittings fan it bewurkingsfinster',
'rows' => 'Rigen',
'columns' => 'Kolommen',
'prefs-namespaces' => 'Nammeromten',
'defaultns' => "Nammeromten dy't normaal trochsocht wurde:",
'default' => 'standert',
-'files' => 'Triemen',
+'prefs-files' => 'Triemen',
# User rights
'userrights' => 'Behear fan meidoggerrjochten',
'qbsettings-floatingleft' => 'Ag faoileáil ar chlé',
'qbsettings-floatingright' => 'Ag faoileáil ar dheis',
'changepassword' => "Athraigh d'fhocal faire",
-'skin' => 'Craiceann',
+'prefs-skin' => 'Craiceann',
'skin-preview' => 'Réamhamharc',
'math' => 'Matamaitice',
'dateformat' => 'Formáid dáta',
'datedefault' => 'Is cuma liom',
-'datetime' => 'Dáta agus am',
+'prefs-datetime' => 'Dáta agus am',
'math_failure' => 'Theip ó anailís na foirmle',
'math_unknown_error' => 'earráid anaithnid',
'math_unknown_function' => 'foirmle anaithnid',
'prefs-resetpass' => 'Athraigh focal faire',
'saveprefs' => 'Sábháil',
'resetprefs' => 'Athshocraigh sainroghanna',
-'textboxsize' => 'Eagarthóireacht',
+'prefs-editing' => 'Eagarthóireacht',
'rows' => 'Sraitheanna',
'columns' => 'Colúin',
'searchresultshead' => 'Cuardaigh',
'prefs-namespaces' => 'Ainmspáis',
'defaultns' => 'Cuardaigh sna ranna seo a los éagmaise:',
'default' => 'réamhshocrú',
-'files' => 'Comhaid',
+'prefs-files' => 'Comhaid',
# User rights
'userrights' => 'Bainistíocht cearta úsáideora',
'qbsettings-floatingleft' => '左首漂移',
'qbsettings-floatingright' => '左首漂移',
'changepassword' => '改过密码',
-'skin' => '皮',
+'prefs-skin' => '皮',
'skin-preview' => '(预览)',
'math' => '数学公式',
'dateformat' => '日期格式',
'datedefault' => '默认项目',
-'datetime' => '日期同到时间',
+'prefs-datetime' => '日期同到时间',
'math_failure' => '分析失败',
'math_unknown_error' => '未知错误',
'math_unknown_function' => '未知函数',
'prefs-misc' => '杂项',
'saveprefs' => '存到参数',
'resetprefs' => '设过参数',
-'textboxsize' => '编写',
+'prefs-editing' => '编写',
'rows' => '横:',
'columns' => '竖:',
'searchresultshead' => '设置寻到𠮶结果',
'allowemail' => '接受别𠮶用户𠮶邮件',
'defaultns' => '默认搜索𠮶名字空间:',
'default' => '默认',
-'files' => '档案',
+'prefs-files' => '档案',
# User rights
'userrights' => '用户权限管理',
'qbsettings-floatingleft' => '左首漂移',
'qbsettings-floatingright' => '左首漂移',
'changepassword' => '改過密碼',
-'skin' => '皮',
+'prefs-skin' => '皮',
'skin-preview' => '(預覽)',
'math' => '數學公式',
'dateformat' => '日期格式',
'datedefault' => '默認項目',
-'datetime' => '日期同到時間',
+'prefs-datetime' => '日期同到時間',
'math_failure' => '分析失敗',
'math_unknown_error' => '未知錯誤',
'math_unknown_function' => '未知函數',
'prefs-misc' => '雜項',
'saveprefs' => '存到參數',
'resetprefs' => '設過參數',
-'textboxsize' => '編寫',
+'prefs-editing' => '編寫',
'rows' => '橫:',
'columns' => '豎:',
'searchresultshead' => '設置尋到嗰結果',
'allowemail' => '接受別嗰用戶嗰郵件',
'defaultns' => '默認搜索嗰名字空間:',
'default' => '默認',
-'files' => '檔案',
+'prefs-files' => '檔案',
# User rights
'userrights' => '用戶許可權管理',
'preferences' => 'Roghainnean',
'mypreferences' => 'Mo roghainnean',
'changepassword' => 'Atharraich facal-faire',
-'skin' => 'Bian',
+'prefs-skin' => 'Bian',
'dateformat' => 'Cruth nan ceann-latha',
'math_unknown_error' => 'mearachd neo-aithnichte',
'prefs-personal' => "Dàta a' chleachdair",
'qbsettings-floatingleft' => 'Flotante á esquerda',
'qbsettings-floatingright' => 'Flotante á dereita',
'changepassword' => 'Cambiar o meu contrasinal',
-'skin' => 'Aparencia',
+'prefs-skin' => 'Aparencia',
'skin-preview' => 'Vista previa',
'math' => 'Fórmulas matemáticas',
'dateformat' => 'Formato da data',
'datedefault' => 'Ningunha preferencia',
-'datetime' => 'Data e hora',
+'prefs-datetime' => 'Data e hora',
'math_failure' => 'Fallou a conversión do código',
'math_unknown_error' => 'erro descoñecido',
'math_unknown_function' => 'función descoñecida',
'saveprefs' => 'Gardar as preferencias',
'resetprefs' => 'Eliminar os cambios non gardados',
'restoreprefs' => 'Restaurar todas as preferencias por defecto',
-'textboxsize' => 'Edición',
+'prefs-editing' => 'Edición',
'prefs-edit-boxsize' => 'Tamaño da caixa de edición.',
'rows' => 'Filas:',
'columns' => 'Columnas:',
'prefs-namespaces' => 'Espazos de nomes',
'defaultns' => 'Procurar por omisión nestes espazos de nomes:',
'default' => 'predeterminado',
-'files' => 'Ficheiros',
+'prefs-files' => 'Ficheiros',
'prefs-custom-css' => 'CSS personalizado',
'prefs-custom-js' => 'JS personalizado',
# Preferences page
'preferences' => 'Meinos brukjamaideineis',
'mypreferences' => '𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰',
-'skin' => 'Seidofill',
+'prefs-skin' => 'Seidofill',
'skin-preview' => 'Faúrsaiƕa',
'saveprefs' => 'Melja',
'searchresultshead' => 'Sokeiþ',
'qbsettings-floatingleft' => 'Πλανώμενα αριστερώς',
'qbsettings-floatingright' => 'Πλανώμενα δεξιώς',
'changepassword' => 'Ἀλλάττειν σύνθημα',
-'skin' => 'Ἐμφάνισις',
+'prefs-skin' => 'Ἐμφάνισις',
'skin-preview' => 'Προεπισκοπεῖν',
'math' => 'Τὰ μαθηματικά',
'dateformat' => 'Μορφοποιία χρονολογίας',
'datedefault' => 'Οὐδεμία προτίμησις',
-'datetime' => 'Χρονολογία καὶ ὥρα',
+'prefs-datetime' => 'Χρονολογία καὶ ὥρα',
'math_failure' => 'Λεξιανάλυσις ἀποτετυχηκυῖα',
'math_unknown_error' => 'ἄγνωστον σφάλμα',
'math_unknown_function' => 'ἄγνωστος ἐνέργεια',
'saveprefs' => 'Γράφειν',
'resetprefs' => 'Ἐκκαθαίρειν ἀσώτους ἀλλαγάς',
'restoreprefs' => 'Ἐπανίσταναι ἁπάσας τὰς προκαθωρισμένας ῥυθμίσεις',
-'textboxsize' => 'Τὸ μεταγράφειν',
+'prefs-editing' => 'Τὸ μεταγράφειν',
'prefs-edit-boxsize' => 'Μέγεθος τῆς θυρίδος μεταγραφῆς.',
'rows' => 'Σειραί:',
'columns' => 'Στῆλαι:',
'prefs-namespaces' => 'Ὄνοματικὸς χῶρος',
'defaultns' => 'Ἀναζήτησις ἐν τοῖσδε ὀνοματικοῖς χώροις κατὰ προεπιλογήν:',
'default' => 'προκαθωρισμένον',
-'files' => 'Ἀρχεῖα',
+'prefs-files' => 'Ἀρχεῖα',
'prefs-custom-css' => 'CSS παραγγελτόν',
'prefs-custom-js' => 'JS παραγγελτόν',
'qbsettings-floatingleft' => 'Links, in dr Schwebi',
'qbsettings-floatingright' => 'Rächts, in dr Schwebi',
'changepassword' => 'Passwort ändere',
-'skin' => 'Skin',
+'prefs-skin' => 'Skin',
'skin-preview' => 'Vorschou',
'math' => 'TeX',
'dateformat' => 'Datumsformat',
'datedefault' => 'kei Aagab',
-'datetime' => 'Datum un Zyt',
+'prefs-datetime' => 'Datum un Zyt',
'math_failure' => 'Parser-Fähler',
'math_unknown_error' => 'Nit bekannte Fähler',
'math_unknown_function' => 'Nit bekannti Funktion',
'saveprefs' => 'Änderige spychere',
'resetprefs' => 'Änderige doch nid spychere',
'restoreprefs' => 'Alli Standardyystellige widerhärstelle',
-'textboxsize' => 'Tekscht-Ygab',
+'prefs-editing' => 'Tekscht-Ygab',
'prefs-edit-boxsize' => 'Gressi vum Bearbeitigsfänschter.',
'rows' => 'Zylene',
'columns' => 'Spaltene',
'prefs-namespaces' => 'Namensryym',
'defaultns' => 'Namensrüüm wo standardmäässig söll gsuecht wärde:',
'default' => 'Voryystellig',
-'files' => 'Bilder',
+'prefs-files' => 'Bilder',
'prefs-custom-css' => 'Benutzerdefinierti CSS',
'prefs-custom-js' => 'Benutzerdefiniert JS',
'preferences' => 'પસંદ',
'mypreferences' => 'મારી પસંદ',
'skin-preview' => 'ફેરફાર બતાવો',
-'datetime' => 'તારીખ અને સમય',
+'prefs-datetime' => 'તારીખ અને સમય',
'prefs-watchlist' => 'ધ્યાનસૂચિ',
'searchresultshead' => 'શોધો',
'prefsnologin' => 'Cha nel oo loggit stiagh',
'qbsettings-none' => 'Veg',
'changepassword' => 'Fockle yn arrey y cheaghley',
-'skin' => 'Crackan',
+'prefs-skin' => 'Crackan',
'skin-preview' => 'Roie-haishbynys',
'dateformat' => 'Kiaddey yn date',
-'datetime' => 'Date as am',
+'prefs-datetime' => 'Date as am',
'math_syntax_error' => 'Co-ordrail marranagh',
'prefs-personal' => 'Gruaie yn ymmydeyr',
'prefs-rc' => "Caghlaaghyn s'noa",
'prefs-watchlist' => 'Rolley arrey',
'prefs-watchlist-days' => 'Laaghyn y haishbyney ayns rolley arrey:',
'saveprefs' => 'Sauail',
-'textboxsize' => 'Reaghey',
+'prefs-editing' => 'Reaghey',
'columns' => 'Collooyn:',
'searchresultshead' => 'Ronsaghey',
'recentchangesdays' => "Laaghyn y haishbyney ayns caghlaaghyn s'noa:",
'localtime' => 'Traa ynnydagh',
'timezoneoffset' => 'Ashchlou¹',
'default' => 'loght',
-'files' => 'Coadanyn',
+'prefs-files' => 'Coadanyn',
# User rights
'userrights' => 'Reireydys kiartyn ymmydeyr',
'qbsettings-floatingleft' => 'Phêu-yì chhai chó',
'qbsettings-floatingright' => 'Phêu-yì chhai yu',
'changepassword' => 'Kiên-kói me̍t-me̍t',
-'skin' => 'Mien-pán',
+'prefs-skin' => 'Mien-pán',
'skin-preview' => 'Yi-ko',
'math' => 'Sṳ-ho̍k kûng-sṳt',
'dateformat' => 'Ngit-khì kak-sṳt',
'datedefault' => 'Yi-sat-chhṳ̍t',
-'datetime' => 'Ngit-khì khi̍p sṳ̀-kiên',
+'prefs-datetime' => 'Ngit-khì khi̍p sṳ̀-kiên',
'math_failure' => 'Kié-sak sṳt-phai',
'math_unknown_error' => 'Mò-tî chho-ngu',
'math_unknown_function' => 'Mò-tî chhṳ-su',
'prefs-misc' => 'Khì-thâ sat-chṳ',
'saveprefs' => 'Pó-chhùn',
'resetprefs' => 'Sat-thin',
-'textboxsize' => 'Phiên-cho',
+'prefs-editing' => 'Phiên-cho',
'rows' => 'Phài-lie̍t',
'columns' => 'Lie̍t-su:',
'searchresultshead' => 'Chhìm-cháu kiet-kó sat-thin',
'allowemail' => 'Chiap-su lòi-chhṳ̀ khì-thâ yung-fu ke email',
'defaultns' => 'Yi-sat sêu-sok ke miàng-sṳ khûng-kiên:',
'default' => 'Yi-sat',
-'files' => 'Tóng-on',
+'prefs-files' => 'Tóng-on',
# User rights
'userrights' => 'Yung-fu khièn-han kón-lî',
'qbsettings-floatingleft' => 'צף משמאל',
'qbsettings-floatingright' => 'צף מימין',
'changepassword' => 'שינוי סיסמה',
-'skin' => 'עיצוב',
+'prefs-skin' => 'עיצוב',
'skin-preview' => 'תצוגה מקדימה',
'math' => 'נוסחאות מתמטיות',
'dateformat' => 'מבנה תאריך',
'datedefault' => 'ברירת המחדל',
-'datetime' => 'תאריך ושעה',
+'prefs-datetime' => 'תאריך ושעה',
'math_failure' => 'עיבוד הנוסחה נכשל',
'math_unknown_error' => 'שגיאה לא ידועה',
'math_unknown_function' => 'פונקציה לא מוכרת',
'saveprefs' => 'שמירת העדפות',
'resetprefs' => 'מחיקת שינויים שלא נשמרו',
'restoreprefs' => 'חזרה להגדרות ברירת המחדל',
-'textboxsize' => 'עריכה',
+'prefs-editing' => 'עריכה',
'prefs-edit-boxsize' => 'גודל חלון העריכה.',
'rows' => 'שורות:',
'columns' => 'עמודות:',
'prefs-namespaces' => 'מרחבי שם',
'defaultns' => 'מרחבי שם לחיפוש כברירת מחדל:',
'default' => 'ברירת מחדל',
-'files' => 'קבצים',
+'prefs-files' => 'קבצים',
'prefs-custom-css' => 'קובץ CSS מותאם אישית',
'prefs-custom-js' => 'קובץ JS מותאם אישית',
'qbsettings-floatingleft' => 'अस्थिर बाईं तरफ़',
'qbsettings-floatingright' => 'अस्थिर दाहिनी तरफ़',
'changepassword' => 'कूटशब्द बदलें',
-'skin' => 'त्वचा',
+'prefs-skin' => 'त्वचा',
'skin-preview' => 'झलक',
'math' => 'गणित',
'dateformat' => 'दिनांक प्रारूप',
'datedefault' => 'खा़स पसंद नहीं',
-'datetime' => 'दिनांक तथा समय',
+'prefs-datetime' => 'दिनांक तथा समय',
'math_failure' => 'पार्स नहीं कर पायें',
'math_unknown_error' => 'अपरिचीत समस्या',
'math_unknown_function' => 'अज्ञात कार्य',
'prefs-misc' => 'अन्य',
'saveprefs' => 'संजोयें',
'resetprefs' => 'ना संजोये गये बदलाव रद्द करें',
-'textboxsize' => 'संपादन',
+'prefs-editing' => 'संपादन',
'rows' => 'कतारें:',
'columns' => 'कॉलम:',
'searchresultshead' => 'खोज',
'prefs-namespaces' => 'नामस्थान',
'defaultns' => 'इन नामस्थानोंमें हमेशा खोजें:',
'default' => 'अविचल',
-'files' => 'फ़ाईलें',
+'prefs-files' => 'फ़ाईलें',
# User rights
'userrights' => 'सदस्य अधिकार व्यवस्थापन',
'qbsettings-floatingleft' => 'Floating left',
'qbsettings-floatingright' => 'Floating right',
'changepassword' => 'Pasword ke badlo',
-'skin' => 'Skin',
+'prefs-skin' => 'Skin',
'skin-preview' => 'Jhalak',
'math' => 'Math',
'dateformat' => 'Date ke format',
'datedefault' => 'Koi pasand nai',
-'datetime' => 'Tarik aur time',
+'prefs-datetime' => 'Tarik aur time',
'math_failure' => 'Parse nai kare sakaa',
'math_unknown_error' => 'galti ke nai samajhta',
'math_unknown_function' => 'nai samajhta ki ii kon chij khatir hai',
'saveprefs' => 'Save karo',
'resetprefs' => 'Binaa bachawa gias badlao ke mitao',
'restoreprefs' => 'Sab default settings ke pahile jaise karo',
-'textboxsize' => 'Badaltaa hai',
+'prefs-editing' => 'Badaltaa hai',
'prefs-edit-boxsize' => 'Edit window ke size.',
'rows' => 'Rows:',
'columns' => 'Columns:',
'prefs-namespaces' => 'Namespaces',
'defaultns' => 'Default se ii namespacesme khojo:',
'default' => 'default',
-'files' => 'Files',
+'prefs-files' => 'Files',
'prefs-custom-css' => 'Custom CSS',
'prefs-custom-js' => 'Custom JS',
'qbsettings-floatingleft' => 'Lijevo leteće',
'qbsettings-floatingright' => 'Desno leteće',
'changepassword' => 'Promjena lozinke',
-'skin' => 'Izgled',
+'prefs-skin' => 'Izgled',
'skin-preview' => 'Pregled',
'math' => 'Prikaz matematičkih formula',
'dateformat' => 'Format datuma',
'datedefault' => 'Nemoj postaviti',
-'datetime' => 'Datum i vrijeme',
+'prefs-datetime' => 'Datum i vrijeme',
'math_failure' => 'Obrada nije uspjela.',
'math_unknown_error' => 'nepoznata pogreška',
'math_unknown_function' => 'nepoznata funkcija',
'saveprefs' => 'Spremi',
'resetprefs' => 'Vrati na prvotne postavke',
'restoreprefs' => "Vrati sve postavke na pretpostavljeno stanje - ''default''",
-'textboxsize' => 'Širina okvira za uređivanje',
+'prefs-editing' => 'Širina okvira za uređivanje',
'prefs-edit-boxsize' => 'Veličina prozora za uređivanje.',
'rows' => 'Redova',
'columns' => 'Stupaca',
'prefs-namespaces' => 'Imenski prostori',
'defaultns' => 'Ako ne navedem drugačije, traži u ovim prostorima:',
'default' => 'prvotno',
-'files' => 'Datoteke',
+'prefs-files' => 'Datoteke',
'prefs-custom-css' => 'Prilagođen CSS',
'prefs-custom-js' => 'Prilagođen JS',
'qbsettings-floatingleft' => 'Wisa nalěwo',
'qbsettings-floatingright' => 'Wisa naprawo',
'changepassword' => 'Hesło změnić',
-'skin' => 'Šat',
+'prefs-skin' => 'Šat',
'skin-preview' => 'Přehlad',
'math' => 'Math',
'dateformat' => 'Format datuma',
'datedefault' => 'Žane nastajenje',
-'datetime' => 'Datum a čas',
+'prefs-datetime' => 'Datum a čas',
'math_failure' => 'Analyza njeje so poradźiła',
'math_unknown_error' => 'njeznaty zmylk',
'math_unknown_function' => 'njeznata funkcija',
'saveprefs' => 'Składować',
'resetprefs' => 'Njeskładowane změny zaćisnyć',
'restoreprefs' => 'Wšě standardne nastajenja wobnowić',
-'textboxsize' => 'Wobdźěłowanje',
+'prefs-editing' => 'Wobdźěłowanje',
'prefs-edit-boxsize' => 'Wulkosć wobdźěłowanskeho wokna.',
'rows' => 'Rjadki:',
'columns' => 'Stołpiki:',
'prefs-namespaces' => 'Mjenowe rumy',
'defaultns' => 'W tutych mjenowych rumach awtomatisce pytać:',
'default' => 'standard',
-'files' => 'Dataje',
+'prefs-files' => 'Dataje',
'prefs-custom-css' => 'Swójski CSS',
'prefs-custom-js' => 'Swójski JS',
'qbsettings-floatingleft' => 'Lebegő baloldali',
'qbsettings-floatingright' => 'Lebegő jobboldali',
'changepassword' => 'Jelszócsere',
-'skin' => 'Felület',
+'prefs-skin' => 'Felület',
'skin-preview' => 'előnézet',
'math' => 'Képletek',
'dateformat' => 'Dátum formátuma',
'datedefault' => 'Nincs beállítás',
-'datetime' => 'Dátum és idő',
+'prefs-datetime' => 'Dátum és idő',
'math_failure' => 'Értelmezés sikertelen',
'math_unknown_error' => 'ismeretlen hiba',
'math_unknown_function' => 'ismeretlen függvény',
'saveprefs' => 'Mentés',
'resetprefs' => 'Alaphelyzet',
'restoreprefs' => 'A beállítások alaphelyzetbe állítása',
-'textboxsize' => 'Szerkesztés',
+'prefs-editing' => 'Szerkesztés',
'prefs-edit-boxsize' => 'A szerkesztőablak mérete.',
'rows' => 'Sor',
'columns' => 'Oszlop',
'prefs-namespaces' => 'Névterek',
'defaultns' => 'Alapértelmezett keresés az alábbi névterekben:',
'default' => 'alapértelmezés',
-'files' => 'Fájlok',
+'prefs-files' => 'Fájlok',
'prefs-custom-css' => 'saját CSS',
'prefs-custom-js' => 'saját JS',
'qbsettings-floatingleft' => 'Ձախից լողացող',
'qbsettings-floatingright' => 'Աջից լողացող',
'changepassword' => 'Փոխել գաղտնաբառը',
-'skin' => 'Տեսք',
+'prefs-skin' => 'Տեսք',
'skin-preview' => 'նախադիտել',
'math' => 'Մաթ',
'dateformat' => 'Օր ու ժամվա ձևը',
'datedefault' => 'Առանց նախընտրության',
-'datetime' => 'Օր ու ժամ',
+'prefs-datetime' => 'Օր ու ժամ',
'math_failure' => 'Չհաջողվեց վերլուծել',
'math_unknown_error' => 'անհայտ սխալ',
'math_unknown_function' => 'անհայտ ֆունկցիա',
'prefs-misc' => 'Այլ',
'saveprefs' => 'Հիշել',
'resetprefs' => 'Անտեսել փոփոխությունները',
-'textboxsize' => 'Խմբագրում',
+'prefs-editing' => 'Խմբագրում',
'rows' => 'Տողեր`',
'columns' => 'Սյունակներ',
'searchresultshead' => 'Որոնում',
'allowemail' => 'Թույլատրել էլ-նամակներ մյուս մասնակիցներից',
'defaultns' => 'Լռությամբ որոնել հետևյալ անվանատարծքներում.',
'default' => 'լռությամբ',
-'files' => 'Ֆայլեր',
+'prefs-files' => 'Ֆայլեր',
# User rights
'userrights' => 'Մասնակիցների իրավունքների կառավարում',
'qbsettings-floatingleft' => 'Flottante a sinistra',
'qbsettings-floatingright' => 'Flottante a derecta',
'changepassword' => 'Cambiar contrasigno',
-'skin' => 'Stilo',
+'prefs-skin' => 'Stilo',
'skin-preview' => 'Previsualisation',
'math' => 'Mathematica',
'dateformat' => 'Formato de datas',
'datedefault' => 'Nulle preferentia',
-'datetime' => 'Data e hora',
+'prefs-datetime' => 'Data e hora',
'math_failure' => 'Error durante le analyse del syntaxe',
'math_unknown_error' => 'error incognite',
'math_unknown_function' => 'function incognite',
'saveprefs' => 'Confirmar',
'resetprefs' => 'Reverter cambios',
'restoreprefs' => 'Restaurar tote le configurationes predefinite',
-'textboxsize' => 'Modification',
+'prefs-editing' => 'Modification',
'prefs-edit-boxsize' => 'Dimensiones del fenestra de modification.',
'rows' => 'Lineas:',
'columns' => 'Columnas:',
'prefs-namespaces' => 'Spatios de nomines',
'defaultns' => 'Cercar initialmente in iste spatios de nomines:',
'default' => 'predefinition',
-'files' => 'Files',
+'prefs-files' => 'Files',
'prefs-custom-css' => 'CSS personalisate',
'prefs-custom-js' => 'JS personalisate',
'qbsettings-floatingleft' => 'Mengambang sebelah kiri',
'qbsettings-floatingright' => 'Mengambang sebelah kanan',
'changepassword' => 'Ganti kata sandi',
-'skin' => 'Kulit',
+'prefs-skin' => 'Kulit',
'skin-preview' => 'Pratayang',
'math' => 'Matematika',
'dateformat' => 'Format tanggal',
'datedefault' => 'Tak ada preferensi',
-'datetime' => 'Tanggal dan waktu',
+'prefs-datetime' => 'Tanggal dan waktu',
'math_failure' => 'Gagal memparse',
'math_unknown_error' => 'Kesalahan yang tidak diketahui',
'math_unknown_function' => 'fungsi yang tidak diketahui',
'saveprefs' => 'Simpan',
'resetprefs' => 'Batalkan perubahan',
'restoreprefs' => 'Kembalikan semua setelan baku',
-'textboxsize' => 'Penyuntingan',
+'prefs-editing' => 'Penyuntingan',
'prefs-edit-boxsize' => 'Ukuran kotak penyuntingan.',
'rows' => 'Baris:',
'columns' => 'Kolom:',
'prefs-namespaces' => 'Ruang nama',
'defaultns' => 'Cari dalam ruang nama berikut ini secara baku:',
'default' => 'baku',
-'files' => 'Berkas',
+'prefs-files' => 'Berkas',
'prefs-custom-css' => 'CSS Buatan',
'prefs-custom-js' => 'JS Buatan',
'qbsettings-floatingleft' => 'Floating left',
'qbsettings-floatingright' => 'Floating right',
'changepassword' => 'Baliwan ti password',
-'skin' => 'Kudil',
+'prefs-skin' => 'Kudil',
'skin-preview' => 'I-preview',
'math' => 'Math',
'dateformat' => 'Format ti petsa',
'datedefault' => 'Awanan preferencia',
-'datetime' => 'Petsa ken oras',
+'prefs-datetime' => 'Petsa ken oras',
'math_failure' => 'Napaay nga ag-parse',
'math_unknown_error' => 'di ammo a biddut',
'math_unknown_function' => 'di ammo a function',
'timezoneoffset' => 'Offset¹',
'servertime' => 'Oras ti server',
'default' => 'naisigud',
-'files' => 'Dagiti files',
+'prefs-files' => 'Dagiti files',
# User rights
'userrights-user-editname' => 'Mangiserrek iti nagan-agar-aramat:',
'qbsettings' => 'Preferaji pri "Quickbar"',
'qbsettings-none' => 'Nula',
'changepassword' => 'Chanjar pasovorto',
-'skin' => 'Pelo',
+'prefs-skin' => 'Pelo',
'skin-preview' => 'Pre-videz',
'math' => 'Quale montrar la formuli',
'dateformat' => 'Formo di dato',
'datedefault' => 'Sen prefero',
-'datetime' => 'Dato e tempo',
+'prefs-datetime' => 'Dato e tempo',
'math_unknown_error' => 'nekonocata eroro',
'math_bad_tmpdir' => 'Onu ne povas skribar o krear la tempala matematikala arkivaro',
'math_bad_output' => 'Onu ne povas skribar o krear la arkivaro por la matematiko',
'prefs-resetpass' => 'Chanjar pasovorto',
'saveprefs' => 'Registragar',
'resetprefs' => 'Riestablisar preferaji',
-'textboxsize' => 'Grandeso dil areo por texto',
+'prefs-editing' => 'Grandeso dil areo por texto',
'rows' => 'Linei:',
'columns' => 'Kolumni:',
'searchresultshead' => 'Preferaji di la rezultaji dil sercho',
'allowemail' => 'Permisez e-posti de altra uzanti',
'prefs-namespaces' => 'Nomari',
'defaultns' => 'Serchar en la spaco-nomi omise:',
-'files' => 'Arkivi',
+'prefs-files' => 'Arkivi',
# User rights
'userrights-user-editname' => 'Skribez uzantonomo:',
'qbsettings-floatingleft' => 'Fljótandi til vinstri',
'qbsettings-floatingright' => 'Fljótandi til hægri',
'changepassword' => 'Breyta lykilorði',
-'skin' => 'Þema',
+'prefs-skin' => 'Þema',
'skin-preview' => 'Forskoða',
'math' => 'Stærðfræðiformúlur',
'dateformat' => 'Tímasnið',
'datedefault' => 'Sjálfgefið',
-'datetime' => 'Tímasnið og tímabelti',
+'prefs-datetime' => 'Tímasnið og tímabelti',
'math_failure' => 'Þáttun mistókst',
'math_unknown_error' => 'óþekkt villa',
'math_unknown_function' => 'óþekkt virkni',
'prefs-resetpass' => 'Breyta lykilorði',
'saveprefs' => 'Vista',
'resetprefs' => 'Endurstilla valmöguleika',
-'textboxsize' => 'Breytingarflipinn',
+'prefs-editing' => 'Breytingarflipinn',
'prefs-edit-boxsize' => 'Stærð breytingagluggans.',
'rows' => 'Raðir',
'columns' => 'Dálkar',
'prefs-namespaces' => 'Nafnrými',
'defaultns' => 'Leita í þessum nafnrýmum sjálfgefið:',
'default' => 'sjálfgefið',
-'files' => 'Skrár',
+'prefs-files' => 'Skrár',
# User rights
'userrights' => 'Breyta notandaréttindum',
'qbsettings-floatingleft' => 'Fluttuante a sinistra',
'qbsettings-floatingright' => 'Fluttuante a destra',
'changepassword' => 'Cambia password',
-'skin' => 'Aspetto grafico (skin)',
+'prefs-skin' => 'Aspetto grafico (skin)',
'skin-preview' => 'anteprima',
'math' => 'Formule matematiche',
'dateformat' => 'Formato della data',
'datedefault' => 'Nessuna preferenza',
-'datetime' => 'Data e ora',
+'prefs-datetime' => 'Data e ora',
'math_failure' => 'Errore del parser',
'math_unknown_error' => 'errore sconosciuto',
'math_unknown_function' => 'funzione sconosciuta',
'saveprefs' => 'Salva le preferenze',
'resetprefs' => 'Reimposta le preferenze',
'restoreprefs' => 'Ripristina le impostazioni di default',
-'textboxsize' => 'Casella di modifica',
+'prefs-editing' => 'Casella di modifica',
'prefs-edit-boxsize' => 'Dimensioni della finestra di modifica.',
'rows' => 'Righe:',
'columns' => 'Colonne:',
'prefs-namespaces' => 'Namespace',
'defaultns' => 'Cerca in questi namespace se non diversamente specificato:',
'default' => 'predefinito',
-'files' => 'File',
+'prefs-files' => 'File',
'prefs-custom-css' => 'CSS personalizzato',
'prefs-custom-js' => 'JS personalizzato',
'qbsettings-floatingleft' => 'ウィンドウの左上に固定',
'qbsettings-floatingright' => 'ウィンドウの右上に固定',
'changepassword' => 'パスワード変更',
-'skin' => '外装',
+'prefs-skin' => '外装',
'skin-preview' => 'プレビュー',
'math' => '数式',
'dateformat' => '日付の書式',
'datedefault' => '選択なし',
-'datetime' => '日付と時刻',
+'prefs-datetime' => '日付と時刻',
'math_failure' => '構文解析失敗',
'math_unknown_error' => '不明なエラー',
'math_unknown_function' => '不明な関数',
'saveprefs' => '設定を保存',
'resetprefs' => '変更を破棄',
'restoreprefs' => '初期設定に戻す',
-'textboxsize' => '編集画面',
+'prefs-editing' => '編集画面',
'prefs-edit-boxsize' => '編集ウィンドウのサイズ。',
'rows' => '縦:',
'columns' => '横:',
'prefs-namespaces' => '名前空間',
'defaultns' => '標準で検索する名前空間:',
'default' => 'デフォルト',
-'files' => 'ファイル',
+'prefs-files' => 'ファイル',
'prefs-custom-css' => 'ユーザーCSS',
'prefs-custom-js' => 'ユーザーJS',
# Preferences page
'preferences' => 'zmaselnei',
'mypreferences' => 'zmaselnei liste',
-'textboxsize' => 'ca galfi',
+'prefs-editing' => 'ca galfi',
'searchresultshead' => "tu'a le se sisku",
'savedprefs' => 'le do zmaselnei pu vreji',
'qbsettings-floatingleft' => 'Ngambang sisih kiwa',
'qbsettings-floatingright' => 'Ngambang sisih tengen',
'changepassword' => 'Ganti tembung sandi',
-'skin' => 'Kulit',
+'prefs-skin' => 'Kulit',
'skin-preview' => 'Pratilik',
'math' => 'Matématika',
'dateformat' => 'Format tanggal',
'datedefault' => 'Ora ana préferènsi',
-'datetime' => 'Tanggal lan wektu',
+'prefs-datetime' => 'Tanggal lan wektu',
'math_failure' => 'Gagal nglakoni parse',
'math_unknown_error' => 'Kaluputan sing ora dimangertèni',
'math_unknown_function' => 'fungsi sing ora dimangertèni',
'prefs-resetpass' => 'Ganti tembung sandi',
'saveprefs' => 'Simpen',
'resetprefs' => 'Resikana owah-owahan sing ora disimpen',
-'textboxsize' => 'Panyuntingan',
+'prefs-editing' => 'Panyuntingan',
'rows' => 'Larikan:',
'columns' => 'Kolom:',
'searchresultshead' => 'Panggolèkan',
'prefs-namespaces' => 'Ruang jeneng / Bilik jeneng',
'defaultns' => "Golèk ing bilik jeneng (''namespace'') iki mawa baku:",
'default' => 'baku',
-'files' => 'Berkas',
+'prefs-files' => 'Berkas',
# User rights
'userrights' => 'Manajemen hak panganggo',
'qbsettings-floatingleft' => 'მარცხნივ მცურავი',
'qbsettings-floatingright' => 'მარჯვნივ მცურავი',
'changepassword' => 'პაროლის შეცვლა',
-'skin' => 'გარეკანი',
+'prefs-skin' => 'გარეკანი',
'skin-preview' => 'წინასწარი გადახედვა',
'math' => 'მათემატიკა',
'dateformat' => 'თარიღის ფორმატი',
'datedefault' => 'წყარო მითითებული არაა',
-'datetime' => 'თარიღი და დრო',
+'prefs-datetime' => 'თარიღი და დრო',
'math_unknown_error' => 'უცნობი შეცდომა',
'math_unknown_function' => 'უცნობი ფუნქცია',
'math_syntax_error' => 'სინტაქსი არასწორია',
'prefs-resetpass' => 'შეცვალეთ პაროლი',
'saveprefs' => 'შენახვა',
'resetprefs' => 'გადატვირთვა',
-'textboxsize' => 'რედაქტირება',
+'prefs-editing' => 'რედაქტირება',
'prefs-edit-boxsize' => 'რედაქტირების ფანჯრის ზომა.',
'rows' => 'რიგები:',
'columns' => 'სვეტები',
'prefs-namespaces' => 'სახელთა სივრცეები',
'defaultns' => 'სტანდარტული ძიება ამ სახელთა სივრცეებში:',
'default' => 'სტანდარტული',
-'files' => 'ფაილები',
+'prefs-files' => 'ფაილები',
# User rights
'userrights' => 'მომხმარებელთა უფლებების მართვა',
'qbsettings-floatingleft' => 'Shepte jıljıwshı',
'qbsettings-floatingright' => "On'da jıljıwshı",
'changepassword' => "Paroldi o'zgertiw",
-'skin' => "Sırtqı ko'rinis",
+'prefs-skin' => "Sırtqı ko'rinis",
'skin-preview' => 'Korip al',
'math' => 'Formulalar',
'dateformat' => "Sa'ne formatı",
'datedefault' => 'Hesh sazlawlarsız',
-'datetime' => "Sa'ne ha'm waqıt",
+'prefs-datetime' => "Sa'ne ha'm waqıt",
'math_unknown_error' => "belgisiz qa'telik",
'math_unknown_function' => 'belgisiz funktsiya',
'math_lexing_error' => "leksikalıq qa'telik",
'prefs-resetpass' => "Paroldi o'zgertiw",
'saveprefs' => 'Saqla',
'resetprefs' => "Saqlanbag'an o'zgerislerdi o'shir",
-'textboxsize' => "O'zgertiw",
+'prefs-editing' => "O'zgertiw",
'prefs-edit-boxsize' => "O'zgertiw aynasının' o'lshemi.",
'rows' => 'Qatarlar:',
'columns' => "Bag'analar:",
'prefs-namespaces' => "İsimler ko'plikleri",
'defaultns' => "Usı isimler ko'pliklerinen defolt boyınsha izdew:",
'default' => 'defolt',
-'files' => 'Fayllar',
+'prefs-files' => 'Fayllar',
# User rights
'userrights' => 'Paydalanıwshı huqıqların basqarıw',
'qbsettings-floatingleft' => 'Tufeg aẓelmaḍ',
'qbsettings-floatingright' => 'Tufeg ayeffus',
'changepassword' => 'Beddel awal n tbaḍnit',
-'skin' => 'Aglim',
+'prefs-skin' => 'Aglim',
'skin-preview' => 'Pre-timeẓriwt',
'math' => 'Tusnakt',
'dateformat' => 'talɣa n uzemz',
'datedefault' => 'Ur sɛiɣ ara asemyifi',
-'datetime' => 'Azemz d ukud',
+'prefs-datetime' => 'Azemz d ukud',
'math_failure' => 'Agul n tusnakt',
'math_unknown_error' => 'Agul mačči d aḍahri',
'math_unknown_function' => 'Tawuri mačči d taḍahrit',
'prefs-misc' => 'Isemyifiyen wiyaḍ',
'saveprefs' => 'Smekti',
'resetprefs' => 'Reset/réinitialiser isemyifiyen',
-'textboxsize' => 'Abedddil',
+'prefs-editing' => 'Abedddil',
'rows' => 'Ijerriḍen:',
'columns' => 'Tigejda:',
'searchresultshead' => 'Anadi',
'allowemail' => 'Eǧǧ imseqdacen wiyaḍ a k-aznen email',
'defaultns' => 'Nadi deg yismawen n taɣult s umeslugen:',
'default' => 'ameslugen',
-'files' => 'Ifayluwen',
+'prefs-files' => 'Ifayluwen',
# User rights
'userrights' => 'Laɛej iserfan n wemseqdac',
'qbsettings-floatingleft' => 'سولعا قالقىعان',
'qbsettings-floatingright' => 'وڭعا قالقىعان',
'changepassword' => 'قۇپىييا ٴسوزدى وزگەرتۋ',
-'skin' => 'مانەرلەر',
+'prefs-skin' => 'مانەرلەر',
'skin-preview' => 'قاراپ شىعۋ',
'math' => 'ورنەكتەر',
'dateformat' => 'كۇن-اي ٴپىشىمى',
'datedefault' => 'ەش قالاۋسىز',
-'datetime' => 'ۋاقىت',
+'prefs-datetime' => 'ۋاقىت',
'math_failure' => 'قۇرىلىمىن تالداتۋى ٴساتسىز ٴبىتتى',
'math_unknown_error' => 'بەلگىسىز قاتە',
'math_unknown_function' => 'بەلگىسىز جەتە',
'prefs-misc' => 'ارقىيلى',
'saveprefs' => 'ساقتا',
'resetprefs' => 'ساقتالماعان وزگەرىستەردى تازارت',
-'textboxsize' => 'وڭدەۋ',
+'prefs-editing' => 'وڭدەۋ',
'rows' => 'جولدار:',
'columns' => 'باعاندار:',
'searchresultshead' => 'ىزدەۋ',
'prefs-namespaces' => 'ەسىم ايالارى',
'defaultns' => 'مىنا ەسىم ايالاردا ادەپكىدەن ىزدەۋ:',
'default' => 'ادەپكى',
-'files' => 'فايلدار',
+'prefs-files' => 'فايلدار',
# User rights
'userrights' => 'قاتىسۋشى قۇقىقتارىن رەتتەۋ',
'qbsettings-floatingleft' => 'Солға қалқыған',
'qbsettings-floatingright' => 'Оңға қалқыған',
'changepassword' => 'Құпия сөзді өзгерту',
-'skin' => 'Мәнерлер',
+'prefs-skin' => 'Мәнерлер',
'skin-preview' => 'Қарап шығу',
'math' => 'Өрнектер',
'dateformat' => 'Күн-ай пішімі',
'datedefault' => 'Еш қалаусыз',
-'datetime' => 'Уақыт',
+'prefs-datetime' => 'Уақыт',
'math_failure' => 'Құрылымын талдатуы сәтсіз бітті',
'math_unknown_error' => 'белгісіз қате',
'math_unknown_function' => 'белгісіз жете',
'prefs-misc' => 'Әрқилы',
'saveprefs' => 'Сақта',
'resetprefs' => 'Сақталмаған өзгерістерді тазарт',
-'textboxsize' => 'Өңдеу',
+'prefs-editing' => 'Өңдеу',
'rows' => 'Жолдар:',
'columns' => 'Бағандар:',
'searchresultshead' => 'Іздеу',
'prefs-namespaces' => 'Есім аялары',
'defaultns' => 'Мына есім аяларда әдепкіден іздеу:',
'default' => 'әдепкі',
-'files' => 'Файлдар',
+'prefs-files' => 'Файлдар',
# User rights
'userrights' => 'Қатысушы құқықтарын реттеу',
'qbsettings-floatingleft' => 'Solğa qalqığan',
'qbsettings-floatingright' => 'Oñğa qalqığan',
'changepassword' => 'Qupïya sözdi özgertw',
-'skin' => 'Mänerler',
+'prefs-skin' => 'Mänerler',
'skin-preview' => 'Qarap şığw',
'math' => 'Örnekter',
'dateformat' => 'Kün-aý pişimi',
'datedefault' => 'Eş qalawsız',
-'datetime' => 'Waqıt',
+'prefs-datetime' => 'Waqıt',
'math_failure' => 'Qurılımın taldatwı sätsiz bitti',
'math_unknown_error' => 'belgisiz qate',
'math_unknown_function' => 'belgisiz jete',
'prefs-misc' => 'Ärqïlı',
'saveprefs' => 'Saqta',
'resetprefs' => 'Saqtalmağan özgeristerdi tazart',
-'textboxsize' => 'Öñdew',
+'prefs-editing' => 'Öñdew',
'rows' => 'Joldar:',
'columns' => 'Bağandar:',
'searchresultshead' => 'İzdew',
'prefs-namespaces' => 'Esim ayaları',
'defaultns' => 'Mına esim ayalarda ädepkiden izdew:',
'default' => 'ädepki',
-'files' => 'Faýldar',
+'prefs-files' => 'Faýldar',
# User rights
'userrights' => 'Qatıswşı quqıqtarın rettew',
'qbsettings-floatingleft' => 'អណ្តែតឆ្វេង',
'qbsettings-floatingright' => 'អណ្តែតស្តាំ',
'changepassword' => 'ប្តូរពាក្យសំងាត់',
-'skin' => 'សំបក',
+'prefs-skin' => 'សំបក',
'skin-preview' => 'មើលជាមុន',
'math' => 'គណិត',
'dateformat' => 'ទម្រង់កាលបរិច្ឆេទ',
'datedefault' => 'គ្មានចំណូលចិត្ត',
-'datetime' => 'កាលបរិច្ឆេទនិងល្វែងម៉ោង',
+'prefs-datetime' => 'កាលបរិច្ឆេទនិងល្វែងម៉ោង',
'math_failure' => 'Failed to parse',
'math_unknown_error' => 'កំហុសមិនស្គាល់',
'math_unknown_function' => 'អនុគមន៍មិនស្គាល់',
'prefs-resetpass' => 'ប្តូរពាក្យសំងាត់',
'saveprefs' => 'រក្សាទុក',
'resetprefs' => 'លុបចោលបំលាស់ប្ដូរមិនបានរក្សាទុក',
-'textboxsize' => 'កំណែប្រែ',
+'prefs-editing' => 'កំណែប្រែ',
'rows' => 'ជួរដេក៖',
'columns' => 'ជួរឈរ៖',
'searchresultshead' => 'ស្វែងរក',
'prefs-namespaces' => 'លំហឈ្មោះ',
'defaultns' => 'ស្វែងរកក្នុងលំហឈ្មោះទាំងនេះតាមលំនាំដើម៖',
'default' => 'លំនាំដើម',
-'files' => 'ឯកសារ',
+'prefs-files' => 'ឯកសារ',
# User rights
'userrights' => 'ការគ្រប់គ្រងសិទ្ធិអ្នកប្រើប្រាស់',
'qbsettings-floatingleft' => 'ಎಡಕ್ಕ ತೇಲುತ್ತಿದೆ',
'qbsettings-floatingright' => 'ಬಲಕ್ಕೆ ತೇಲುತ್ತಿದೆ',
'changepassword' => 'ಪ್ರವೇಶ ಪದ ಬದಲಾಯಿಸಿ',
-'skin' => 'ಚರ್ಮ',
+'prefs-skin' => 'ಚರ್ಮ',
'skin-preview' => 'ಮುನ್ನೋಟ',
'math' => 'ಗಣಿತ',
'dateformat' => 'ದಿನಾಂಕದ ಫಾರ್ಮ್ಯಾಟ್',
'datedefault' => 'ಯಾವುದೇ ಪ್ರಾಶಸ್ತ್ಯ ಇಲ್ಲ',
-'datetime' => 'ದಿನ ಮತ್ತು ಸಮಯ',
+'prefs-datetime' => 'ದಿನ ಮತ್ತು ಸಮಯ',
'math_unknown_error' => 'ತಿಳಿದಿಲ್ಲದ ದೋಷ',
'math_image_error' => 'PNGಗೆ ಬದಲಾವಣೆ ವಿಫಲವಾಯಿತು;
latex, dvips, gs, ಸರಿಯಾಗಿ ಸ್ಥಾಪಿತವಾಗಿದೆಯೆ ಎಂದು ಖಾತ್ರಿ ಮಾಡಿ ಬದಲಾಯಿಸಿ',
'prefs-misc' => 'ಇತರೆ',
'saveprefs' => 'ಉಳಿಸಿ',
'resetprefs' => 'ಉಳಿಸಿಲ್ಲದ ಬದಲಾವಣೆಗಳನ್ನು ಅಳಿಸು',
-'textboxsize' => 'ಸಂಪಾದನೆ',
+'prefs-editing' => 'ಸಂಪಾದನೆ',
'rows' => 'ಸಾಲುಗಳು:',
'searchresultshead' => 'ಹುಡುಕು',
'resultsperpage' => 'ಪ್ರತಿ ಪುಟದಲ್ಲಿ ಫಲಿತಾಂಶಗಳು:',
'allowemail' => 'ಬೇರೆ ಸದಸ್ಯರಿಂದ ಈ-ಮೈಲ್ಗಳನ್ನು ಸ್ವೀಕರಿಸು',
'defaultns' => 'ಮೂಲಸ್ಥಿತಿಯಲ್ಲಿ ಈ ಪುಟಪ್ರಬೇಧಗಳಲ್ಲಿ ಹುಡುಕಿ:',
'default' => 'ಮೂಲಸ್ಥಿತಿ',
-'files' => 'ಫೈಲುಗಳು',
+'prefs-files' => 'ಫೈಲುಗಳು',
# User rights
'userrights' => 'ಬಳಕೆದಾರ ಹಕ್ಕುಗಳ ನಿರ್ವಹಣೆ',
'qbsettings-floatingleft' => '왼쪽 유동',
'qbsettings-floatingright' => '오른쪽 유동',
'changepassword' => '비밀번호 바꾸기',
-'skin' => '스킨',
+'prefs-skin' => '스킨',
'skin-preview' => '미리 보기',
'math' => '수식',
'dateformat' => '날짜 형식',
'datedefault' => '기본값',
-'datetime' => '날짜와 시각',
+'prefs-datetime' => '날짜와 시각',
'math_failure' => '해석 실패',
'math_unknown_error' => '알 수 없는 오류',
'math_unknown_function' => '알 수 없는 함수',
'saveprefs' => '저장',
'resetprefs' => '저장하지 않은 설정 되돌리기',
'restoreprefs' => '기본값을 복구',
-'textboxsize' => '편집상자 크기',
+'prefs-editing' => '편집상자 크기',
'prefs-edit-boxsize' => '편집 창의 크기',
'rows' => '줄 수:',
'columns' => '열:',
'prefs-namespaces' => '이름공간',
'defaultns' => '기본으로 다음의 이름공간에서 찾기:',
'default' => '기본값',
-'files' => '파일',
+'prefs-files' => '파일',
'prefs-custom-css' => '사용자 CSS',
'prefs-custom-js' => '사용자 자바스크립트',
'qbsettings-floatingleft' => 'Am linke Rand am Schwevve',
'qbsettings-floatingright' => 'Am rächte Rand am Schwevve',
'changepassword' => 'Passwood *',
-'skin' => 'Et Ussinn',
+'prefs-skin' => 'Et Ussinn',
'skin-preview' => 'Vör-Ansich',
'math' => 'Mathematisch Formele',
'dateformat' => 'Em Datum sing Fomat',
'datedefault' => 'Ejaal - kein Vörliebe',
-'datetime' => 'Datum un Uhrzigge',
+'prefs-datetime' => 'Datum un Uhrzigge',
'math_failure' => 'Fähler vum Parser',
'math_unknown_error' => 'Fähler, dä mer nit kenne',
'math_unknown_function' => 'en Funktion, die mer nit kenne',
'saveprefs' => 'Fasshalde',
'resetprefs' => 'Zeröck setze',
'restoreprefs' => 'Alles op der Shtandatt retuur stelle',
-'textboxsize' => 'Beim Bearbeide',
+'prefs-editing' => 'Beim Bearbeide',
'prefs-edit-boxsize' => 'Dat Feld zöm Schrieve sull han:',
'rows' => 'Reihe:',
'columns' => 'Spalte:',
'prefs-namespaces' => 'Appachtemangs',
'defaultns' => 'Dun standaadmäßich en hee dä Appachtemengs söke:',
'default' => 'Standaad',
-'files' => 'Dateie',
+'prefs-files' => 'Dateie',
'prefs-custom-css' => 'Selfsjemaat <i lang="en">Cascading Style Sheet</i>',
'prefs-custom-js' => 'Selfsjemaat JavaSkipp',
'prefsreset' => 'Tercih hatin şondakirin.',
'qbsettings-none' => 'Tune',
'changepassword' => 'Şîfre biguherîne',
-'skin' => 'Pêste',
+'prefs-skin' => 'Pêste',
'skin-preview' => 'Pêşdîtin',
'math' => 'TeX',
'dateformat' => 'Formata rojê',
'datedefault' => 'Tercih tune ne',
-'datetime' => 'Dem û rêkewt',
+'prefs-datetime' => 'Dem û rêkewt',
'math_unknown_error' => 'şaşbûnekî nezanîn',
'math_image_error' => 'Wêşandana PNG nemeşî',
'prefs-personal' => 'Agahiyên bikarhênerê/î',
'prefs-resetpass' => 'Şifreyê biguherîne',
'saveprefs' => 'Tercîhan qeyd bike',
'resetprefs' => 'Nivîsarên netomarkirî şondabike',
-'textboxsize' => 'Guheranin',
+'prefs-editing' => 'Guheranin',
'rows' => 'Rêz',
'columns' => 'sitûn',
'searchresultshead' => 'Eyarên encamên lêgerinê',
'allowemail' => 'Qebûlbike ku bikarhênerên di e-nameyan ji te ra bişînin',
'prefs-searchoptions' => 'Tercihên lêgerînê',
'default' => 'asayî',
-'files' => 'Dosya',
+'prefs-files' => 'Dosya',
# User rights
'userrights' => 'Îdarekirina mafên bikarhêneran',
# Preferences page
'preferences' => 'Teythi ow akont',
'mypreferences' => 'Teythi ow akont',
-'skin' => 'Krohen',
+'prefs-skin' => 'Krohen',
'prefs-watchlist' => 'Rol golyas',
'saveprefs' => 'Gwitha',
'searchresultshead' => 'Hwilas',
'timezoneregion-asia' => 'Asi',
'timezoneregion-australia' => 'Ostrali',
'timezoneregion-europe' => 'Europa',
-'files' => 'Restrennow',
+'prefs-files' => 'Restrennow',
# Groups
'group-user' => 'Devnydhyow',
'preferences' => 'Түзөө',
'changepassword' => 'Сырсөздү өзгөртүү',
'dateformat' => 'Датанын форматы',
-'datetime' => 'Дата жана убакыт',
+'prefs-datetime' => 'Дата жана убакыт',
'math_unknown_error' => 'белгисиз ката',
'prefs-rc' => 'Соңку өзгөрүүлөр',
'prefs-watchlist' => 'Байкоо тизме',
'saveprefs' => 'Сактап кой',
-'textboxsize' => 'Оңдоо',
+'prefs-editing' => 'Оңдоо',
'searchresultshead' => 'Издөө',
'localtime' => 'Жергиликтүү убакыт',
-'files' => 'Файлдар',
+'prefs-files' => 'Файлдар',
# Groups
'group' => 'Топ:',
'qbsettings-floatingleft' => 'Innens a sinistra',
'qbsettings-floatingright' => 'Innens a dextra',
'changepassword' => 'Tesseram mutare',
-'skin' => 'Aspectum',
+'prefs-skin' => 'Aspectum',
'skin-preview' => 'Praevisum',
'math' => 'Interpretatio artis mathematicae',
'dateformat' => 'Forma diei',
'datedefault' => 'Nullum praeferentiae',
-'datetime' => 'Dies et tempus',
+'prefs-datetime' => 'Dies et tempus',
'math_failure' => 'Excutare non potest',
'math_unknown_error' => 'error ignotus',
'math_unknown_function' => 'functio ignota',
'prefs-resetpass' => 'Tesseram mutare',
'saveprefs' => 'Servare praeferentias',
'resetprefs' => 'Reddere praeferentias',
-'textboxsize' => 'Mensura capsae verbi',
+'prefs-editing' => 'Mensura capsae verbi',
'prefs-edit-boxsize' => 'Magnitudo capsae recensionis.',
'rows' => 'Lineae:',
'columns' => 'Columnae:',
'prefs-namespaces' => 'Spatia nominalia',
'defaultns' => 'Quaerere per haec spatia nominalia a defalta:',
'default' => 'praedeterminatum',
-'files' => 'Fasciculi',
+'prefs-files' => 'Fasciculi',
'prefs-custom-css' => 'CSS proprium',
'prefs-custom-js' => 'JS proprium',
'qbsettings-floatingleft' => 'schwiewt lenks',
'qbsettings-floatingright' => 'Schwiewt riets',
'changepassword' => 'Passwuert änneren',
-'skin' => 'Skin',
+'prefs-skin' => 'Skin',
'skin-preview' => 'Kucken',
'math' => 'Math/TeX',
'dateformat' => 'Datumsformat',
'datedefault' => 'Egal (Standard)',
-'datetime' => 'Datum an Auerzäit',
+'prefs-datetime' => 'Datum an Auerzäit',
'math_failure' => 'Parser-Feeler',
'math_unknown_error' => 'Onbekannte Feeler',
'math_unknown_function' => 'Onbekannte Funktioun',
'saveprefs' => 'Späicheren',
'resetprefs' => 'Net gespäichert Ännerungen zrécksetzen',
'restoreprefs' => 'All Standardastellungen zrécksetzen',
-'textboxsize' => 'Änneren',
+'prefs-editing' => 'Änneren',
'prefs-edit-boxsize' => 'Gréisst vun der Ännerungsfënster:',
'rows' => 'Zeilen',
'columns' => 'Kolonnen',
'prefs-namespaces' => 'Nummraim',
'defaultns' => 'Dës Nummraim duerchsichen:',
'default' => 'Standard',
-'files' => 'Fichieren',
+'prefs-files' => 'Fichieren',
'prefs-custom-css' => 'Benotzerdefinéierten CSS',
'prefs-custom-js' => 'Benotzerdefinéierte JS',
'timezoneregion-europe' => 'Europa',
'timezoneregion-indian' => 'Mar Indian',
'timezoneregion-pacific' => 'Mar Pasifica',
-'files' => 'Fixes',
+'prefs-files' => 'Fixes',
# User rights
'userrights' => 'Dirije de la diretos de usores',
'qbsettings-floatingleft' => 'Links zjwevend',
'qbsettings-floatingright' => 'Rechs zjwevend',
'changepassword' => 'Wachwaord verangere',
-'skin' => '{{SITENAME}}-uterlik',
+'prefs-skin' => '{{SITENAME}}-uterlik',
'skin-preview' => 'Veurbesjouwing',
'math' => 'Mattemetik rendere',
'dateformat' => 'Datumformaat',
'datedefault' => 'Gein veurkäör',
-'datetime' => 'Datum en tied',
+'prefs-datetime' => 'Datum en tied',
'math_failure' => 'Parse misluk',
'math_unknown_error' => 'onbekènde fout',
'math_unknown_function' => 'onbekènde functie',
'saveprefs' => 'Veurkäöre opsjlaon',
'resetprefs' => 'Sjtandaardveurkäöre hersjtèlle',
'restoreprefs' => 'Terug nao standaardinstellinge',
-'textboxsize' => 'Aafmeitinge tèksveld',
+'prefs-editing' => 'Aafmeitinge tèksveld',
'prefs-edit-boxsize' => "Aafmetinge van 't bewirkingsvinster.",
'rows' => 'Regels',
'columns' => 'Kolomme',
'prefs-namespaces' => 'Naamruimte',
'defaultns' => 'Zeuk sjtandaard in dees naomruumdes:',
'default' => 'sjtandaard',
-'files' => 'Bestenj',
+'prefs-files' => 'Bestenj',
'prefs-custom-css' => 'Persoonlijke CSS',
'prefs-custom-js' => 'Persoonlijke JS',
'changepassword' => 'Cangiâ a pòula segretta',
'skin-preview' => 'Anteprimma',
'dateformat' => 'Formato da a data',
-'datetime' => 'Data e oùa',
+'prefs-datetime' => 'Data e oùa',
'saveprefs' => 'Sarva',
-'textboxsize' => 'Cangia',
+'prefs-editing' => 'Cangia',
'searchresultshead' => 'Çerca',
'timezonelegend' => 'Oùa',
'allowemail' => 'Permitti a posta elettronega da ätri utenti',
'default' => 'Predefinïo',
-'files' => 'Papê',
+'prefs-files' => 'Papê',
# Groups
'group-user' => 'Ûtenti',
'preferences' => 'Prefereenz',
'mypreferences' => 'i mè prefereenz',
'changepassword' => "Mudifega la paròla d'urdin",
-'skin' => "Aspett de l'interfacia",
+'prefs-skin' => "Aspett de l'interfacia",
'math' => 'Matem',
'dateformat' => 'Furmaa da la data',
'datedefault' => 'Nissüna preferenza',
-'datetime' => 'Data e urari',
+'prefs-datetime' => 'Data e urari',
'prefs-personal' => 'Carateristich dal druvat',
'prefs-rc' => 'Cambiameent reçeent',
'prefs-misc' => 'Vari',
'saveprefs' => 'Tegn i mudifech',
'resetprefs' => 'Trá via i mudifech',
-'textboxsize' => 'Mudifich',
+'prefs-editing' => 'Mudifich',
'rows' => 'Riich:',
'columns' => 'Culònn:',
'searchresultshead' => 'Cerca',
'guesstimezone' => 'Catá l urari dal sèrver',
'allowemail' => 'Permètt ai altar üteent də cuntatamm par email',
'defaultns' => 'Tröva sempar in di caamp:',
-'files' => 'Archivi',
+'prefs-files' => 'Archivi',
# User rights
'userrights-lookup-user' => 'Gestione dei gruppi utente',
'preferences' => 'Malúli',
'mypreferences' => 'Malúli ma ngáí',
'dateformat' => 'bokomi ya mokɔlɔ',
-'datetime' => 'Mokɔlɔ mpé ntángo',
+'prefs-datetime' => 'Mokɔlɔ mpé ntángo',
'prefs-rc' => 'Mbóngwana ya nsúka',
'saveprefs' => 'kobómbisa',
'searchresultshead' => 'Boluki',
'mypreferences' => 'ຕັ້ງຄ່າ',
'prefs-edits' => 'ຈຳນວນການດັດແກ້:',
'changepassword' => 'ປ່ຽນລະຫັດຜ່ານ',
-'skin' => 'ລວດລາຍ',
+'prefs-skin' => 'ລວດລາຍ',
'skin-preview' => 'ລອງເບິ່ງ',
'math' => 'ຄະນິດສາດ',
'dateformat' => 'ແບບວັນເດືອນປີ',
'datedefault' => 'ແນວໃດກໍ່ໄດ້',
-'datetime' => 'ວັນ ແລະ ເວລາ',
+'prefs-datetime' => 'ວັນ ແລະ ເວລາ',
'math_syntax_error' => 'ຜິດຫຼັກໄວຍະກອນ',
'prefs-personal' => 'ຂໍ້ມູນຫຼັກຜູ້ໃຊ້',
'prefs-rc' => 'ການດັດແກ້ຫຼ້າສຸດ',
'prefs-misc' => 'ແລະອື່ນໆ',
'saveprefs' => 'ບັນທຶກ',
'resetprefs' => 'ເລີ່ມຄືນໃໝ່',
-'textboxsize' => 'ການດັດແກ້',
+'prefs-editing' => 'ການດັດແກ້',
'rows' => 'ແຖວ:',
'columns' => 'ຖັນ:',
'searchresultshead' => 'ຊອກຫາ',
'guesstimezone' => 'ເອົາເວລາຈາກໂປຣແກຣມທ່ອງເວັບ',
'allowemail' => 'ອະນຸຍາດ ໃຫ້ຜູ້ໃຊ້ອື່ນ ສົ່ງອີເມລຫາຂ້ອຍ',
'defaultns' => 'ຄົ້ນຫາ ໃນ ຂອບເຂດຊື່ ນີ້ ເວລາບໍ່ມີການລະບຸ:',
-'files' => 'ໄຟລ໌',
+'prefs-files' => 'ໄຟລ໌',
# User rights
'editinguser' => 'ຜູ້ໃຊ້ <b>$1</b> ພວມດັດແກ້ ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])',
'prefs-edits' => "Hloli ye ng'inabi:",
'prefsnologin' => 'Ni menuhile',
'qbsettings-none' => 'Ni',
-'skin' => 'PendiBe',
+'prefs-skin' => 'PendiBe',
'skin-preview' => 'PendiBe',
'math' => 'Mat',
'dateformat' => 'Data apukisize',
'datedefault' => 'Ni di petohoni di sebelu',
-'datetime' => 'Data',
+'prefs-datetime' => 'Data',
'prefs-rc' => 'Petuho nca',
'prefs-watchlist' => 'Mukoloko di kentezi',
'saveprefs' => 'Bulukezi',
'resetprefs' => 'Lisetize',
-'textboxsize' => "Hloli ye ng'i",
+'prefs-editing' => "Hloli ye ng'i",
'rows' => 'Roo:',
'columns' => 'Kalom:',
'searchresultshead' => 'Fatukile',
'contextchars' => 'Selt di lani:',
'timezoneoffset' => 'Ufiseti¹',
'default' => 'auto',
-'files' => 'Imegini',
+'prefs-files' => 'Imegini',
# Groups
'group-all' => '(xete)',
'qbsettings-floatingleft' => 'Plaukiojantis kairėje',
'qbsettings-floatingright' => 'Plaukiojantis dešinėje',
'changepassword' => 'Pakeisti slaptažodį',
-'skin' => 'Išvaizda',
+'prefs-skin' => 'Išvaizda',
'skin-preview' => 'Peržiūra',
'math' => 'Matematika',
'dateformat' => 'Datos formatas',
'datedefault' => 'Jokio pasirinkimo',
-'datetime' => 'Data ir laikas',
+'prefs-datetime' => 'Data ir laikas',
'math_failure' => 'Nepavyko apdoroti',
'math_unknown_error' => 'nežinoma klaida',
'math_unknown_function' => 'nežinoma funkcija',
'saveprefs' => 'Išsaugoti',
'resetprefs' => 'Išvalyti neišsaugotus pakeitimus',
'restoreprefs' => 'Atstatyti visus numatytuosius nustatymus',
-'textboxsize' => 'Redagavimas',
+'prefs-editing' => 'Redagavimas',
'prefs-edit-boxsize' => 'Redagavimo lango dydis.',
'rows' => 'Eilutės:',
'columns' => 'Stulpeliai:',
'prefs-namespaces' => 'Vardų sritys',
'defaultns' => 'Pagal nutylėjimą ieškoti šiose vardų srityse:',
'default' => 'pagal nutylėjimą',
-'files' => 'Failai',
+'prefs-files' => 'Failai',
# User rights
'userrights' => 'Naudotojų teisių valdymas',
'prefsreset' => 'Sākotnējās izvēles ir atjaunotas.',
'qbsettings' => 'Rīku joslas stāvoklis',
'changepassword' => 'Mainīt paroli',
-'skin' => 'Apdare',
+'prefs-skin' => 'Apdare',
'skin-preview' => 'Priekšskats',
'math' => 'Formulas',
'dateformat' => 'Datuma formāts',
'datedefault' => 'Vienalga',
-'datetime' => 'Datums un laiks',
+'prefs-datetime' => 'Datums un laiks',
'math_unknown_error' => 'nezināma kļūda',
'math_unknown_function' => 'nezināma funkcija',
'math_syntax_error' => 'sintakses kļūda',
'prefs-misc' => 'Dažādi',
'saveprefs' => 'Saglabāt izvēles',
'resetprefs' => 'Atcelt nesaglabātās izmaiņas',
-'textboxsize' => 'Rediģēšana',
+'prefs-editing' => 'Rediģēšana',
'rows' => 'Rindiņas',
'columns' => 'Simbolu skaits rindiņā',
'searchresultshead' => 'Meklēšana',
'prefs-searchoptions' => 'Meklēšanas opcijas',
'defaultns' => 'Meklēt šajās palīglapās pēc noklusējuma:',
'default' => 'pēc noklusējuma',
-'files' => 'Attēli',
+'prefs-files' => 'Attēli',
# User rights
'userrights' => 'Lietotāju tiesību pārvaldība',
'prefsreset' => '簿註歸白',
'qbsettings-none' => '無',
'changepassword' => '易符節',
-'skin' => '面版',
+'prefs-skin' => '面版',
'skin-preview' => '草覽',
'math' => '數學',
'dateformat' => '日期格式',
'datedefault' => '原註',
-'datetime' => '日時',
+'prefs-datetime' => '日時',
'math_failure' => '譯不成',
'math_unknown_error' => '未知之誤',
'math_unknown_function' => '未知函式',
'saveprefs' => '儲',
'resetprefs' => '棄',
'restoreprefs' => '重修',
-'textboxsize' => '在修',
+'prefs-editing' => '在修',
'prefs-edit-boxsize' => '修框尺',
'rows' => '行:',
'columns' => '列:',
'prefs-namespaces' => '名集',
'defaultns' => '定尋之名集:',
'default' => '予定',
-'files' => '檔',
+'prefs-files' => '檔',
'prefs-custom-css' => '定之CSS',
'prefs-custom-js' => '定之JS',
'qbsettings-floatingleft' => 'Кержи ширеса уенди',
'qbsettings-floatingright' => 'Виде ширеса уенди',
'changepassword' => 'Сувама валть полафтомс',
-'skin' => 'Ванфонь латцема',
+'prefs-skin' => 'Ванфонь латцема',
'skin-preview' => 'Васень няфтема',
'math' => 'Няфтемс формулат',
'dateformat' => 'Шинь форматоц',
'datedefault' => 'Апак полафтт',
-'datetime' => 'Ши ди пинге',
+'prefs-datetime' => 'Ши ди пинге',
'math_failure' => 'Аф морафтови',
'math_unknown_error' => 'аф содаф эльбятькс',
'math_unknown_function' => 'аф содаф функцие',
'saveprefs' => 'Ванфтомс',
'resetprefs' => 'Валхтомс апак ванфтт полафнематнень',
'restoreprefs' => 'Мърдафтомс васень латцематне',
-'textboxsize' => 'Петнема',
+'prefs-editing' => 'Петнема',
'prefs-edit-boxsize' => 'Петнема вальмоть келец.',
'rows' => 'Луфт (строкат):',
'columns' => 'Орват (столбанят):',
'prefs-namespaces' => 'Лемботмот',
'defaultns' => 'Вешендемс ня лепнень потмова мъзярс илякс изь мярьгов:',
'default' => 'апак полафтт',
-'files' => 'Файлхт',
+'prefs-files' => 'Файлхт',
# User rights
'userrights' => 'Тиинь видекснень вятема',
'prefsnologin' => 'Tsy tafiditra',
'prefsnologintext' => '[[Special:UserLogin|Midira]] aloha izay vao manova ny mombamomba anao.',
'changepassword' => 'Hanova tenimiafina',
-'skin' => 'Endrika',
+'prefs-skin' => 'Endrika',
'skin-preview' => 'Tsipalotra',
'dateformat' => 'endriky ny daty',
-'datetime' => 'Daty sy ora',
+'prefs-datetime' => 'Daty sy ora',
'math_failure' => 'Tsy nety ny fanodinana ny raikipohy',
'math_unknown_error' => 'tsy fahatomombanana tsy hay antony',
'math_unknown_function' => 'fonction tsy fantatra',
'prefs-misc' => 'Hafa',
'saveprefs' => 'Tehirizo',
'resetprefs' => 'Avereno',
-'textboxsize' => 'Fanovana',
+'prefs-editing' => 'Fanovana',
'searchresultshead' => 'Fikarohana',
'recentchangescount' => "Lohateny amin'ny vao niova:",
'savedprefs' => 'Voatahiry ny mombamomba anao.',
'guesstimezone' => "
Fenoy araka ny datin'ny solosainan'ny mpitsidika",
'allowemail' => "Ekeo ny handraisana imailaka avy amin'ny mpikambana hafa",
-'files' => 'Rakitra',
+'prefs-files' => 'Rakitra',
# User rights
'userrights' => 'Fandrindràna ny fahazoan-dàlana',
'mypreferences' => 'Настройке-влак',
'prefs-edits' => 'Мыняр тӧрлатымашым ыштен?:',
'changepassword' => 'Шолыпмутым вашталташ',
-'skin' => 'Сӧрастарыме йӧн',
+'prefs-skin' => 'Сӧрастарыме йӧн',
'skin-preview' => 'Ончылгоч ончымаш',
'math' => 'Формуло-влак',
'prefs-personal' => 'Пайдаланышын профильже',
'qbsettings-floatingleft' => 'Пловечко лево',
'qbsettings-floatingright' => 'Пловечки десно',
'changepassword' => 'Промени лозинка',
-'skin' => 'Маска',
+'prefs-skin' => 'Маска',
'skin-preview' => 'Прегледај',
'math' => 'Математика',
'dateformat' => 'Формат на датум',
'datedefault' => 'Небитно',
-'datetime' => 'Датум и време',
+'prefs-datetime' => 'Датум и време',
'math_failure' => 'Неможам да парсирам',
'math_unknown_error' => 'непозната грешка',
'math_unknown_function' => 'непозната функција',
'saveprefs' => 'Зачувај нагодувања',
'resetprefs' => 'Избриши незачувани измени',
'restoreprefs' => 'Врати секаде основни нагодувања',
-'textboxsize' => 'Уредување',
+'prefs-editing' => 'Уредување',
'prefs-edit-boxsize' => 'Големина на прозорецот за уредување.',
'rows' => 'Редови:',
'columns' => 'Колони:',
'prefs-namespaces' => 'Именски простори',
'defaultns' => 'Пребарувај во овие именски простори по основно:',
'default' => 'по основно',
-'files' => 'Податотеки',
+'prefs-files' => 'Податотеки',
'prefs-custom-css' => 'Посебно CSS',
'prefs-custom-js' => 'Посебно JS',
'qbsettings-fixedleft' => 'സ്ഥിരമായ ഇടത്',
'qbsettings-fixedright' => 'സ്ഥിരമായ വലത്',
'changepassword' => 'രഹസ്യവാക്ക് മാറ്റുക',
-'skin' => 'രൂപം',
+'prefs-skin' => 'രൂപം',
'skin-preview' => 'പ്രിവ്യൂ',
'math' => 'സമവാക്യം',
'dateformat' => 'തീയതി പ്രദര്ശിപ്പിക്കുന്ന രീതി',
'datedefault' => 'ക്രമീകരണങ്ങള് വേണ്ട',
-'datetime' => 'ദിവസവും സമയവും',
+'prefs-datetime' => 'ദിവസവും സമയവും',
'math_failure' => 'parse ചെയ്യുവാന് പരാജയപ്പെട്ടു',
'math_unknown_error' => 'കാരണമറിയാത്ത പിഴവ്',
'math_unknown_function' => 'അജ്ഞാതമായ ഫങ്ങ്ഷന്',
'prefs-resetpass' => 'രഹസ്യവാക്ക് മാറ്റുക',
'saveprefs' => 'സേവ് ചെയ്യുക',
'resetprefs' => 'സേവ് ചെയ്തിട്ടില്ലാത്ത മാറ്റങ്ങള് പുനഃക്രമീകരിക്കുക',
-'textboxsize' => 'തിരുത്തല്',
+'prefs-editing' => 'തിരുത്തല്',
'rows' => 'വരി:',
'columns' => 'നിര:',
'searchresultshead' => 'തിരയൂ',
'prefs-namespaces' => 'നാമമേഖലകള്',
'defaultns' => 'സ്വതവേ ഈ നാമമേഖലകളില് തിരയുക:',
'default' => 'സ്വതവെ',
-'files' => 'ഫയലുകള്',
+'prefs-files' => 'ഫയലുകള്',
# User rights
'userrights' => 'ഉപയോക്തൃഅവകാശ പരിപാലനം',
'qbsettings-floatingleft' => 'Зүүн талд хөвсөн',
'qbsettings-floatingright' => 'Баруун талд хөвсөн',
'changepassword' => 'Нууц үгээ өөрчлөх',
-'skin' => 'Арьс',
+'prefs-skin' => 'Арьс',
'skin-preview' => 'Урьдчилж харах',
'math' => 'Томъёонууд',
'dateformat' => 'Огнооний хэлбэр',
'datedefault' => 'Анхны байдал',
-'datetime' => 'Огноо ба цаг',
+'prefs-datetime' => 'Огноо ба цаг',
'math_failure' => 'Задлан ялгал хийж чадсангүй',
'math_unknown_error' => 'үл мэдэгдэх алдаа',
'math_unknown_function' => 'үл мэдэгдэх функц',
'prefs-misc' => 'Бусад',
'saveprefs' => 'Хадгалах',
'resetprefs' => 'Хадгалаагүй өөрчлөлтүүдийг арилгах',
-'textboxsize' => 'Засварлаж байна',
+'prefs-editing' => 'Засварлаж байна',
'rows' => 'Мөр:',
'columns' => 'Багана:',
'searchresultshead' => 'Хайлт',
'allowemail' => 'Бусад хэрэглэгчдээс ирэх мэйлийг зөвшөөрөх',
'defaultns' => 'Байнга эдгээр нэрний зайнуудад хайх:',
'default' => 'анхны байдал',
-'files' => 'Файлууд',
+'prefs-files' => 'Файлууд',
# User rights
'userrights' => 'Хэрэглэгчдийн эрхийн удирдлага',
'qbsettings-floatingleft' => 'तरंगते डावे',
'qbsettings-floatingright' => 'तरंगते ऊजवे',
'changepassword' => 'परवलीचा शब्द बदला',
-'skin' => 'त्वचा',
+'prefs-skin' => 'त्वचा',
'skin-preview' => 'झलक',
'math' => 'गणित',
'dateformat' => 'दिनांक लेखनशैली',
'datedefault' => 'प्राथमिकता नाही',
-'datetime' => 'दिनांक आणि वेळ',
+'prefs-datetime' => 'दिनांक आणि वेळ',
'math_failure' => 'पृथक्करणात अयशस्वी',
'math_unknown_error' => 'अपरिचित त्रूटी',
'math_unknown_function' => 'अज्ञात कार्य',
'prefs-misc' => 'इतर',
'saveprefs' => 'जतन करा',
'resetprefs' => 'न जतन केलेले बदल रद्द करा',
-'textboxsize' => 'संपादन',
+'prefs-editing' => 'संपादन',
'rows' => 'ओळी:',
'columns' => 'स्तंभ:',
'searchresultshead' => 'शोध',
'prefs-namespaces' => 'नामविश्वे',
'defaultns' => 'या नामविश्वातील अविचल शोध :',
'default' => 'अविचल',
-'files' => 'संचिका',
+'prefs-files' => 'संचिका',
# User rights
'userrights' => 'सदस्य अधिकार व्यवस्थापन',
'qbsettings-floatingleft' => 'Berubah-ubah sebelah kiri',
'qbsettings-floatingright' => 'Berubah-ubah sebelah kanan',
'changepassword' => 'Tukar kata laluan',
-'skin' => 'Rupa',
+'prefs-skin' => 'Rupa',
'skin-preview' => 'Pratonton',
'math' => 'Matematik',
'dateformat' => 'Format tarikh',
'datedefault' => 'Tiada keutamaan',
-'datetime' => 'Tarikh dan waktu',
+'prefs-datetime' => 'Tarikh dan waktu',
'math_failure' => 'Gagal menghurai',
'math_unknown_error' => 'ralat yang tidak dikenali',
'math_unknown_function' => 'fungsi yang tidak dikenali',
'saveprefs' => 'Simpan',
'resetprefs' => 'Set semula',
'restoreprefs' => 'Pulihkan semua tetapan lalai',
-'textboxsize' => 'Menyunting',
+'prefs-editing' => 'Menyunting',
'prefs-edit-boxsize' => 'Saiz kotak sunting.',
'rows' => 'Baris:',
'columns' => 'Lajur:',
'prefs-namespaces' => 'Ruang nama',
'defaultns' => 'Cari dalam ruang nama ini secara lalai:',
'default' => 'lalai',
-'files' => 'Fail',
+'prefs-files' => 'Fail',
'prefs-custom-css' => 'CSS tempahan',
'prefs-custom-js' => 'JS tempahan',
'qbsettings-floatingleft' => "''Floating'' lejn ix-xellug",
'qbsettings-floatingright' => "''Floating'' lejn il-lemin",
'changepassword' => 'Ibdel il-password',
-'skin' => 'Aspett grafiku (skin)',
+'prefs-skin' => 'Aspett grafiku (skin)',
'skin-preview' => 'Previżjoni',
'math' => 'Formuli matematiċi',
'dateformat' => 'Format tad-data',
'datedefault' => 'L-ebda preferenza',
-'datetime' => 'Data u ħin',
+'prefs-datetime' => 'Data u ħin',
'math_failure' => "Problema fil-''parser''",
'math_unknown_error' => 'Problema mhux magħrufa',
'math_unknown_function' => 'funżjoni mhux magħrufa',
'prefs-resetpass' => 'Biddel il-password',
'saveprefs' => 'Żomm il-preferenzi',
'resetprefs' => 'Neħħi modifiki mhux salvati',
-'textboxsize' => 'Modifika',
+'prefs-editing' => 'Modifika',
'prefs-edit-boxsize' => 'Daqs tat-tieqa tal-immodifikar.',
'rows' => 'Filieri:',
'columns' => 'Kolonni:',
'prefs-namespaces' => 'Namespace',
'defaultns' => 'Namespace predefinit għat-tfittxija:',
'default' => 'predefinit',
-'files' => 'Fajls',
+'prefs-files' => 'Fajls',
# User rights
'userrights' => "Treġija tal-permessi relativi 'l utenti",
# Preferences page
'preferences' => 'Perfréncias',
'mypreferences' => 'Las mies perfréncias',
-'skin' => 'Maçcarilha',
+'prefs-skin' => 'Maçcarilha',
'skin-preview' => 'Amostrar',
'math' => 'Matemática',
'dateformat' => 'Formato de la data',
-'datetime' => 'Data i hora',
+'prefs-datetime' => 'Data i hora',
'prefs-personal' => 'Calantriç',
'prefs-rc' => 'Redadeiras alteraçones',
'saveprefs' => 'Grabar',
-'textboxsize' => 'Oupçones de eidiçon',
+'prefs-editing' => 'Oupçones de eidiçon',
'rows' => 'Lhinhas:',
'timezoneregion-africa' => 'África',
'timezoneregion-america' => 'América',
'timezoneregion-europe' => 'Ouropa',
'timezoneregion-indian' => 'Ouceano Índico',
'timezoneregion-pacific' => 'Ouceano Pacífico',
-'files' => 'Fexeiros',
+'prefs-files' => 'Fexeiros',
# User rights
'userrights-groupsmember' => 'Nembro de:',
'changepassword' => 'ဝှက်စကားလုံးကိုပြောင်းပါ',
'skin-preview' => 'နမူနာ',
'math' => 'သင်္ချာ',
-'datetime' => 'နေ့စွဲနှင့် အချိန်',
+'prefs-datetime' => 'နေ့စွဲနှင့် အချိန်',
'searchresultshead' => 'ရှာဖွေရန်',
# Groups
'qbsettings-floatingleft' => 'Керш ёнга уи',
'qbsettings-floatingright' => 'Вить ёнга уи',
'changepassword' => 'Салавань валонь полавтома',
-'skin' => 'Неемань ладсема',
+'prefs-skin' => 'Неемань ладсема',
'skin-preview' => 'Васнянь неевтезэ',
'math' => 'Математика',
'dateformat' => 'Чынь хвормат',
'datedefault' => 'Икелькс вешема арась',
-'datetime' => 'Чи ды шка',
+'prefs-datetime' => 'Чи ды шка',
'math_failure' => 'А ловнови',
'math_unknown_error' => 'апак содань ильведькс',
'math_unknown_function' => 'апак содань функция',
'prefs-resetpass' => 'Совамо валонь полавтомо',
'saveprefs' => 'Ванстомс',
'resetprefs' => 'Нардамс апак вансто полавтнемат',
-'textboxsize' => 'Витнема-петнема',
+'prefs-editing' => 'Витнема-петнема',
'prefs-edit-boxsize' => 'Витнема-петнема вальманть сэрензэ-келензэ.',
'rows' => 'Вал чилькстнэ (строкатне):',
'columns' => 'Палманть:',
'timezoneregion-pacific' => 'Сэтьме иневедь',
'prefs-namespaces' => 'Лем потмот',
'default' => 'зярдо лиякс апак йовта',
-'files' => 'Файлат',
+'prefs-files' => 'Файлат',
# User rights
'userrights-lookup-user' => 'Сови куротнень ветямось',
'powersearch' => 'Anani ko',
# Preferences page
-'skin' => 'Witsin',
+'prefs-skin' => 'Witsin',
'searchresultshead' => 'Anani ko',
# Recent changes
'math' => 'Tlapōhualmatiliztli',
'dateformat' => 'Cāuhtiliztli iuhcāyōtl',
'datedefault' => 'Ayāc tlanequiliztli',
-'datetime' => 'Cāuhtiliztli īhuān cāhuitl',
+'prefs-datetime' => 'Cāuhtiliztli īhuān cāhuitl',
'prefs-personal' => 'Motlācatlanōnōtzaliz',
'prefs-rc' => 'Yancuīc tlapatlaliztli',
'prefs-watchlist' => 'Tlachiyaliztli',
'prefs-misc' => 'Zāzo',
'prefs-resetpass' => 'Ticpatlāz motlahtōlichtacāyo',
'saveprefs' => 'Ticpiyāz',
-'textboxsize' => 'Tlapatlaliztli',
+'prefs-editing' => 'Tlapatlaliztli',
'rows' => 'Pāntli:',
'searchresultshead' => 'Tlatēmoliztli',
'contextlines' => 'Pāntli tlahtōltechcopa:',
'prefs-namespaces' => 'Tōcātzin',
'defaultns' => 'Tlatēmōz inīn tōcātzimpan ic default:',
'default' => 'ic default',
-'files' => 'Tlahcuilōlli',
+'prefs-files' => 'Tlahcuilōlli',
# User rights
'userrights-user-editname' => 'Xihcuiloa cē tlatequitiltilīltōcāitl:',
'prefsreset' => 'Iōng-chiá siat-tēng í-keng chiàu goân siat-tēng têng-siat.',
'qbsettings' => 'Quickbar ê siat-tēng',
'changepassword' => 'Oāⁿ bi̍t-bé',
-'skin' => 'Phôe',
+'prefs-skin' => 'Phôe',
'skin-preview' => 'Chhì khoàⁿ',
'math' => 'Sò·-ha̍k ê rendering',
'dateformat' => 'Ji̍t-kî keh-sek',
'datedefault' => 'Chhìn-chhái',
-'datetime' => 'Ji̍t-kî kap sî-kan',
+'prefs-datetime' => 'Ji̍t-kî kap sî-kan',
'prefs-personal' => 'Iōng-chiá chu-liāu',
'prefs-rc' => 'Chòe-kīn ê kái-piàn & stub ê hián-sī',
'prefs-watchlist' => 'Kàm-sī-toaⁿ',
'prefs-misc' => 'Kî-thaⁿ ê siat-tēng',
'saveprefs' => 'Pó-chûn siat-tēng',
'resetprefs' => 'Têng siat-tēng',
-'textboxsize' => 'Pian-chi̍p',
+'prefs-editing' => 'Pian-chi̍p',
'rows' => 'Chōa:',
'columns' => 'Nôa',
'searchresultshead' => 'Chhiau-chhōe kiat-kó ê siat-tēng',
'guesstimezone' => 'Tùi liû-lám-khì chhau--lâi',
'allowemail' => 'Ún-chún pa̍t-ê iōng-chiá kià email kòe-lâi',
'defaultns' => 'Tī chiah ê miâ-khong-kan chhiau-chhōe:',
-'files' => 'Tóng-àn',
+'prefs-files' => 'Tóng-àn',
'grouppage-sysop' => '{{ns:project}}:Hêng-chèng jîn-oân',
'qbsettings-floatingleft' => 'Links, sweven',
'qbsettings-floatingright' => 'Rechts, sweven',
'changepassword' => 'Passwoort ännern',
-'skin' => 'Utsehn vun de Steed',
+'prefs-skin' => 'Utsehn vun de Steed',
'skin-preview' => 'Vörschau',
'math' => 'TeX',
'dateformat' => 'Datumsformat',
'datedefault' => 'Standard',
-'datetime' => 'Datum un Tiet',
+'prefs-datetime' => 'Datum un Tiet',
'math_failure' => 'Parser-Fehler',
'math_unknown_error' => 'Unbekannten Fehler',
'math_unknown_function' => 'Unbekannte Funktschoon',
'saveprefs' => 'Spiekern',
'resetprefs' => 'Trüchsetten',
'restoreprefs' => 'All Standardinstellungen wedderhalen',
-'textboxsize' => 'Grött vun’t Textfeld',
+'prefs-editing' => 'Grött vun’t Textfeld',
'prefs-edit-boxsize' => 'Grött vun dat Finster för Ännern.',
'rows' => 'Regen',
'columns' => 'Spalten',
'prefs-namespaces' => 'Naamrüüm',
'defaultns' => 'In disse Naamrüüm schall standardmatig söökt warrn:',
'default' => 'Standard',
-'files' => 'Datein',
+'prefs-files' => 'Datein',
'prefs-custom-css' => 'Anpasst CSS',
'prefs-custom-js' => 'Anpasst JS',
'qbsettings-floatingleft' => 'Links, zweven',
'qbsettings-floatingright' => 'Rechs, zweven',
'changepassword' => 'Wachwoord wiezigen',
-'skin' => '{{SITENAME}}-uterlijk',
+'prefs-skin' => '{{SITENAME}}-uterlijk',
'skin-preview' => 'bekieken',
'math' => 'Wiskundige formules',
'dateformat' => 'Daotumweergave',
'datedefault' => 'Gien veurkeur',
-'datetime' => 'Daotum en tied',
+'prefs-datetime' => 'Daotum en tied',
'math_failure' => 'Wiskundige formule neet begriepelijk',
'math_unknown_error' => 'Onbekende fout in formule',
'math_unknown_function' => 'Onbekende functie in formule',
'saveprefs' => 'Veurkeuren opslaon',
'resetprefs' => 'Standardveurkeuren herstellen',
'restoreprefs' => 'Alle standardinstellingen weerummezetten',
-'textboxsize' => 'Bewarkingsveld',
+'prefs-editing' => 'Bewarkingsveld',
'prefs-edit-boxsize' => "Ofmetingen van 't bewarkingsvienster.",
'rows' => 'Regels',
'columns' => 'Kolommen',
'prefs-namespaces' => 'Naamruumtes',
'defaultns' => 'Naamruumtes um in te zeuken:',
'default' => 'standard',
-'files' => 'Bestanden',
+'prefs-files' => 'Bestanden',
'prefs-custom-css' => 'Persoonlijke CSS',
'prefs-custom-js' => 'Persoonlijke JS',
'changepassword' => 'पासवर्ड परिवर्तन गर्नुहोस्',
'skin-preview' => 'पूर्वालोकन',
'math' => 'गणित',
-'datetime' => 'मिति र समय',
+'prefs-datetime' => 'मिति र समय',
'math_unknown_error' => 'अज्ञात समस्या',
'math_unknown_function' => 'अज्ञात निर्देशन',
'prefs-personal' => 'प्रयोगकर्ताको विवरण',
'mypreferences' => 'जिगु प्राथमिकता',
'changepassword' => 'पासवर्द हिलादिसँ',
'math' => 'गणित',
-'datetime' => 'दिं व ई',
+'prefs-datetime' => 'दिं व ई',
'prefs-personal' => 'छ्य्लामि प्रोफाइल',
'prefs-rc' => 'न्हुगु हिलेज्या',
'saveprefs' => 'स्वथनादिसँ',
'qbsettings-floatingleft' => 'Links zwevend',
'qbsettings-floatingright' => 'Rechts zwevend',
'changepassword' => 'Wachtwoord wijzigen',
-'skin' => 'Vormgeving',
+'prefs-skin' => 'Vormgeving',
'skin-preview' => 'Voorbeeld',
'math' => 'Formules',
'dateformat' => 'Datumopmaak',
'datedefault' => 'Geen voorkeur',
-'datetime' => 'Datum en tijd',
+'prefs-datetime' => 'Datum en tijd',
'math_failure' => 'Parsen mislukt',
'math_unknown_error' => 'onbekende fout',
'math_unknown_function' => 'onbekende functie',
'saveprefs' => 'Opslaan',
'resetprefs' => 'Niet opgeslagen wijzigingen herstellen',
'restoreprefs' => 'Terug naar standaardinstellingen',
-'textboxsize' => 'Bewerken',
+'prefs-editing' => 'Bewerken',
'prefs-edit-boxsize' => 'Afmetingen van het bewerkingsvenster.',
'rows' => 'Regels:',
'columns' => 'Kolommen:',
'prefs-namespaces' => 'Naamruimten',
'defaultns' => 'Standaard in deze naamruimten zoeken:',
'default' => 'standaard',
-'files' => 'Bestanden',
+'prefs-files' => 'Bestanden',
'prefs-custom-css' => 'Persoonlijke CSS',
'prefs-custom-js' => 'Persoonlijke JS',
'qbsettings-floatingleft' => 'Flytande venstre',
'qbsettings-floatingright' => 'Flytande høgre',
'changepassword' => 'Skift passord',
-'skin' => 'Drakt',
+'prefs-skin' => 'Drakt',
'skin-preview' => 'førehandsvis',
'math' => 'Matematiske formlar',
'dateformat' => 'Datoformat',
'datedefault' => 'Standard',
-'datetime' => 'Dato og klokkeslett',
+'prefs-datetime' => 'Dato og klokkeslett',
'math_failure' => 'Klarte ikkje å tolke formelen',
'math_unknown_error' => 'ukjend feil',
'math_unknown_function' => 'ukjend funksjon',
'saveprefs' => 'Lagre',
'resetprefs' => 'Rull attende',
'restoreprefs' => 'Hent attende alle standardinnstillingane',
-'textboxsize' => 'Endring',
+'prefs-editing' => 'Endring',
'prefs-edit-boxsize' => 'Storleiken på redigeringsvindauget.',
'rows' => 'Rekkjer',
'columns' => 'Kolonnar',
'prefs-namespaces' => 'Namnerom',
'defaultns' => 'Søk som standard i desse namneromma:',
'default' => 'standard',
-'files' => 'Filer',
+'prefs-files' => 'Filer',
'prefs-custom-css' => 'Eigendefinert CSS',
'prefs-custom-js' => 'Eigendefinert JavaScript',
'qbsettings-floatingleft' => 'Flytende venstre',
'qbsettings-floatingright' => 'Flytende til høyre',
'changepassword' => 'Endre passord',
-'skin' => 'Utseende',
+'prefs-skin' => 'Utseende',
'skin-preview' => 'forhåndsvisning',
'math' => 'Matteformler',
'dateformat' => 'Datoformat',
'datedefault' => 'Ingen foretrukket',
-'datetime' => 'Dato og tid',
+'prefs-datetime' => 'Dato og tid',
'math_failure' => 'Feil i matematikken',
'math_unknown_error' => 'ukjent feil',
'math_unknown_function' => 'ukjent funksjon',
'saveprefs' => 'Lagre',
'resetprefs' => 'Tilbakestill ulagrede endringer',
'restoreprefs' => 'Tilbakestill til standardinnstillinger overalt',
-'textboxsize' => 'Redigering',
+'prefs-editing' => 'Redigering',
'prefs-edit-boxsize' => 'Størrelse på redigeringsvinduet.',
'rows' => 'Rader:',
'columns' => 'Kolonner',
'prefs-namespaces' => 'Navnerom',
'defaultns' => 'Søk i disse navnerommene som standard:',
'default' => 'standard',
-'files' => 'Filer',
+'prefs-files' => 'Filer',
'prefs-custom-css' => 'Personlig CSS',
'prefs-custom-js' => 'Personlig Javascript',
'prefsnologin' => 'Ga wa tsena',
'changepassword' => 'Fetola ditlhaka-tša-siphiri',
'skin-preview' => 'Ponopele',
-'datetime' => 'Tšatšikgwedi le nako',
+'prefs-datetime' => 'Tšatšikgwedi le nako',
'math_unknown_error' => 'Phošo ya gose tsebege',
'math_syntax_error' => 'phošo ya popafoko',
'prefs-rc' => 'Diphetogo tša bjale',
'prefs-watchlist' => 'Lenano la tlhapetšo',
'saveprefs' => 'Boloka',
-'textboxsize' => 'Fetola',
+'prefs-editing' => 'Fetola',
'searchresultshead' => 'Fetleka',
'savedprefs' => 'Dikgatlhegelo tša gago di bolokilwe.',
'allowemail' => 'Dumella melaetša ya e-mail go tšwa go bašomiši ba bangwe',
-'files' => 'Difaele',
+'prefs-files' => 'Difaele',
# User rights
'editusergroup' => 'Fetola sehlopha sa bašomiši',
'qbsettings-floatingleft' => 'Flotanta a esquèrra',
'qbsettings-floatingright' => 'Flotanta a drecha',
'changepassword' => 'Modificacion del senhal',
-'skin' => 'Aparéncia',
+'prefs-skin' => 'Aparéncia',
'skin-preview' => 'Previsualizar',
'math' => 'Rendut de las matas',
'dateformat' => 'Format de data',
'datedefault' => 'Cap de preferéncia',
-'datetime' => 'Data e ora',
+'prefs-datetime' => 'Data e ora',
'math_failure' => 'Error matas',
'math_unknown_error' => 'error indeterminada',
'math_unknown_function' => 'foncion desconeguda',
'saveprefs' => 'Enregistrar las preferéncias',
'resetprefs' => 'Restablir las preferéncias',
'restoreprefs' => 'Restablir totas las valors per defaut',
-'textboxsize' => 'Fenèstra de modificacion',
+'prefs-editing' => 'Fenèstra de modificacion',
'prefs-edit-boxsize' => 'Talha de la fenèstra de modificacion.',
'rows' => 'Rengadas :',
'columns' => 'Colomnas :',
'prefs-namespaces' => 'Noms d’espacis',
'defaultns' => 'Per defaut, recercar dins aquestes espacis :',
'default' => 'defaut',
-'files' => 'Fichièrs',
+'prefs-files' => 'Fichièrs',
'prefs-custom-css' => 'CSS personalizat',
'prefs-custom-js' => 'JS personalizat',
'qbsettings-floatingleft' => 'Рахизырдыгæй ленккæнгæ',
'changepassword' => 'Пароль баив',
'skin-preview' => 'Разæркаст',
-'datetime' => 'Датæ æмæ рæстæг',
+'prefs-datetime' => 'Датæ æмæ рæстæг',
'prefs-watchlist' => 'Дæ цæст кæмæ дарыс, уыцы фæрсты номхыгъд',
'prefs-watchlist-days' => 'Цал боны ивддзинæдтæ æвдисын:',
'saveprefs' => 'Афтæ уæд',
'qbsettings' => 'ਤੁਰੰਤ ਬਾਰ',
'qbsettings-none' => 'ਕੋਈ ਨਹੀਂ',
'changepassword' => 'ਪਾਸਵਰਡ ਬਦਲੋ',
-'skin' => 'ਸਕਿਨ',
+'prefs-skin' => 'ਸਕਿਨ',
'skin-preview' => 'ਝਲਕ',
'math' => 'ਗਣਿਤ',
'dateformat' => 'ਮਿਤੀ ਫਾਰਮੈਟ',
'datedefault' => 'ਕੋਈ ਪਸੰਦ ਨਹੀਂ',
-'datetime' => 'ਮਿਤੀ ਅਤੇ ਸਮਾਂ',
+'prefs-datetime' => 'ਮਿਤੀ ਅਤੇ ਸਮਾਂ',
'math_failure' => 'ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ',
'math_unknown_error' => 'ਅਣਜਾਣ ਗਲਤੀ',
'math_unknown_function' => 'ਅਣਜਾਣ ਫੰਕਸ਼ਨ',
'prefs-misc' => 'ਫੁਟਕਲ',
'saveprefs' => 'ਸੰਭਾਲੋ',
'resetprefs' => 'ਰੀ-ਸੈੱਟ',
-'textboxsize' => 'ਸੰਪਾਦਨ',
+'prefs-editing' => 'ਸੰਪਾਦਨ',
'rows' => 'ਕਤਾਰਾਂ:',
'columns' => 'ਕਾਲਮ:',
'searchresultshead' => 'ਖੋਜ',
'guesstimezone' => 'ਬਰਾਊਜ਼ਰ ਤੋਂ ਭਰੋ',
'allowemail' => 'ਹੋਰ ਯੂਜ਼ਰਾਂ ਤੋਂ ਈਮੇਲ ਯੋਗ ਕਰੋ',
'default' => 'ਡਿਫਾਲਟ',
-'files' => 'ਫਾਇਲਾਂ',
+'prefs-files' => 'ਫਾਇਲਾਂ',
# User rights
'userrights-lookup-user' => 'ਯੂਜ਼ਰ ਗਰੁੱਪ ਦੇਖਭਾਲ',
'qbsettings-none' => 'Anggapo',
'changepassword' => 'Salatan so password',
'datedefault' => 'Anggapoy preference',
-'datetime' => 'Bilang na agew san oras',
+'prefs-datetime' => 'Bilang na agew san oras',
'math_unknown_error' => 'aga-antan error',
'prefs-rc' => 'Sampot ran binalo',
'prefs-watchlist' => 'Listaan na babantayan',
-'textboxsize' => 'Babaloen',
+'prefs-editing' => 'Babaloen',
'searchresultshead' => 'Anapen',
# User rights
'qbsettings-floatingleft' => 'Kikimut ya ing kaili',
'qbsettings-floatingright' => 'Kikimut ya ing wanan',
'changepassword' => 'Alilan ya ing password',
-'skin' => 'Balat',
+'prefs-skin' => 'Balat',
'skin-preview' => 'I-preview',
'dateformat' => 'Ayus ning petsa',
'datedefault' => 'Alang mepili',
-'datetime' => 'Petsa ampong oras',
+'prefs-datetime' => 'Petsa ampong oras',
'math_failure' => 'E melaus ing pamag-parse',
'math_unknown_error' => 'e makikilalang pamagkamali',
'math_unknown_function' => 'e makikilalang gamit (unknown function)',
'prefs-misc' => 'Alwp',
'saveprefs' => 'I-save',
'resetprefs' => 'Buran la retang miyalilan a e me-save',
-'textboxsize' => 'Mag-edit',
+'prefs-editing' => 'Mag-edit',
'rows' => 'Dane (rows):',
'columns' => 'Ding asias:',
'searchresultshead' => 'Maintun',
'allowemail' => 'Pabustan ya ing e-mail ibat karing aliwang talagamit',
'defaultns' => 'Paintunan ya karening pirinan lagyu (namespaces) nung alang mepili:',
'default' => 'alang mepili',
-'files' => 'Simpan (files)',
+'prefs-files' => 'Simpan (files)',
# User rights
'userrights' => 'Pamanibala king katuliran da reng talagamit (user rights management)',
'qbsettings-floatingleft' => 'Unoszący się, z lewej',
'qbsettings-floatingright' => 'Unoszący się, z prawej',
'changepassword' => 'Zmiana hasła',
-'skin' => 'Skórka',
+'prefs-skin' => 'Skórka',
'skin-preview' => 'podgląd',
'math' => 'Wzory',
'dateformat' => 'Format daty',
'datedefault' => 'Domyślny',
-'datetime' => 'Data i czas',
+'prefs-datetime' => 'Data i czas',
'math_failure' => 'Parser nie mógł rozpoznać',
'math_unknown_error' => 'nieznany błąd',
'math_unknown_function' => 'nieznana funkcja',
'saveprefs' => 'Zapisz',
'resetprefs' => 'Cofnij niezapisane zmiany',
'restoreprefs' => 'Przywróć wszystkie domyślne preferencje',
-'textboxsize' => 'Edytowanie',
+'prefs-editing' => 'Edytowanie',
'prefs-edit-boxsize' => 'Rozmiar okna edycji.',
'rows' => 'Wiersze',
'columns' => 'Kolumny',
'prefs-namespaces' => 'Przestrzenie nazw',
'defaultns' => 'Domyślnie przeszukuj przestrzenie nazw',
'default' => 'domyślnie',
-'files' => 'Pliki',
+'prefs-files' => 'Pliki',
'prefs-custom-css' => 'własny CSS',
'prefs-custom-js' => 'własny JavaScript',
'qbsettings-floatingleft' => 'Flotant a la man ësnista',
'qbsettings-floatingright' => 'Flotant a la man drita',
'changepassword' => 'Cambia ciav',
-'skin' => 'Facia',
+'prefs-skin' => 'Facia',
'skin-preview' => 'Preuva',
'math' => 'Fòrmule ëd matemàtica',
'dateformat' => 'Forma dla data',
'datedefault' => "franch l'istess",
-'datetime' => 'Data e ora',
+'prefs-datetime' => 'Data e ora',
'math_failure' => 'Parsificassion falà',
'math_unknown_error' => 'Eror nen conossù',
'math_unknown_function' => 'funsion che as sa pa lòn che a la sia',
'prefs-misc' => 'Sòn e lòn',
'saveprefs' => 'Salvé ij sò gust',
'resetprefs' => 'Buta torna ij "mè gust" coma a-i ero al prinsipi',
-'textboxsize' => 'Amzure dël quàder ëd modìfica dël test',
+'prefs-editing' => 'Amzure dël quàder ëd modìfica dël test',
'rows' => 'Righe',
'columns' => 'Colòne',
'searchresultshead' => "Specifiché soe preferense d'arserca",
'allowemail' => "Lassa che j'àutri Utent am mando ëd pòsta eletrònica",
'defaultns' => 'Se as dis nen divers, as sërca ant costi spassi nominaj-sì:',
'default' => 'stàndard',
-'files' => 'Archivi',
+'prefs-files' => 'Archivi',
# User rights
'userrights' => "Gestion dij drit dj'utent",
'prefsnologin' => 'لاگ ان نئیں او',
'qbsettings-none' => 'کوئی نئیں',
'changepassword' => 'کنجی بدلو',
-'skin' => 'کھل',
+'prefs-skin' => 'کھل',
'math' => 'حساب کتاب',
-'datetime' => 'تاریخ تے ویلہ',
+'prefs-datetime' => 'تاریخ تے ویلہ',
'math_unknown_error' => 'انجان مسئلہ',
'math_unknown_function' => 'انجان کم',
'prefs-personal' => 'ورتن آلے دا پروفائل',
'prefs-rc' => 'نویاں تبدیلیاں',
'prefs-watchlist' => 'نظر تھلے صفحے',
'saveprefs' => 'بچاؤ',
-'textboxsize' => 'لکھائی',
+'prefs-editing' => 'لکھائی',
'rows' => 'قطار:',
'columns' => 'کالم:',
'searchresultshead' => 'کھوج',
'timezonelegend' => 'ویلے دا علاقہ',
'localtime' => 'مقامی ویلا:',
'timezoneselect' => 'ویلیاں دے علاقے:',
-'files' => 'فائلاں',
+'prefs-files' => 'فائلاں',
# User rights
'userrights-groupsmember' => 'سنگی اے:',
'preferences' => 'Αγαπεμένα',
'mypreferences' => "Τ' εμά τ' αγαπεμένα",
'changepassword' => 'Άλλαξον σημάδιν',
-'skin' => 'Όψην',
+'prefs-skin' => 'Όψην',
'skin-preview' => 'Πρώτον τέρεμαν',
'math' => 'Απόδοσην μαθηματικίων',
'dateformat' => 'Μορφή ημερομηνίας',
-'datetime' => 'Ημερομηνίαν και ώραν',
+'prefs-datetime' => 'Ημερομηνίαν και ώραν',
'math_unknown_function' => 'άγνωρος συνάρτησην',
'math_lexing_error' => 'σφάλμαν λεξικής ανάλυσης',
'math_syntax_error' => 'σφάλμαν σύνταξης',
'localtime' => 'Τοπικόν χρόνον:',
'timezoneregion-atlantic' => 'Ατλαντικόν Ωκεανός',
'timezoneregion-pacific' => 'Ειρηνικόν Ωκεανός',
-'files' => 'Αρχεία',
+'prefs-files' => 'Αρχεία',
# User rights
'userrights-groupsmember' => 'Μέλος τη:',
'prefsnologintext' => 'د دې لپاره چې خپل غوره توبونه مو وټاکی، نو پکار ده چې لومړی تاسو غونډال کې <span class="plainlinks">[{{fullurl:Special:UserLogin|returnto=$1}} ننوځی]</span>.',
'qbsettings-none' => 'هېڅ',
'changepassword' => 'پټنوم بدلول',
-'skin' => 'بڼه',
+'prefs-skin' => 'بڼه',
'skin-preview' => 'مخکتنه',
'math' => 'شمېرپوهنه',
'dateformat' => 'د نېټې بڼه',
'datedefault' => 'هېڅ نه ټاکل',
-'datetime' => 'نېټه او وخت',
+'prefs-datetime' => 'نېټه او وخت',
'math_unknown_error' => 'ناجوته ستونزه',
'math_unknown_function' => 'ناجوته کړنه',
'prefs-personal' => 'د کارونکي پېژنليک',
'prefs-resetpass' => 'پټنوم بدلول',
'saveprefs' => 'خوندي کول',
'resetprefs' => 'بيا سمول',
-'textboxsize' => 'سمادېدنه',
+'prefs-editing' => 'سمادېدنه',
'searchresultshead' => 'پلټل',
'recentchangesdays' => 'د هغو ورځو شمېر وټاکی چې په وروستي بدلونو کې يې ليدل غواړی:',
'recentchangescount' => 'د هغو سمادونو شمېر چې په وروستي بدلونو کې يې ليدل غواړی:',
'prefs-namespaces' => 'نوم-تشيالونه',
'defaultns' => 'په دغو نوم-تشيالونو کې د ټاکل شوو سمونونو له مخې لټون وکړی:',
'default' => 'تلواليز',
-'files' => 'دوتنې',
+'prefs-files' => 'دوتنې',
# User rights
'userrights-user-editname' => 'يو کارن نوم وليکۍ:',
'qbsettings-floatingleft' => 'Flutuando à esquerda',
'qbsettings-floatingright' => 'Flutuando à direita',
'changepassword' => 'Alterar palavra-chave',
-'skin' => 'Tema',
+'prefs-skin' => 'Tema',
'skin-preview' => 'Pré-visualizar',
'math' => 'Matemática',
'dateformat' => 'Formato da data',
'datedefault' => 'Sem preferência',
-'datetime' => 'Data e hora',
+'prefs-datetime' => 'Data e hora',
'math_failure' => 'Falhou ao verificar gramática',
'math_unknown_error' => 'Erro desconhecido',
'math_unknown_function' => 'Função desconhecida',
'saveprefs' => 'Salvar',
'resetprefs' => 'Eliminar as alterações não-salvas',
'restoreprefs' => 'Restaurar todas as configurações padrão',
-'textboxsize' => 'Opções de edição',
+'prefs-editing' => 'Opções de edição',
'prefs-edit-boxsize' => 'Tamanho da janela de edição.',
'rows' => 'Linhas:',
'columns' => 'Colunas:',
'prefs-namespaces' => 'Espaços nominais',
'defaultns' => 'Pesquisar por defeito nestes espaços nominais:',
'default' => 'padrão',
-'files' => 'Ficheiros',
+'prefs-files' => 'Ficheiros',
'prefs-custom-css' => 'CSS personalizada',
'prefs-custom-js' => 'JS personalizado',
'qbsettings-floatingleft' => 'Flutuando à esquerda',
'qbsettings-floatingright' => 'Flutuando à direita',
'changepassword' => 'Alterar senha',
-'skin' => 'Tema',
+'prefs-skin' => 'Tema',
'skin-preview' => 'Pré-visualizar',
'math' => 'Matemática',
'dateformat' => 'Formato da data',
'datedefault' => 'Sem preferência',
-'datetime' => 'Data e hora',
+'prefs-datetime' => 'Data e hora',
'math_failure' => 'Falhou ao verificar gramática',
'math_unknown_error' => 'Erro desconhecido',
'math_unknown_function' => 'Função desconhecida',
'saveprefs' => 'Salvar',
'resetprefs' => 'Eliminar as alterações não-salvas',
'restoreprefs' => 'Restaurar todas as configurações padrão',
-'textboxsize' => 'Opções de edição',
+'prefs-editing' => 'Opções de edição',
'prefs-edit-boxsize' => 'Tamanho da janela de edição.',
'rows' => 'Linhas:',
'columns' => 'Colunas:',
'prefs-namespaces' => 'Espaços nominais',
'defaultns' => 'Pesquisar por padrão nestes espaços nominais:',
'default' => 'padrão',
-'files' => 'Arquivos',
+'prefs-files' => 'Arquivos',
'prefs-custom-css' => 'CSS personalizada',
'prefs-custom-js' => 'JS personalizado',
'qbsettings' => 'The title of the section in [[Special:Preferences]], only shown when using the skins "Standard/Classic" or "Cologne Blue". The quicbar is the same as the sidebar.',
'qbsettings-none' => '{{Identical|None}}',
'changepassword' => "Section heading on [[Special:Preferences]], tab 'User profile'.",
-'skin' => 'Used in user preferences.',
+'prefs-skin' => 'Used in user preferences.',
'skin-preview' => 'The link beside each skin name in [[Special:Preferences|your user preferences]], tab "skin".
{{Identical|Preview}}',
'math' => 'Used in user preferences.',
-'datetime' => '{{Identical|Date}}',
+'prefs-datetime' => '{{Identical|Date}}',
'math_syntax_error' => '{{Identical|Syntax error}}',
'prefs-personal' => 'Title of a tab in [[Special:Preferences]].',
'prefs-rc' => 'Used in user preferences.
{{Identical|Save}}',
'resetprefs' => 'Button for resetting changes in the preferences page.',
'restoreprefs' => 'Used in [[Special:Preferences]]',
-'textboxsize' => 'Title of a tab in [[Special:Preferences]].',
+'prefs-editing' => 'Title of a tab in [[Special:Preferences]].',
'searchresultshead' => 'This is the label of the tab in [[Special:Preferences|my preferences]] which contains options for searching the wiki.
{{Identical|Search}}',
Shown as legend of the second fieldset of the tab 'Search' in [[Special:Preferences]]",
'defaultns' => 'Used in [[Special:Preferences]], tab "Search".',
'default' => '{{Identical|Default}}',
-'files' => 'Title of a tab in [[Special:Preferences]].',
+'prefs-files' => 'Title of a tab in [[Special:Preferences]].',
'prefs-custom-css' => 'visible on [[Special:Preferences]] -[Skins].',
# User rights
'qbsettings-floatingleft' => "Lluq'iman tuytuy",
'qbsettings-floatingright' => 'Pañaman tuytuy',
'changepassword' => 'Yaykuna rimata hukchay',
-'skin' => 'Qara',
+'prefs-skin' => 'Qara',
'skin-preview' => 'Ñawpaqta qhaway',
'math' => 'Minuywa',
'dateformat' => "P'unchaw pacha chanta",
'datedefault' => 'Kikinmanta allinkachina',
-'datetime' => "P'unchaw, pacha",
+'prefs-datetime' => "P'unchaw, pacha",
'math_failure' => "Manam hap'inichu",
'math_unknown_error' => 'mana riqsisqa pantasqa',
'math_unknown_function' => 'mana riqsisqa rurana',
'saveprefs' => 'Allinkachinakunata waqaychay',
'resetprefs' => 'Mana waqaychasqa hukchasqakunaman ama niy',
'restoreprefs' => 'Tukuy kikinmanta allinkachinakunata kutichimuy',
-'textboxsize' => "Llamk'apusqa",
+'prefs-editing' => "Llamk'apusqa",
'prefs-edit-boxsize' => "Llamk'apuna wintanap chhikan.",
'rows' => 'Sinrukuna:',
'columns' => 'Wachukuna:',
'prefs-namespaces' => "Suti k'itikuna",
'defaultns' => "Kay suti k'itikunapi kikinmanta maskay:",
'default' => 'kikinmanta',
-'files' => 'Willañiqikuna',
+'prefs-files' => 'Willañiqikuna',
'prefs-custom-css' => 'Munakusqa CSS',
'prefs-custom-js' => 'Munakusqa JS',
'skin-preview' => 'Prevista',
'dateformat' => 'format da las datas',
'datedefault' => 'Nagina preferenza',
-'datetime' => 'Data e temp',
+'prefs-datetime' => 'Data e temp',
'prefs-personal' => 'datas dal utilisader',
'prefs-rc' => 'Mussar ultimas midadas',
'prefs-watchlist' => "glista d'observaziun",
# Preferences page
'preferences' => 'Kamimata',
'changepassword' => 'Paruv o nakhavipnasko lav',
-'skin' => 'Dikhimos',
+'prefs-skin' => 'Dikhimos',
'math' => 'Matematika',
'dateformat' => 'Datengi forma',
'datedefault' => 'Ni ekh kamipen',
-'datetime' => 'Dives thai chaso',
+'prefs-datetime' => 'Dives thai chaso',
'math_unknown_error' => 'bijangli dosh',
'math_unknown_function' => 'bijangli funkciya',
'math_syntax_error' => 'sintaksaki dosh',
'allowemail' => 'De drom te aven e-mailurya katar aver jene',
'defaultns' => 'Rod savaxt vi kai kadale riga:',
'default' => 'acharuno',
-'files' => 'Failurya',
+'prefs-files' => 'Failurya',
# User rights
'editinguser' => "Editisaripen '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
'qbsettings-floatingleft' => 'Liberă',
'qbsettings-floatingright' => 'Plutire la dreapta',
'changepassword' => 'Schimbă parola',
-'skin' => 'Aspect',
+'prefs-skin' => 'Aspect',
'skin-preview' => 'Previzualizare',
'math' => 'Aspect formule',
'dateformat' => 'Formatul datelor',
'datedefault' => 'Nici o preferinţă',
-'datetime' => 'Data şi ora',
+'prefs-datetime' => 'Data şi ora',
'math_failure' => 'Nu s-a putut interpreta',
'math_unknown_error' => 'eroare necunoscută',
'math_unknown_function' => 'funcţie necunoscută',
'prefs-resetpass' => 'Modifică parola',
'saveprefs' => 'Salvează preferinţele',
'resetprefs' => 'Resetează preferinţele',
-'textboxsize' => 'Dimensiunile casetei de text',
+'prefs-editing' => 'Dimensiunile casetei de text',
'prefs-edit-boxsize' => 'Mărimea ferestrei de modificare.',
'rows' => 'Rânduri:',
'columns' => 'Coloane',
'prefs-namespaces' => 'Spaţii de nume',
'defaultns' => 'Caută în aceste secţiuni implicit:',
'default' => 'standard',
-'files' => 'Fişiere',
+'prefs-files' => 'Fişiere',
# User rights
'userrights' => 'Administrarea permisiunilor de utilizator',
'qbsettings-floatingleft' => 'Volanne a sinistre (Floating left)',
'qbsettings-floatingright' => 'Volanne a destre (Floating right)',
'changepassword' => "Cange 'a password",
-'skin' => 'Skin',
+'prefs-skin' => 'Skin',
'skin-preview' => 'Andeprime',
'math' => 'Math',
'dateformat' => "Formete d'a date",
'datedefault' => 'Nisciuna preferenze',
-'datetime' => 'Date e ore',
+'prefs-datetime' => 'Date e ore',
'math_failure' => 'Analisi fallite',
'math_unknown_error' => 'errore scanusciute',
'math_unknown_function' => 'funziona scanusciute',
'saveprefs' => 'Reggistre',
'resetprefs' => "Pulizze le cangiaminde ca non g'è reggistrete",
'restoreprefs' => "Repristene tutte le 'mbostaziune origginale",
-'textboxsize' => 'Cangiaminde...',
+'prefs-editing' => 'Cangiaminde...',
'prefs-edit-boxsize' => "Dimenzione d'a pàgene de cangiamende.",
'rows' => 'Righe:',
'columns' => 'Culonne:',
'prefs-namespaces' => 'Namespaces',
'defaultns' => "Cirche jndr'à chiste namespace pe default:",
'default' => 'defolt',
-'files' => 'Fails',
+'prefs-files' => 'Fails',
'prefs-custom-css' => 'CSS Personalizzete',
'prefs-custom-js' => 'JS Personalizzete',
'qbsettings-floatingleft' => 'Плавающая слева',
'qbsettings-floatingright' => 'Плавающая справа',
'changepassword' => 'Изменение пароля',
-'skin' => 'Оформление',
+'prefs-skin' => 'Оформление',
'skin-preview' => 'Предпросмотр',
'math' => 'Отображение формул',
'dateformat' => 'Формат даты',
'datedefault' => 'По умолчанию',
-'datetime' => 'Дата и время',
+'prefs-datetime' => 'Дата и время',
'math_failure' => 'Невозможно разобрать выражение',
'math_unknown_error' => 'неизвестная ошибка',
'math_unknown_function' => 'неизвестная функция',
'saveprefs' => 'Записать',
'resetprefs' => 'Сбросить',
'restoreprefs' => 'Восстановить настройки по умолчанию',
-'textboxsize' => 'Редактирование',
+'prefs-editing' => 'Редактирование',
'prefs-edit-boxsize' => 'Размер окна редактирования.',
'rows' => 'Строк:',
'columns' => 'Столбцов:',
'prefs-namespaces' => 'Пространства имён',
'defaultns' => 'По умолчанию искать в следующих пространствах имён:',
'default' => 'по умолчанию',
-'files' => 'Файлы',
+'prefs-files' => 'Файлы',
'prefs-custom-css' => 'Собственный CSS',
'prefs-custom-js' => 'Собственный JS',
'qbsettings-floatingleft' => 'Хаҥас өттө устаҥныыр',
'qbsettings-floatingright' => 'Уҥа өттө устаҥныыр',
'changepassword' => 'Киирии тылы уларытарга',
-'skin' => 'Тас көстүү',
+'prefs-skin' => 'Тас көстүү',
'skin-preview' => 'Хайдах буолара',
'math' => 'Фуормулалар',
'dateformat' => 'Дьыл-хонук формаата',
'datedefault' => 'Көннөрү көстүүтэ',
-'datetime' => 'Күнэ-дьыла уонна кэмэ',
+'prefs-datetime' => 'Күнэ-дьыла уонна кэмэ',
'math_failure' => 'Сатаан ааҕыллыбата',
'math_unknown_error' => 'биллибэт алҕас',
'math_unknown_function' => 'биллибэт дьайыы (функция)',
'saveprefs' => 'Бигэргэт',
'resetprefs' => 'Бигэргэтиллибэтэх уларыйыылары сот',
'restoreprefs' => 'Туруоруулары саҥаттан',
-'textboxsize' => 'Уларытыы',
+'prefs-editing' => 'Уларытыы',
'prefs-edit-boxsize' => 'Эрэдээксийэлиир түннүк улахана.',
'rows' => 'Строкаалара:',
'columns' => 'Колонкалара:',
'prefs-namespaces' => 'Аат дала',
'defaultns' => 'Чопчу ыйыллыбатаҕына бу ааттар быыстарыгар көрдүүргэ:',
'default' => 'чопчу ыйыллыбатаҕына маннык',
-'files' => 'Билэлэр',
+'prefs-files' => 'Билэлэр',
'prefs-custom-css' => 'Бэйэ CSS',
'prefs-custom-js' => 'Бэйэ JS',
'qbsettings-floatingleft' => 'Fluttuante a sinistra',
'qbsettings-floatingright' => 'Fluttuante a destra',
'changepassword' => 'Cambia password',
-'skin' => 'Aspetto',
+'prefs-skin' => 'Aspetto',
'prefs-watchlist' => 'Watchlist',
'saveprefs' => 'Sarva preferèntzias',
'resetprefs' => 'Resetta preferenze',
-'textboxsize' => 'Box de acontzadura',
+'prefs-editing' => 'Box de acontzadura',
'rows' => 'Lìnias:',
'columns' => 'Colunnas:',
'searchresultshead' => 'Settaggio delle preferenze per la ricerca',
'qbsettings-floatingleft' => 'Fluttuanti a manu manca',
'qbsettings-floatingright' => 'Fluttuanti a manu dritta',
'changepassword' => 'Cancia la password',
-'skin' => 'Aspettu',
+'prefs-skin' => 'Aspettu',
'skin-preview' => 'Antiprima',
'math' => 'Fòrmuli',
'dateformat' => 'Furmatu dâ data',
'datedefault' => 'Nudda prifirenza',
-'datetime' => 'Data e ura',
+'prefs-datetime' => 'Data e ura',
'math_failure' => "S'hà virificatu un erruri ntô parsing",
'math_unknown_error' => 'erruri scanusciutu',
'math_unknown_function' => 'funzioni scanusciuta',
'saveprefs' => 'Sarva li prifirenzi',
'resetprefs' => 'Annulla',
'restoreprefs' => 'Ripristina li mpustazzioni di default',
-'textboxsize' => 'Cancia',
+'prefs-editing' => 'Cancia',
'prefs-edit-boxsize' => 'Diminzioni dâ finestra di mudìfica.',
'rows' => 'Righi:',
'columns' => 'Culonni:',
'prefs-namespaces' => 'Namespace',
'defaultns' => 'Namespace pridifiniti pi la ricerca:',
'default' => 'pridifinitu',
-'files' => 'Mmàggini',
+'prefs-files' => 'Mmàggini',
# User rights
'userrights' => 'Gistioni dî dritti utenti',
'skin-preview' => 'First Leuk',
'math' => 'Renderin math',
'datedefault' => 'Nae preference',
-'datetime' => 'Date an time',
+'prefs-datetime' => 'Date an time',
'prefs-personal' => 'Uiser data',
'prefs-rc' => 'Recent chynges an shawin stubs',
'prefs-misc' => 'Antrin settins',
'saveprefs' => 'Hain preferences',
-'textboxsize' => 'Editin',
+'prefs-editing' => 'Editin',
'searchresultshead' => 'Rake result settins',
'resultsperpage' => 'Hits tae shaw per page',
'contextlines' => 'Lines tae shaw per hit',
'changepassword' => 'ڳجھو لفظ تبديل ڪريو',
'skin-preview' => 'پيش نگاهه',
'datedefault' => 'بلا ترجيحا',
-'datetime' => 'تاريخ ۽ وقت',
+'prefs-datetime' => 'تاريخ ۽ وقت',
'allowemail' => 'ٻين يُوزرس کان ايندڙ برق ٽپال بحال ڪريو',
# User rights
'qbsettings-floatingleft' => 'Galliggianti a manca',
'qbsettings-floatingright' => 'Galliggianti a drestha',
'changepassword' => "Ciamba paràura d'órdhini",
-'skin' => 'Aipettu gràficu',
+'prefs-skin' => 'Aipettu gràficu',
'skin-preview' => 'antiprimma',
'math' => 'Fòimmuri matemàtigghi',
'dateformat' => 'Fuimmaddu di la data',
'datedefault' => 'Nisciuna prifirènzia',
-'datetime' => 'Data e ora',
+'prefs-datetime' => 'Data e ora',
'math_failure' => "Errori i'l'anàrisi sintàttigga",
'math_unknown_error' => 'errori ischunisciddu',
'math_unknown_function' => 'funzioni ischuniscidda',
'prefs-misc' => 'Vari',
'saveprefs' => 'Sàivva li prifirenzi',
'resetprefs' => 'Rimpusthà li prifirènzi',
-'textboxsize' => 'Casella di mudìfigga',
+'prefs-editing' => 'Casella di mudìfigga',
'rows' => 'Righi:',
'columns' => 'Curonni:',
'searchresultshead' => 'Zercha',
'allowemail' => "Cunsenti lu rizzibimentu di postha erettrònica d'althri utenti (1)",
'defaultns' => 'Namespace pridifiniddi pa zirchà:',
'default' => 'pridifiniddu',
-'files' => 'File',
+'prefs-files' => 'File',
# User rights
'userrights' => "Gisthioni di li primissi reratibi a l'utenti",
'qbsettings-floatingleft' => 'Biso gurutbealde',
'qbsettings-floatingright' => 'Biso olgesbealde',
'changepassword' => 'Suollemassáni molson',
-'skin' => 'Olggosoaidnu',
+'prefs-skin' => 'Olggosoaidnu',
'skin-preview' => 'ovdalgihtii geahččan...',
'math' => 'Matematihkká',
'dateformat' => 'Beaivemeari hápmi',
'datedefault' => 'Eai válljemat',
-'datetime' => 'Áigi ja beaivemearri',
+'prefs-datetime' => 'Áigi ja beaivemearri',
'math_unknown_error' => 'Dovdameahtun feaila',
'math_unknown_function' => 'Dovdameahtun funkšuvdna',
'prefs-personal' => 'Geavaheaddjidieđut',
'prefs-misc' => 'Eará',
'saveprefs' => 'Vurke ásahusaid',
'resetprefs' => 'Máhcat vurkejuvvon ásahusaid',
-'textboxsize' => 'Rievdadeapmi',
+'prefs-editing' => 'Rievdadeapmi',
'rows' => 'Gurgadasat',
'columns' => 'Kolumnat',
'searchresultshead' => 'Ohcan',
'guesstimezone' => 'Jeara neahttabláđejeaddjis',
'timezoneregion-africa' => 'Afrihkká',
'allowemail' => 'Suova e-postta sádden čujuhussii',
-'files' => 'Fiillat',
+'prefs-files' => 'Fiillat',
# User rights
'userrights' => 'Geavaheaddjirivttiid stivren',
'qbsettings' => 'Zuónaát',
'qbsettings-none' => 'Nepartám',
'changepassword' => "Reset'quimx canj",
-'skin' => 'Zuláugaum',
+'prefs-skin' => 'Zuláugaum',
'skin-preview' => 'Cuáxiit',
'math' => 'HTML-cuat',
'dateformat' => 'Formatumde datum',
'datedefault' => 'Diiquáatlaac',
-'datetime' => 'Datum ö xepe',
+'prefs-datetime' => 'Datum ö xepe',
'math_unknown_error' => 'römj ác',
'math_unknown_function' => 'functión ác',
'math_lexing_error' => 'römjde lexám',
'prefs-misc' => 'Jömc',
'saveprefs' => 'Xuniim',
'resetprefs' => "Reset'",
-'textboxsize' => 'Ticpatlöx',
+'prefs-editing' => 'Ticpatlöx',
'rows' => 'Rowám:',
'columns' => 'Columnám:',
'searchresultshead' => 'Yahöx',
'allowemail' => 'Pos-coccebj e-iitomde diijömde caitóm',
'defaultns' => 'Yahöx jan ipartuatl iti auto:',
'default' => 'auto',
-'files' => 'Ciúchán',
+'prefs-files' => 'Ciúchán',
# User rights
'userrights-lookup-user' => "Yoc' polámde caitom",
'qbsettings-floatingleft' => 'ප්ලාවක වම',
'qbsettings-floatingright' => 'ප්ලාවක දකුණ',
'changepassword' => 'මුරපදය වෙනස් කරන්න',
-'skin' => 'ඡවිය',
+'prefs-skin' => 'ඡවිය',
'skin-preview' => 'පෙරදසුන',
'math' => 'ගණිත',
'dateformat' => 'දත්ත ආකෘතිකරණය',
'datedefault' => 'අභිරුචියක් නොමැත',
-'datetime' => 'දිනය සහ වේලාව',
+'prefs-datetime' => 'දිනය සහ වේලාව',
'math_failure' => 'ව්යාකරණ විග්රහය අසමත් විය',
'math_unknown_error' => 'අඥාත දෝෂය',
'math_unknown_function' => 'අඥාත ශ්රිතය',
'prefs-resetpass' => 'මුර-පදය වෙනස් කරන්න',
'saveprefs' => 'සුරැකුම',
'resetprefs' => 'නොසුරැකූ වෙනස්වීම් නිෂ්කාශනය කරන්න',
-'textboxsize' => 'සංස්කරණය කරමින්',
+'prefs-editing' => 'සංස්කරණය කරමින්',
'prefs-edit-boxsize' => 'සංස්කරණ කවුළුවෙහි ප්රමාණය.',
'rows' => 'පේළි:',
'columns' => 'තීරු:',
'prefs-namespaces' => 'නාමඅවකාශ',
'defaultns' => 'පෙරනිමියෙන් මෙම නාමඅවකාශයන්හි ගවේෂණය කරන්න:',
'default' => 'පෙරනිමි',
-'files' => 'ගොනු',
+'prefs-files' => 'ගොනු',
# User rights
'userrights' => 'පරිශීලක හිමිකම් කළමනාකරණය',
'qbsettings-floatingleft' => 'Plávajúce vľavo',
'qbsettings-floatingright' => 'Plávajúce vpravo',
'changepassword' => 'Zmeniť heslo',
-'skin' => 'Vzhľad',
+'prefs-skin' => 'Vzhľad',
'skin-preview' => 'Náhľad',
'math' => 'Vykreslenie matematiky',
'dateformat' => 'Formát dátumu',
'datedefault' => 'štandardný',
-'datetime' => 'Dátum a čas',
+'prefs-datetime' => 'Dátum a čas',
'math_failure' => 'Syntaktická analýza (parsing) neúspešná',
'math_unknown_error' => 'neznáma chyba',
'math_unknown_function' => 'neznáma funkcia',
'saveprefs' => 'Uložiť nastavenia',
'resetprefs' => 'Obnoviť pôvodné nastavenia',
'restoreprefs' => 'Obnoviť všetky nastavenia na štandardné hodnoty',
-'textboxsize' => 'Úpravy',
+'prefs-editing' => 'Úpravy',
'prefs-edit-boxsize' => 'Veľkosť okna na úpravy.',
'rows' => 'Riadky:',
'columns' => 'Stĺpce:',
'prefs-namespaces' => 'Menné priestory',
'defaultns' => 'Štandardne vyhľadávať v týchto menných priestoroch:',
'default' => 'predvolený',
-'files' => 'Súbory',
+'prefs-files' => 'Súbory',
'prefs-custom-css' => 'Vlastný CSS',
'prefs-custom-js' => 'Vlastný JS',
'qbsettings-floatingleft' => 'Levo leteče',
'qbsettings-floatingright' => 'Desno leteče',
'changepassword' => 'Zamenjava gesla',
-'skin' => 'Koža',
+'prefs-skin' => 'Koža',
'skin-preview' => 'Predogled',
'math' => 'Prikaz matematičnega besedila',
'dateformat' => 'Zapis datuma',
'datedefault' => 'Kakor koli',
-'datetime' => 'Datum in čas',
+'prefs-datetime' => 'Datum in čas',
'math_failure' => 'Ni mi uspelo razčleniti',
'math_unknown_error' => 'neznana napaka',
'math_unknown_function' => 'neznana funkcija',
'prefs-resetpass' => 'Spremeni geslo',
'saveprefs' => 'Shrani',
'resetprefs' => 'Ponastavi',
-'textboxsize' => 'Urejanje',
+'prefs-editing' => 'Urejanje',
'rows' => 'Razsežnosti urejevalnega polja: vrstic:',
'columns' => 'stolpcev:',
'searchresultshead' => 'Nastavitve poizvedovanja',
'allowemail' => 'Drugim uporabnikom omogoči pošiljanje e-pošte',
'defaultns' => 'Navadno išči v naslednjih imenskih prostorih:',
'default' => 'privzeto',
-'files' => 'Datoteke',
+'prefs-files' => 'Datoteke',
'prefs-custom-css' => 'CSS po meri',
'prefs-custom-js' => 'JS po meri',
'skin-preview' => 'Horfiirin',
'math' => 'Xisaab',
'datedefault' => "Ma'jiro dooq",
-'datetime' => 'Taariikhda iyo saacada',
+'prefs-datetime' => 'Taariikhda iyo saacada',
'prefs-rc' => 'Isbedelada dhow',
'prefs-watchlist' => 'liiska-waardiyaha',
'prefs-watchlist-days' => 'Tirada maalamaha ay ku jirayaan liiska-waardiyaha:',
'saveprefs' => 'Kaydi',
-'textboxsize' => 'Wax ka bedelka',
+'prefs-editing' => 'Wax ka bedelka',
'searchresultshead' => 'Raadi',
'recentchangesdays' => 'Tirada maalmaha lagu tusaayo isbedelada dhow:',
'savedprefs' => 'Dooqyadaada waa la keydiyey.',
'qbsettings-floatingleft' => 'Pezull majtas',
'qbsettings-floatingright' => 'Pezull djathtas',
'changepassword' => 'Ndërroni fjalëkalimin',
-'skin' => 'Pamja',
+'prefs-skin' => 'Pamja',
'skin-preview' => 'Parapamje',
'math' => 'Formula',
'dateformat' => 'Data',
'datedefault' => 'Parazgjedhje',
-'datetime' => 'Data dhe Ora',
+'prefs-datetime' => 'Data dhe Ora',
'math_failure' => 'Nuk e kuptoj',
'math_unknown_error' => 'gabim i panjohur',
'math_unknown_function' => 'funksion i panjohur',
'saveprefs' => 'Ruaj parapëlqimet',
'resetprefs' => 'Rikthe parapëlqimet',
'restoreprefs' => 'Rikthe të gjitha të dhënat e mëparshme',
-'textboxsize' => 'Redaktimi',
+'prefs-editing' => 'Redaktimi',
'prefs-edit-boxsize' => 'Madhësia e dritares së redaktimit.',
'rows' => 'Rreshta',
'columns' => 'Kolona',
'prefs-namespaces' => 'Hapësirat',
'defaultns' => 'Kërko automatikisht vetëm në këto hapësira:',
'default' => 'parazgjedhje',
-'files' => 'Figura',
+'prefs-files' => 'Figura',
# User rights
'userrights' => 'Ndrysho privilegjet e përdoruesve',
'qbsettings-floatingleft' => 'Плутајућа лево',
'qbsettings-floatingright' => 'Плутајућа десно',
'changepassword' => 'Промени лозинку',
-'skin' => 'Кожа',
+'prefs-skin' => 'Кожа',
'skin-preview' => 'Преглед',
'math' => 'Математике',
'dateformat' => 'Формат датума',
'datedefault' => 'Није битно',
-'datetime' => 'Датум и време',
+'prefs-datetime' => 'Датум и време',
'math_failure' => 'Неуспех при парсирању',
'math_unknown_error' => 'непозната грешка',
'math_unknown_function' => 'непозната функција',
'prefs-resetpass' => 'Промени лозинку',
'saveprefs' => 'Сачувај',
'resetprefs' => 'Очисти измене',
-'textboxsize' => 'Величине текстуалног поља',
+'prefs-editing' => 'Величине текстуалног поља',
'rows' => 'Редова',
'columns' => 'Колона',
'searchresultshead' => 'Претрага',
'prefs-namespaces' => 'Именски простори',
'defaultns' => 'По стандарду тражи у овим именским просторима:',
'default' => 'стандард',
-'files' => 'Фајлови',
+'prefs-files' => 'Фајлови',
'prefs-custom-css' => 'Кориснички CSS',
'prefs-custom-js' => 'Кориснички JS',
'qbsettings-floatingleft' => 'Plutajuća levo',
'qbsettings-floatingright' => 'Plutajuća desno',
'changepassword' => 'Promeni lozinku',
-'skin' => 'Koža',
+'prefs-skin' => 'Koža',
'skin-preview' => 'Pregled',
'math' => 'Matematike',
'dateformat' => 'Format datuma',
'datedefault' => 'Nije bitno',
-'datetime' => 'Datum i vreme',
+'prefs-datetime' => 'Datum i vreme',
'math_failure' => 'Neuspeh pri parsiranju',
'math_unknown_error' => 'nepoznata greška',
'math_unknown_function' => 'nepoznata funkcija',
'prefs-misc' => 'Razno',
'saveprefs' => 'Sačuvaj',
'resetprefs' => 'Vrati',
-'textboxsize' => 'Veličine tekstualnog polja',
+'prefs-editing' => 'Veličine tekstualnog polja',
'rows' => 'Redova',
'columns' => 'Kolona',
'searchresultshead' => 'Pretraga',
'allowemail' => 'Omogući e-poštu od drugih korisnika',
'defaultns' => 'Po standardu traži u ovim imenskim prostorima:',
'default' => 'standard',
-'files' => 'Fajlovi',
+'prefs-files' => 'Fajlovi',
# User rights
'userrights' => 'Upravljanje korisničkim pravima',
'qbsettings-floatingleft' => 'Han na ku',
'qbsettings-floatingright' => 'Han na pe',
'changepassword' => 'Kenki yu waktiwortu',
-'skin' => 'Buba',
+'prefs-skin' => 'Buba',
'skin-preview' => 'Si-na-fesi',
'math' => 'Fomula',
'dateformat' => 'Datumopomeki',
'datedefault' => 'No wana',
-'datetime' => 'Datum nanga ten',
+'prefs-datetime' => 'Datum nanga ten',
'math_lexing_error' => 'leksikografi fowtu',
'math_syntax_error' => 'sintaki fowtu',
'prefs-personal' => 'Masyinmasi',
'prefs-misc' => 'Diversi',
'saveprefs' => 'Oponaki',
'resetprefs' => 'Bakadray na owru si',
-'textboxsize' => 'Kenki',
+'prefs-editing' => 'Kenki',
'rows' => 'Rei:',
'columns' => 'Kolum:',
'searchresultshead' => 'Suku',
'allowemail' => 'E-mail fu trawan masyin adu',
'defaultns' => 'Soma ini disi nenpreki suku:',
'default' => 'soma',
-'files' => 'Gefre',
+'prefs-files' => 'Gefre',
# User rights
'userrights-lookup-user' => 'Masyinguru kenki',
'qbsettings-floatingleft' => 'Links, swieuwjend',
'qbsettings-floatingright' => 'Gjuchts, swieuwjend',
'changepassword' => 'Paaswoud annerje',
-'skin' => 'Skin',
+'prefs-skin' => 'Skin',
'skin-preview' => 'Foarschau',
'math' => 'TeX',
'dateformat' => 'Doatumsformoat',
'datedefault' => 'Neen Preferenz',
-'datetime' => 'Doatum un Tied',
+'prefs-datetime' => 'Doatum un Tied',
'math_failure' => 'Parser-Failer',
'math_unknown_error' => 'Uunbekoande Failer',
'math_unknown_function' => 'Uunbekoande Funktion',
'saveprefs' => 'Ienstaalengen spiekerje',
'resetprefs' => 'Nit spiekerde Annerengen fersmiete',
'restoreprefs' => 'Aal Standoard-Ienstaalengen wier häärstaale',
-'textboxsize' => 'Beoarbaidje',
+'prefs-editing' => 'Beoarbaidje',
'prefs-edit-boxsize' => 'Grööte fon dät Beoarbaidengsfinster:',
'rows' => 'Riegen',
'columns' => 'Spalten',
'prefs-namespaces' => 'Noomensruume',
'defaultns' => 'In disse Noomensruume schäl standoardmäitich soacht wäide:',
'default' => 'Standoardienstaalenge',
-'files' => 'Doatäie',
+'prefs-files' => 'Doatäie',
'prefs-custom-css' => 'Benutserdefinierde CSS',
'prefs-custom-js' => 'Benutserdefinierd JS',
'qbsettings-floatingleft' => 'Ngambang ka kenca',
'qbsettings-floatingright' => 'Ngambang ka katuhu',
'changepassword' => 'Robah sandi',
-'skin' => 'Kulit',
+'prefs-skin' => 'Kulit',
'skin-preview' => 'Pramidang',
'math' => 'Maté',
'dateformat' => 'Format titimangsa',
'datedefault' => 'Tanpa préferénsi',
-'datetime' => 'Titimangsa jeung wanci',
+'prefs-datetime' => 'Titimangsa jeung wanci',
'math_failure' => "Peta ''parse'' gagal",
'math_unknown_error' => 'Kasalahan teu kanyahoan',
'math_unknown_function' => 'fungsi teu kanyahoan',
'prefs-misc' => 'Pangaturan rupa-rupa',
'saveprefs' => 'Simpen préferénsi',
'resetprefs' => 'Sét ulang préferénsi',
-'textboxsize' => 'Ukuran kotak téks',
+'prefs-editing' => 'Ukuran kotak téks',
'rows' => 'Baris',
'columns' => 'Kolom',
'searchresultshead' => 'Aturan hasil néang',
'prefs-namespaces' => 'Ngaranspasi',
'defaultns' => 'Téang ti antara spasingaran ieu luyu jeung ti dituna:',
'default' => 'ti dituna',
-'files' => 'Koropak',
+'prefs-files' => 'Koropak',
# User rights
'userrights' => 'Manajemén hak pamaké',
'qbsettings-floatingleft' => 'Flytande vänster',
'qbsettings-floatingright' => 'Flytande höger',
'changepassword' => 'Byt lösenord',
-'skin' => 'Utseende',
+'prefs-skin' => 'Utseende',
'skin-preview' => 'förhandsvisning',
'math' => 'Matematik',
'dateformat' => 'Datumformat',
'datedefault' => 'Ovidkommande',
-'datetime' => 'Datum och tid',
+'prefs-datetime' => 'Datum och tid',
'math_failure' => 'Misslyckades med att tolka formel.',
'math_unknown_error' => 'okänt fel',
'math_unknown_function' => 'okänd funktion',
'saveprefs' => 'Spara',
'resetprefs' => 'Återställ osparade ändringar',
'restoreprefs' => 'Återställ alla standardinställningar',
-'textboxsize' => 'Redigering',
+'prefs-editing' => 'Redigering',
'prefs-edit-boxsize' => 'Storlek på redigeringsfönstret.',
'rows' => 'Rader:',
'columns' => 'Kolumner:',
'prefs-namespaces' => 'Namnrymder',
'defaultns' => 'Sök i följande namnrymder som förval:',
'default' => 'ursprungsinställning',
-'files' => 'Filer',
+'prefs-files' => 'Filer',
'prefs-custom-css' => 'Personlig CSS',
'prefs-custom-js' => 'Personlig JavaScript',
'preferences' => 'Mapendekezo',
'mypreferences' => 'Mapendekezo yangu',
'changepassword' => 'Badilisha neno la siri',
-'skin' => 'Sura',
+'prefs-skin' => 'Sura',
'prefs-watchlist' => 'Maangalizi',
'saveprefs' => 'Hifadhi',
'rows' => 'Mistari:',
'timezoneregion-indian' => 'Bahari ya Hindi',
'timezoneregion-pacific' => 'Bahari ya Pasifiki',
'prefs-searchoptions' => 'Hitiari za kutafuta',
-'files' => 'Mafaili',
+'prefs-files' => 'Mafaili',
# Groups
'group' => 'Kundi:',
'qbsettings-floatingleft' => 'Unošůncy śe, s lewyj',
'qbsettings-floatingright' => 'Unošůncy śe, s prawyj',
'changepassword' => 'Zmjana hasua',
-'skin' => 'Skůrka',
+'prefs-skin' => 'Skůrka',
'skin-preview' => 'podglůnd',
'math' => 'Wzory',
'dateformat' => 'Format daty',
'datedefault' => 'Důmyślny',
-'datetime' => 'Data a czas',
+'prefs-datetime' => 'Data a czas',
'math_failure' => 'Parser ńy můg rozpoznać',
'math_unknown_error' => 'ńyznany feler',
'math_unknown_function' => 'ńyznano funkcyjo',
'prefs-resetpass' => 'Zmjyń hasło',
'saveprefs' => 'Naškryflej',
'resetprefs' => 'Preferencyje důmyślne',
-'textboxsize' => 'Sprowjańy',
+'prefs-editing' => 'Sprowjańy',
'prefs-edit-boxsize' => 'Rozmjor uokna edycyji.',
'rows' => 'Wjerše:',
'columns' => 'Kůlumny:',
'prefs-namespaces' => 'Přystřyńe mjan',
'defaultns' => 'Důmyślńy šnupej we nastympujůncych přystřyńach mjan:',
'default' => 'důmyślńy',
-'files' => 'Pliki',
+'prefs-files' => 'Pliki',
# User rights
'userrights' => 'Zařůndzańy prowami užytkowńikůw',
'qbsettings-floatingleft' => 'மிதப்பு இடது',
'qbsettings-floatingright' => 'மிதப்பு வலது',
'changepassword' => 'கடவுச்சொல்லை மாற்று',
-'skin' => 'தோல்',
+'prefs-skin' => 'தோல்',
'skin-preview' => 'முன்தோற்றம்',
'math' => 'கணிதம்',
'dateformat' => 'நாள் வடிவம்',
'datedefault' => 'விருப்பத்தேர்வுகள் இல்லை',
-'datetime' => 'நாள் நேரம்',
+'prefs-datetime' => 'நாள் நேரம்',
'math_failure' => 'பாகுபடுத்தல் தோல்வி',
'math_unknown_error' => 'அறியப்படாத தவறு',
'math_unknown_function' => 'அறியப்படாத செயற்பாடு',
'prefs-resetpass' => 'கடவுச்சொல்லை மாற்றுக',
'saveprefs' => 'சேமி',
'resetprefs' => 'சேமிக்காத மாற்றங்கள் நீக்குக',
-'textboxsize' => 'தொகுத்தல்',
+'prefs-editing' => 'தொகுத்தல்',
'rows' => 'நிரைகள்:',
'columns' => 'நிரல்கள்',
'searchresultshead' => 'தேடுக',
'prefs-namespaces' => 'பெயர்வெளிகள்',
'defaultns' => 'இயல்பிருப்பாக இந்தப் பெயர்வெளிகளில் தேடவும்:',
'default' => 'இயல்பிருப்பு',
-'files' => 'கோப்புகள்',
+'prefs-files' => 'கோப்புகள்',
# User rights
'userrights' => 'பயனர் அனுமதி முகாமைத்துவம்',
'qbsettings-floatingleft' => 'ఎడమకు ఒదిగి',
'qbsettings-floatingright' => 'కుడికి ఒదిగి',
'changepassword' => 'సంకేతపదం మార్చండి',
-'skin' => 'తొడుగు',
+'prefs-skin' => 'తొడుగు',
'skin-preview' => 'మునుజూపు/సరిచూడు',
'math' => 'గణితం',
'dateformat' => 'తేదీ ఆకృతి',
'datedefault' => 'ఏదైనా పరవాలేదు',
-'datetime' => 'తేదీ, సమయం',
+'prefs-datetime' => 'తేదీ, సమయం',
'math_failure' => 'పార్స్ చెయ్యలేకపోయాం',
'math_unknown_error' => 'గుర్తుతెలియని పొరపాటు',
'math_unknown_function' => 'తెలియని ఫంక్షన్',
'prefs-resetpass' => 'సంకేతపదాన్ని మార్చుకోండి',
'saveprefs' => 'భధ్రపరచు',
'resetprefs' => 'మునుపటి వలె',
-'textboxsize' => 'మార్పులు',
+'prefs-editing' => 'మార్పులు',
'prefs-edit-boxsize' => 'మార్పుల కిటికీ యొక్క పరిమాణం.',
'rows' => 'వరుసలు',
'columns' => 'వరుసలు:',
'prefs-namespaces' => 'పేరుబరులు',
'defaultns' => 'డిఫాల్టుగా ఈ నేంస్పేసులలో అన్వేషించు:',
'default' => 'డిఫాల్టు',
-'files' => 'ఫైళ్ళు',
+'prefs-files' => 'ఫైళ్ళు',
# User rights
'userrights' => 'వాడుకరి హక్కుల నిర్వహణ',
'dateformat' => 'Formatu tempu nian',
'prefs-rc' => 'Mudansa foufoun sira',
'prefs-watchlist' => 'Lista hateke',
-'textboxsize' => 'Edita',
+'prefs-editing' => 'Edita',
'searchresultshead' => 'Buka',
# User rights
'qbsettings-floatingleft' => 'Шиновар чап',
'qbsettings-floatingright' => 'Шиновар рост',
'changepassword' => 'Иваз намудани калимаи убур',
-'skin' => 'Пӯст',
+'prefs-skin' => 'Пӯст',
'skin-preview' => 'Пешнамоиш',
'math' => 'Риёзиёт',
'dateformat' => 'Қолаби сана',
'datedefault' => 'Бе тарҷиҳ',
-'datetime' => 'Сана ва вақт',
+'prefs-datetime' => 'Сана ва вақт',
'math_failure' => 'Шикаст дар таҷзеҳ',
'math_unknown_error' => 'хатои ношинос',
'math_unknown_function' => 'амали номаълум',
'prefs-resetpass' => 'Тағйири гузарвожа',
'saveprefs' => 'Захираи тарҷиҳот',
'resetprefs' => 'Тозакунии тағйироти захиранашуда',
-'textboxsize' => 'Дар ҳоли вироиш',
+'prefs-editing' => 'Дар ҳоли вироиш',
'prefs-edit-boxsize' => 'Ҳаҷми равзанаи вироиш.',
'rows' => 'Теъдоди сатрҳо:',
'columns' => 'Теъдоди сутунҳо:',
'prefs-namespaces' => 'Фазоҳои ном',
'defaultns' => 'Ба таври пешфарз дар ин фазоҳои ном ҷустуҷӯ шавад:',
'default' => 'пешфарз',
-'files' => 'Файлҳо',
+'prefs-files' => 'Файлҳо',
# User rights
'userrights' => 'Мудирияти ихтиёроти корбарӣ',
'qbsettings-floatingleft' => 'ด้านซ้าย',
'qbsettings-floatingright' => 'ด้านขวา',
'changepassword' => 'เปลี่ยนรหัสผ่าน',
-'skin' => 'หน้าตา',
+'prefs-skin' => 'หน้าตา',
'skin-preview' => 'แสดงตัวอย่าง',
'math' => 'คณิตศาสตร์',
'dateformat' => 'รูปแบบวันที่',
'datedefault' => 'ค่าตั้งต้น',
-'datetime' => 'วันและเวลา',
+'prefs-datetime' => 'วันและเวลา',
'math_failure' => 'ส่งผ่านค่าไม่ได้',
'math_unknown_error' => 'ข้อผิดพลาดที่ไม่ทราบ',
'math_unknown_function' => 'คำสั่งที่ไม่ทราบ',
'saveprefs' => 'บันทึก',
'resetprefs' => 'ตั้งค่าใหม่',
'restoreprefs' => 'บันทึกคืนค่าตั้งต้นทั้งหมด',
-'textboxsize' => 'แก้ไข',
+'prefs-editing' => 'แก้ไข',
'prefs-edit-boxsize' => 'ขนาดหน้าจอกล่องแก้ไข',
'rows' => 'แถว:',
'columns' => 'คอลัมน์:',
'prefs-namespaces' => 'เนมสเปซ',
'defaultns' => 'ค้นหาในเนมสเปซ (ค่าตั้งต้น):',
'default' => 'ค่าตั้งต้น',
-'files' => 'ไฟล์',
+'prefs-files' => 'ไฟล์',
'prefs-custom-css' => 'สไตล์ชีตปรับแต่งเอง',
'prefs-custom-js' => 'จาวาสคริปต์ปรับแต่งเอง',
'saveprefs' => 'ኣቐምጥ',
'searchresultshead' => 'ድሉይ',
'savedprefs' => 'ዘቕረብኩሞ መርኣይ ብትክክል ተቀሚጡ ኣሎ።',
-'files' => 'ምስልታት',
+'prefs-files' => 'ምስልታት',
# Groups
'group' => 'ብሓበር:',
'qbsettings-floatingleft' => 'Kaliwa lumulutang',
'qbsettings-floatingright' => 'Kanan lumulutang',
'changepassword' => 'Baguhin ang hudyat',
-'skin' => 'Pabalat',
+'prefs-skin' => 'Pabalat',
'skin-preview' => 'Unang tingin',
'math' => 'Matematika',
'dateformat' => 'Anyo ng petsa',
'datedefault' => 'Walang kagustuhan',
-'datetime' => 'Petsa at oras',
+'prefs-datetime' => 'Petsa at oras',
'math_failure' => 'Nabigo sa pagbanghay',
'math_unknown_error' => 'hindi nalalamang kamalian',
'math_unknown_function' => 'hindi nalalamang tungkulin',
'saveprefs' => 'Sagip',
'resetprefs' => 'Hawanin ang hindi nasagip na mga pagbabago',
'restoreprefs' => 'Ibalik ang lahat ng likas na mga pagtatakda',
-'textboxsize' => 'May binabago',
+'prefs-editing' => 'May binabago',
'prefs-edit-boxsize' => 'Sukat ng dungawan ng ginagawang pagbabago.',
'rows' => 'Mga pahalang na hanay:',
'columns' => 'Mga pahabang hanay:',
'prefs-namespaces' => 'Mga espasyo ng pangalan',
'defaultns' => 'Maghanap sa mga pangalan ng espasyong ito ayon sa likas na pagtatakda:',
'default' => 'Likas na pagtatakda',
-'files' => 'Mga talaksan',
+'prefs-files' => 'Mga talaksan',
'prefs-custom-css' => 'Pasadyang CSS',
'prefs-custom-js' => 'Pasadyang JS',
'mypreferences' => 'faʻiteliha ʻaʻaku',
'prefsnologin' => 'ʻOku ʻikai kau ki ai',
'changepassword' => 'Liliu hoʻo leatapu',
-'skin' => 'Kili',
+'prefs-skin' => 'Kili',
'skin-preview' => 'Vakai pē',
'math' => 'Matematika',
'dateformat' => 'Ngaohi ʻo e ʻaho',
'datedefault' => 'ʻIkai ha faʻiteliha',
-'datetime' => 'ʻAho mo e taimi',
+'prefs-datetime' => 'ʻAho mo e taimi',
'math_unknown_error' => 'hala taʻeʻiloa',
'math_unknown_function' => 'lakanga taʻeʻiloa',
'math_bad_output' => 'ʻOku ʻikai lava ʻo tohi pe fakatupu ʻa e takafi maʻa e fua matematika',
'prefs-misc' => 'Kehekehe',
'saveprefs' => 'Haofaki',
'resetprefs' => 'Fakafoki',
-'textboxsize' => 'ʻOku fatu',
+'prefs-editing' => 'ʻOku fatu',
'rows' => 'Ngaahi ʻotu:',
'columns' => 'Vahaʻa laini:',
'searchresultshead' => 'Kumi',
'allowemail' => 'Fakamafeiaʻi ʻa e tohila mei he kau ʻetita ʻe taha',
'defaultns' => 'Kumi ʻi he vā hingoa fakatuʻunga:',
'default' => 'tuʻunga',
-'files' => 'Ngaahi faile',
+'prefs-files' => 'Ngaahi faile',
# Groups
'group' => 'Pupunga:',
'qbsettings-floatingleft' => 'Sola yaslanıyor',
'qbsettings-floatingright' => 'Sağa yaslanıyor',
'changepassword' => 'Parola değiştir',
-'skin' => 'Motif',
+'prefs-skin' => 'Motif',
'skin-preview' => 'Ön izleme',
'math' => 'Matematiksel semboller',
'dateformat' => 'Tarih gösterimi',
'datedefault' => 'Tercih yok',
-'datetime' => 'Tarih ve saat',
+'prefs-datetime' => 'Tarih ve saat',
'math_failure' => 'Ayrıştırılamadı',
'math_unknown_error' => 'bilinmeyen hata',
'math_unknown_function' => 'bilinmeyen fonksiyon',
'saveprefs' => 'Değişiklikleri kaydet',
'resetprefs' => 'Ayarları ilk durumuna getir',
'restoreprefs' => 'Tüm varsayılan ayarları geri yükle',
-'textboxsize' => 'Sayfa yazma alanı',
+'prefs-editing' => 'Sayfa yazma alanı',
'prefs-edit-boxsize' => 'Değiştirme penceresinin boyutu.',
'rows' => 'Satır',
'columns' => 'Sütun',
'prefs-namespaces' => 'Alan adları',
'defaultns' => 'Aramayı aşağıdaki seçili alanlarda yap.',
'default' => 'orijinal',
-'files' => 'Dosyalar',
+'prefs-files' => 'Dosyalar',
'prefs-custom-css' => 'Özel CSS',
'prefs-custom-js' => 'Özel JS',
'mypreferences' => 'Minhlawulo ya mina',
'prefs-edits' => 'Ntsengo wa mindzulamiso:',
'skin-preview' => 'Ndzinganiso',
-'datetime' => 'Siku na nkarhi',
+'prefs-datetime' => 'Siku na nkarhi',
'prefs-watchlist' => 'Nxaxamelo wa Leswivoniwaka',
'saveprefs' => 'Hlayisa',
'resetprefs' => 'sula kucinca lokungahlayisiwangiki',
-'textboxsize' => 'Kululamisa',
+'prefs-editing' => 'Kululamisa',
# Rights
'right-read' => 'Matluka yo Hlaya',
'qbsettings' => 'Күчешләр аслыгы',
'qbsettings-none' => 'Күрсәтмәскә',
'changepassword' => 'Серсүзне алыштырырга',
-'skin' => 'Күренеш',
+'prefs-skin' => 'Күренеш',
'skin-preview' => 'Алдан карау',
'math' => 'Формулалар',
'dateformat' => 'Датаның форматы',
-'datetime' => 'Дата һәм вакыт',
+'prefs-datetime' => 'Дата һәм вакыт',
'prefs-personal' => 'Шәхси мәгълүматлар',
'prefs-rc' => 'Баягы төзәтмәләр',
'prefs-watchlist' => 'Күзәтү исемлеге',
'prefs-misc' => 'Башка көйләнмәләр',
'saveprefs' => 'Саклау',
'resetprefs' => 'Сакланмаган төзәтмәләрне бетерү',
-'textboxsize' => 'Үзгәртү',
+'prefs-editing' => 'Үзгәртү',
'rows' => 'Юллар:',
'columns' => 'Баганалар:',
'servertime' => 'Серверның вакыты',
'default' => 'килешү буенча',
-'files' => 'Файллар',
+'prefs-files' => 'Файллар',
# User rights
'userrights-groupsmember' => 'Әгъза:',
'prefsnologin' => 'Kermägänseñ',
'qbsettings' => 'Tiztirä caylawı',
'changepassword' => 'Sersüz üzgärtü',
-'skin' => 'Tışlaw',
+'prefs-skin' => 'Tışlaw',
'skin-preview' => 'Küzläw',
'dateformat' => 'Waqıt qalıbı',
'math_failure' => 'Uqí almadım',
'prefs-misc' => 'Başqa köyläwlär',
'saveprefs' => 'Saqla köyläwlärne',
'resetprefs' => 'Awdar köyläwne',
-'textboxsize' => 'Mätenqır ülçäme',
+'prefs-editing' => 'Mätenqır ülçäme',
'rows' => 'Yul:',
'columns' => 'Buy:',
'searchresultshead' => 'Ezläw',
'guesstimezone' => 'Browserdan alası',
'defaultns' => 'Ğädättä bu isemarada ezlise:',
'default' => 'töpcay',
-'files' => 'Fayllar',
+'prefs-files' => 'Fayllar',
# Recent changes
'recentchanges' => 'Soñğı üzgärtmälär',
# Preferences page
'prefs-rc' => 'Te mau fa’ahuru-’ē-ra’a ’āpī',
-'files' => 'Te mau putu’ite',
+'prefs-files' => 'Te mau putu’ite',
# Recent changes
'recentchanges' => 'Te mau fa’ahuru-’ē-ra’a ’āpī',
# Preferences page
'preferences' => 'Дээре деп санаарылар',
'changepassword' => 'Чажыт сөстү өскертир',
-'skin' => 'Кеш',
+'prefs-skin' => 'Кеш',
'skin-preview' => 'Чижеглей көөр',
'math_unknown_error' => 'билбес алдаг',
'prefs-personal' => 'Ажыглакчының медээлери',
'prefs-rc' => 'Дээм чаагы өскерлиишкиннер',
'prefs-watchlist' => 'Хайгаарылга даңзызы',
'saveprefs' => 'Шыгжаар',
-'textboxsize' => 'Өскертир',
+'prefs-editing' => 'Өскертир',
'rows' => 'Одуруглар:',
'columns' => 'Баганалар:',
'searchresultshead' => 'Дилээр',
'servertime' => 'Сервер шакы',
'default' => 'ниити',
-'files' => 'файлдар',
+'prefs-files' => 'файлдар',
# User rights
'editinguser' => '<b>$1</b> деп ажыглакчыны өскертип турар ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])',
'qbsettings-floatingleft' => 'Плаваюча ліворуч',
'qbsettings-floatingright' => 'Плаваюча праворуч',
'changepassword' => 'Змінити пароль',
-'skin' => 'Оформлення',
+'prefs-skin' => 'Оформлення',
'skin-preview' => 'Попередній перегляд',
'math' => 'Відображення формул',
'dateformat' => 'Формат дати',
'datedefault' => 'Стандартний',
-'datetime' => 'Дата й час',
+'prefs-datetime' => 'Дата й час',
'math_failure' => 'Неможливо розібрати вираз',
'math_unknown_error' => 'невідома помилка',
'math_unknown_function' => 'невідома функція',
'saveprefs' => 'Зберегти',
'resetprefs' => 'Скасувати незбережені зміни',
'restoreprefs' => 'Відновити всі стандартні налаштування',
-'textboxsize' => 'Розміри поля вводу',
+'prefs-editing' => 'Розміри поля вводу',
'prefs-edit-boxsize' => 'Розмір вікна редагування.',
'rows' => 'Рядків:',
'columns' => 'Колонок:',
'prefs-namespaces' => 'Простори назв',
'defaultns' => 'За замовчуванням шукати в таких просторах назв:',
'default' => 'за замовчуванням',
-'files' => 'Файли',
+'prefs-files' => 'Файли',
'prefs-custom-css' => 'Власний CSS',
'prefs-custom-js' => 'Власний JS',
'qbsettings' => 'فوریبار',
'qbsettings-none' => 'ہیچ',
'changepassword' => 'کلمۂ شناخت تبدیل کریں',
-'skin' => 'جِلد',
+'prefs-skin' => 'جِلد',
'skin-preview' => 'پیش منظر',
'math' => 'ریاضی',
'dateformat' => 'شکلبندِ تاریخ',
'datedefault' => 'کوئی ترجیحات نہیں',
-'datetime' => 'تاریخ و وقت',
+'prefs-datetime' => 'تاریخ و وقت',
'math_failure' => 'تجزیہ میں ناکام',
'math_unknown_error' => 'نامعلوم غلطی',
'math_unknown_function' => 'نامعلوم فعل',
'saveprefs' => 'محفوظ',
'resetprefs' => 'نامحفوظ تبدیلیاں صاف کرو',
'restoreprefs' => 'تمام بےنقص ترتیبات بحال کیجئے',
-'textboxsize' => 'تدوین',
+'prefs-editing' => 'تدوین',
'prefs-edit-boxsize' => 'تدوینی کھڑکی کی جسامت.',
'rows' => 'صفیں:',
'columns' => 'قطاریں:',
'prefs-searchoptions' => 'اختیاراتِ تلاش',
'prefs-namespaces' => 'جائے نام',
'default' => 'طے شدہ',
-'files' => 'مسلات',
+'prefs-files' => 'مسلات',
'prefs-custom-css' => 'خودساختہ CSS',
'prefs-custom-js' => 'خودساختہ JS',
# Preferences page
'preferences' => 'Moslamalar',
'mypreferences' => 'Moslamalarim',
-'skin' => "Tashqi ko'rinish",
+'prefs-skin' => "Tashqi ko'rinish",
'math' => 'Formulalar',
-'datetime' => 'Sana va vaqt',
+'prefs-datetime' => 'Sana va vaqt',
'prefs-personal' => "Shaxsiy ma'lumotlar",
'prefs-rc' => "Yangi o'zgartirishlar",
'prefs-watchlist' => "Kuzatuv ro'yxati",
'prefs-misc' => 'Boshqa moslamalar',
'saveprefs' => 'Saqlash',
'resetprefs' => 'Bekor qilish',
-'textboxsize' => 'Tahrirlash',
+'prefs-editing' => 'Tahrirlash',
'searchresultshead' => 'Qidiruv natijalari',
-'files' => 'Fayllar',
+'prefs-files' => 'Fayllar',
# Groups
'group-sysop' => 'Administratorlar',
'qbsettings-floatingleft' => 'Fluttuante a sinistra',
'qbsettings-floatingright' => 'Fluttuante a destra',
'changepassword' => 'Cambia ła password',
-'skin' => 'Aspeto grafico',
+'prefs-skin' => 'Aspeto grafico',
'skin-preview' => 'Anteprima',
'math' => 'Formułe matematiche',
'dateformat' => 'Formato de la data',
'datedefault' => 'Nissuna preferensa',
-'datetime' => 'Data e ora',
+'prefs-datetime' => 'Data e ora',
'math_failure' => 'Eror del parser',
'math_unknown_error' => 'eror sconossiùo',
'math_unknown_function' => 'funzion sconossiùa',
'saveprefs' => 'Salva le preferense',
'resetprefs' => 'Reinposta le preferense',
'restoreprefs' => 'Ripristina le inpostassion predefinìe',
-'textboxsize' => 'Dimension de la casela de modifica',
+'prefs-editing' => 'Dimension de la casela de modifica',
'prefs-edit-boxsize' => 'Dimension de la finestra de modìfega.',
'rows' => 'Righe:',
'columns' => 'Cołone:',
'prefs-namespaces' => 'Namespace',
'defaultns' => 'Çerca in sti namespace se non diversamente specificà:',
'default' => 'predefinìo',
-'files' => 'Imagini',
+'prefs-files' => 'Imagini',
'prefs-custom-css' => 'CSS personalixà',
'prefs-custom-js' => 'JS personalixà',
'qbsettings-floatingleft' => 'Ujui huralpäi',
'qbsettings-floatingright' => 'Ujui oiktalpäi',
'changepassword' => 'Peitsanan toižetuz',
-'skin' => 'Irdnägu',
+'prefs-skin' => 'Irdnägu',
'skin-preview' => 'Ezikaclend',
'math' => 'Matematik',
'dateformat' => 'Datan format',
'datedefault' => 'Augotižjärgendused',
-'datetime' => 'Dat da aig',
+'prefs-datetime' => 'Dat da aig',
'math_failure' => 'Ei voi palastada',
'math_unknown_error' => 'tundmatoi petuz',
'math_unknown_function' => 'tundmatoi funkcii',
'saveprefs' => 'Kirjutada',
'resetprefs' => 'Čuta kaičematomad toižetused',
'restoreprefs' => 'Endištada kaik augotižjärgendused',
-'textboxsize' => 'Redaktiruind',
+'prefs-editing' => 'Redaktiruind',
'prefs-edit-boxsize' => 'Redaktiruindan iknan suruz.',
'rows' => 'Rivid:',
'columns' => 'Pachid:',
'prefs-namespaces' => 'Nimiavarused',
'defaultns' => 'Augotižjärgendusen mödhe ectä neniš nimiavarusiš:',
'default' => 'augotižjärgendusen mödhe',
-'files' => 'Failad',
+'prefs-files' => 'Failad',
'prefs-custom-css' => 'Ičeze CSS',
'prefs-custom-js' => 'Ičeze JS',
'qbsettings-floatingleft' => 'Nổi bên trái',
'qbsettings-floatingright' => 'Nổi bên phải',
'changepassword' => 'Đổi mật khẩu',
-'skin' => 'Hình dạng',
+'prefs-skin' => 'Hình dạng',
'skin-preview' => 'Xem thử',
'math' => 'Công thức toán',
'dateformat' => 'Kiểu ngày tháng',
'datedefault' => 'Không lựa chọn',
-'datetime' => 'Ngày tháng',
+'prefs-datetime' => 'Ngày tháng',
'math_failure' => 'Không thể phân tích cú pháp',
'math_unknown_error' => 'lỗi lạ',
'math_unknown_function' => 'hàm lạ',
'saveprefs' => 'Lưu tùy chọn',
'resetprefs' => 'Mặc định lại lựa chọn',
'restoreprefs' => 'Mặc định lại toàn bộ tùy chọn',
-'textboxsize' => 'Sửa đổi',
+'prefs-editing' => 'Sửa đổi',
'prefs-edit-boxsize' => 'Kích thước cửa sổ soạn thảo.',
'rows' => 'Số hàng:',
'columns' => 'Số cột:',
'prefs-namespaces' => 'Không gian tên',
'defaultns' => 'Mặc định tìm kiếm trong không gian tên:',
'default' => 'mặc định',
-'files' => 'Tập tin',
+'prefs-files' => 'Tập tin',
'prefs-custom-css' => 'sửa CSS',
'prefs-custom-js' => 'sửa JS',
'qbsettings-floatingleft' => 'nedeto (vebölo)',
'qbsettings-floatingright' => 'deto (vebölo)',
'changepassword' => 'Votükön letavödi',
-'skin' => 'Fomät',
+'prefs-skin' => 'Fomät',
'skin-preview' => 'Büologed',
'math' => 'Logot formülas',
'dateformat' => 'Dätafomät',
'datedefault' => 'Buükam nonik',
-'datetime' => 'Dät e Tim',
+'prefs-datetime' => 'Dät e Tim',
'math_failure' => 'Diletam fomüla no eplöpon',
'math_unknown_error' => 'pök nesevädik',
'math_unknown_function' => 'dun nesevädik',
'saveprefs' => 'Dakipolöd',
'resetprefs' => 'Buükams rigik',
'restoreprefs' => 'Geikön lü paramets kösömik valik',
-'textboxsize' => 'Redakam',
+'prefs-editing' => 'Redakam',
'prefs-edit-boxsize' => 'Gretot redakamafenäta.',
'rows' => 'Kedets:',
'columns' => 'Padüls:',
'prefs-namespaces' => 'Nemaspads',
'defaultns' => 'Sukolös nomiko in nemaspads at:',
'default' => 'stad kösömik',
-'files' => 'Ragivs',
+'prefs-files' => 'Ragivs',
# User rights
'userrights' => 'Guvam gebanagitätas',
'qbsettings-floatingleft' => 'Ujovahe kural puul',
'qbsettings-floatingright' => 'Ujovahe hüäl puul',
'changepassword' => 'Muudaq salasõnna',
-'skin' => 'Vällänägemine',
+'prefs-skin' => 'Vällänägemine',
'skin-preview' => 'Kaeminõ',
'math' => 'Valõmidõ näütämine',
'dateformat' => 'Kuupäävä muud',
'datedefault' => 'Ütskõik',
-'datetime' => 'Kuupäiv ja kelläaig',
+'prefs-datetime' => 'Kuupäiv ja kelläaig',
'math_failure' => 'Arvosaamalda süntaks',
'math_unknown_error' => 'Tundmalda viga',
'math_unknown_function' => 'Tundmalda tallitus',
'prefs-misc' => 'Muuq säädmiseq',
'saveprefs' => 'Pästäq säädmiseq ärq',
'resetprefs' => 'Võtaq säädmiseq tagasi',
-'textboxsize' => 'Toimõnduskasti suurus',
+'prefs-editing' => 'Toimõnduskasti suurus',
'rows' => 'Rito',
'columns' => 'Tulpõ',
'searchresultshead' => 'Otsminõ',
'allowemail' => 'Lupaq tõisil pruukjil mullõ e-posti saataq',
'defaultns' => 'Otsiq vaikimiisi naist nimeruumõst:',
'default' => 'vaikimiisi',
-'files' => 'Teedüstüq',
+'prefs-files' => 'Teedüstüq',
# User rights
'userrights' => 'Pruukja õiguisi muutminõ',
'qbsettings-floatingleft' => 'Flotante a hintche',
'qbsettings-floatingright' => 'Flotante a droete',
'changepassword' => "Candjî l' sicret",
-'skin' => 'Pea',
+'prefs-skin' => 'Pea',
'skin-preview' => 'vey divant',
'math' => 'Formules matematikes',
'dateformat' => 'Cogne del date',
'datedefault' => 'Nole preferince',
-'datetime' => 'Cogne del date',
+'prefs-datetime' => 'Cogne del date',
'math_unknown_error' => 'aroke nén cnoxhowe',
'math_unknown_function' => 'fonccion nén cnoxhowe',
'math_syntax_error' => 'aroke di sintacse',
'prefs-misc' => 'Totes sôres',
'saveprefs' => 'Schaper les preferinces',
'resetprefs' => 'Rimete les prémetowès valixhances',
-'textboxsize' => 'Grandeu del boesse di tecse',
+'prefs-editing' => 'Grandeu del boesse di tecse',
'rows' => 'Royes',
'columns' => 'Colones',
'searchresultshead' => 'Håynaedje des rzultats di cweraedje',
'allowemail' => "Permete di rçure des emiles d' ôtes uzeus",
'defaultns' => 'Prémetous spåces di nos pol cweraedje:',
'default' => 'prémetou',
-'files' => 'Fitchîs',
+'prefs-files' => 'Fitchîs',
# User rights
'userrights' => 'Manaedjî les liveas des uzeus',
# Preferences page
'preferences' => 'Mga karuyag',
'mypreferences' => 'Akon mga karuyag',
-'datetime' => 'Pitsa ngan oras',
+'prefs-datetime' => 'Pitsa ngan oras',
'searchresultshead' => 'Bilnga',
'timezonelegend' => 'Zona hin oras',
'localtime' => 'Oras nga lokal',
'qbsettings-floatingleft' => 'Ci cammooñ',
'qbsettings-floatingright' => 'Ci ndayjoor',
'changepassword' => 'Coppiteg baatujàll bi',
-'skin' => 'Melokaan',
+'prefs-skin' => 'Melokaan',
'skin-preview' => 'Wonendil',
'math' => 'Xayma',
'dateformat' => 'Dayoob taariix bi',
'datedefault' => 'Benn tànneef',
-'datetime' => 'Taariix ak waxtu',
+'prefs-datetime' => 'Taariix ak waxtu',
'math_failure' => 'Njuumte ci xayma',
'math_unknown_error' => 'Njuumte li xamuñ ko',
'math_unknown_function' => 'Solo si xamuñ ko',
'prefs-resetpass' => 'Soppi baatujàll bi',
'saveprefs' => 'Denc tànneef yi',
'resetprefs' => 'Loppanti tànneef yi',
-'textboxsize' => 'Boyotu coppite',
+'prefs-editing' => 'Boyotu coppite',
'prefs-edit-boxsize' => 'Dayoo palanteeru coppite bi.',
'rows' => 'Rëdd:',
'columns' => 'Kenu :',
'prefsnologin' => '朆登录',
'qbsettings-none' => '呒',
'changepassword' => '改密码',
-'skin' => '皮肤',
+'prefs-skin' => '皮肤',
'skin-preview' => '预览',
'math' => '数学公式',
'datedefault' => '呒拨偏好',
-'datetime' => '日脚搭仔辰光',
+'prefs-datetime' => '日脚搭仔辰光',
'prefs-personal' => '用户档案',
'prefs-rc' => '近段辰光个改动',
'prefs-watchlist' => '监控列表',
'prefs-watchlist-days' => '勒拉监控列表里向显示个日数:',
'prefs-watchlist-edits' => '勒拉扩展个监控列表里向显示个编辑趟数:',
'saveprefs' => '保存',
-'textboxsize' => '编辑',
+'prefs-editing' => '编辑',
'searchresultshead' => '搜索',
'recentchangescount' => '近段辰光个改动标题数:',
'savedprefs' => '倷个偏好已经保存哉。',
'servertime' => '服务器辰光',
'allowemail' => '接受别个用户个电子邮件',
'default' => '默认',
-'files' => '文件',
+'prefs-files' => '文件',
# User rights
'userrights-user-editname' => '输入用户名:',
'qbsettings-fixedleft' => 'קבוע לינקס',
'qbsettings-fixedright' => 'קבוע רעכטס',
'changepassword' => 'טוישן פאַסווארט',
-'skin' => 'סקין',
+'prefs-skin' => 'סקין',
'skin-preview' => 'פארויסדיגע ווייזונג',
'math' => 'פאָרמאַל',
'dateformat' => 'דאטום פארמאט',
'datedefault' => 'נישטא קיין פרעפערענץ',
-'datetime' => 'דאטום און צייט',
+'prefs-datetime' => 'דאטום און צייט',
'math_unknown_error' => 'אומבאקאנטער פעילער',
'math_unknown_function' => 'אומבאקאנטער פונקציע',
'math_syntax_error' => 'סינטאקס גרייז',
'saveprefs' => 'אפהיטן',
'resetprefs' => 'אוועקנעמען נישט-אויפגעהיטענע ענדערונגען',
'restoreprefs' => 'צוריקשטעלן אלע גרונטלעכע שטעלונגען',
-'textboxsize' => 'באַאַרבעטן',
+'prefs-editing' => 'באַאַרבעטן',
'rows' => 'שורות:',
'columns' => 'עמודים:',
'searchresultshead' => 'זוכן',
'prefs-namespaces' => 'נאמענטיילן',
'defaultns' => 'זוך אין דעם נאמענטייל אלס גרונט אויסקלייב:',
'default' => 'גרונטלעך',
-'files' => 'טעקעס',
+'prefs-files' => 'טעקעס',
# User rights
'userrights-user-editname' => 'לייגט אריין א באנוצער-נאמען:',
'prefsnologin' => 'Ẹ kò tíì wọlé',
'prefsnologintext' => 'Ẹ gbọ́dọ̀ <span class="plainlinks">[{{fullurl:Special:UserLogin|returnto=$1}} wọlé]</span> láti to àwọn ìfẹ́ràn oníṣe.',
'changepassword' => 'Ìyípadà ọ̀rọ̀ìpamọ́',
-'skin' => 'Skin (Àwọ̀)',
+'prefs-skin' => 'Skin (Àwọ̀)',
'dateformat' => 'Ìṣájúètò ọjọ́',
'datedefault' => 'Kò sí ìfẹ́ràn',
-'datetime' => 'Ọjọ́ àti àkókò',
+'prefs-datetime' => 'Ọjọ́ àti àkókò',
'prefs-personal' => 'Ọ̀rọ̀ nípa oníṣe',
'prefs-rc' => 'Àwọn àtúnṣe tuntun',
'prefs-watchlist' => 'Ìmójútó',
'localtime' => 'Àkókò ìbílẹ̀:',
'prefs-searchoptions' => 'Àwọn ìyàn àwáàrí',
'prefs-namespaces' => 'Àwọn orúkọàyè',
-'files' => 'Àwọn faili',
+'prefs-files' => 'Àwọn faili',
# Groups
'group' => 'Àkójọpọ̀:',
'qbsettings-floatingleft' => '左邊浮動',
'qbsettings-floatingright' => '右邊浮動',
'changepassword' => '改密碼',
-'skin' => '畫面',
+'prefs-skin' => '畫面',
'skin-preview' => '預覽',
'math' => '數',
'dateformat' => '日期格式',
'datedefault' => '冇喜好',
-'datetime' => '日期同埋時間',
+'prefs-datetime' => '日期同埋時間',
'math_failure' => '語法拼砌失敗',
'math_unknown_error' => '唔知錯乜',
'math_unknown_function' => '唔知乜函數',
'saveprefs' => '儲存',
'resetprefs' => '清除未保存嘅更改',
'restoreprefs' => '恢復全部預設設定',
-'textboxsize' => '編輯中',
+'prefs-editing' => '編輯中',
'prefs-edit-boxsize' => '編輯框大細',
'rows' => '列:',
'columns' => '行:',
'prefs-namespaces' => '空間名',
'defaultns' => '預設喺呢啲空間名搵嘢:',
'default' => '預設',
-'files' => '檔案',
+'prefs-files' => '檔案',
'prefs-custom-css' => '自定 CSS',
'prefs-custom-js' => '自定 JS',
'qbsettings-floatingleft' => 'Lienks zwevend',
'qbsettings-floatingright' => 'Rechs zwevend',
'changepassword' => 'Wachtwoôrd wiezigen',
-'skin' => 'Vurmhevieng',
+'prefs-skin' => 'Vurmhevieng',
'skin-preview' => 'Voevertoônienge',
'math' => 'Formules',
'dateformat' => 'Datumopmaek',
'datedefault' => 'Hin vòkeur',
-'datetime' => 'Daotum en tied',
+'prefs-datetime' => 'Daotum en tied',
'math_failure' => 'Parsen mislukt',
'math_unknown_error' => 'onbekende fout',
'math_unknown_function' => 'onbekende functie',
'prefs-misc' => 'Rest',
'saveprefs' => 'Opslaene',
'resetprefs' => 'Nie opeslogen wiezigiengen herstellen',
-'textboxsize' => 'Bewerken',
+'prefs-editing' => 'Bewerken',
'rows' => 'Rehels:',
'columns' => "Kolomm'n:",
'searchresultshead' => 'Zoek',
'allowemail' => 'Laet e-mail van aore gebrukers toe.',
'defaultns' => "Standard in deêze naemruum'n zoeken:",
'default' => 'standard',
-'files' => "Bestan'n",
+'prefs-files' => "Bestan'n",
# User rights
'userrights' => 'Gebrukersrechenbeheer',
'qbsettings-floatingleft' => '左侧漂移',
'qbsettings-floatingright' => '右侧漂移',
'changepassword' => '更改密码',
-'skin' => '皮肤',
+'prefs-skin' => '皮肤',
'skin-preview' => '预览',
'math' => '数学公式',
'dateformat' => '日期格式',
'datedefault' => '默认值',
-'datetime' => '日期和时间',
+'prefs-datetime' => '日期和时间',
'math_failure' => '解析失败',
'math_unknown_error' => '未知错误',
'math_unknown_function' => '未知函数',
'saveprefs' => '保存',
'resetprefs' => '清除未保存的更改',
'restoreprefs' => '恢复所有预设设置',
-'textboxsize' => '编辑',
+'prefs-editing' => '编辑',
'prefs-edit-boxsize' => '编辑框尺寸',
'rows' => '行:',
'columns' => '列:',
'prefs-namespaces' => '名字空间',
'defaultns' => '默认搜索的名字空间',
'default' => '默认',
-'files' => '文件',
+'prefs-files' => '文件',
'prefs-custom-css' => '自定义CSS',
'prefs-custom-js' => '自定义JS',
'qbsettings-floatingleft' => '左側漂移',
'qbsettings-floatingright' => '右側漂移',
'changepassword' => '更改密碼',
-'skin' => '面板',
+'prefs-skin' => '面板',
'skin-preview' => '預覽',
'math' => '數學公式',
'dateformat' => '日期格式',
'datedefault' => '預設值',
-'datetime' => '日期和時間',
+'prefs-datetime' => '日期和時間',
'math_failure' => '解析失敗',
'math_unknown_error' => '未知錯誤',
'math_unknown_function' => '未知函數',
'saveprefs' => '保存',
'resetprefs' => '清除未保存的更改',
'restoreprefs' => '恢復所有預設設定',
-'textboxsize' => '編輯',
+'prefs-editing' => '編輯',
'prefs-edit-boxsize' => '編輯框尺寸',
'rows' => '列:',
'columns' => '欄:',
'prefs-namespaces' => '頁面名稱空間',
'defaultns' => '預設搜索的名字空間',
'default' => '預設',
-'files' => '檔案',
+'prefs-files' => '檔案',
'prefs-custom-css' => '自定CSS',
'prefs-custom-js' => '自定JS',
'qbsettings-floatingleft' => '左側漂移',
'qbsettings-floatingright' => '右側漂移',
'changepassword' => '更改密碼',
-'skin' => '面板',
+'prefs-skin' => '面板',
'skin-preview' => '預覽',
'math' => '數學公式',
'dateformat' => '日期格式',
'datedefault' => '預設值',
-'datetime' => '日期和時間',
+'prefs-datetime' => '日期和時間',
'math_failure' => '解析失敗',
'math_unknown_error' => '未知錯誤',
'math_unknown_function' => '未知函數',
'prefs-misc' => '雜項',
'saveprefs' => '保存偏好設定',
'resetprefs' => '重設參數',
-'textboxsize' => '編輯',
+'prefs-editing' => '編輯',
'rows' => '列:',
'columns' => '欄:',
'searchresultshead' => '搜尋結果設定',
'allowemail' => '接受來自其他使用者的郵件',
'defaultns' => '預設搜尋的名字空間',
'default' => '預設',
-'files' => '檔案',
+'prefs-files' => '檔案',
# User rights
'userrights' => '使用者權限管理',
--- /dev/null
+-- Table for holding user properties.
+
+CREATE TABLE /*_*/user_properties(
+ up_user bigint not null,
+ up_property varbinary(32) not null,
+ up_value blob
+) /*$wgDBTableOptions*/;
+
+CREATE UNIQUE INDEX /*i*/user_properties_user_property on user_properties (up_user,up_property);
+CREATE INDEX /*i*/user_properties_property on user_properties (up_property);
--- /dev/null
+<?php
+require( './commandLine.inc' );
+
+// Do each user sequentially, since accounts can't be deleted
+
+print "Beginning batch conversion of user options.\n";
+
+$id = 0;
+$dbw = wfGetDB( DB_MASTER );
+$conversionCount = 0;
+
+while ($id !== null) {
+ $idCond = 'user_id>'.$dbw->addQuotes( $id );
+ $optCond = "user_options!=".$dbw->addQuotes( '' ); // For compatibility
+ $res = $dbw->select( 'user', '*',
+ array( $optCond, $idCond ), __METHOD__,
+ array( 'LIMIT' => 50, 'FOR UPDATE' ) );
+ $id = convertOptionBatch( $res, $dbw );
+ $dbw->commit();
+
+ wfWaitForSlaves( 1 );
+
+ if ($id)
+ print "--Converted to ID $id\n";
+}
+print "Conversion done. Converted $conversionCount user records.\n";
+
+function convertOptionBatch( $res, $dbw ) {
+ $id = null;
+ while ($row = $dbw->fetchObject( $res ) ) {
+ global $conversionCount;
+ $conversionCount++;
+
+ $u = User::newFromRow( $row );
+
+ $u->saveSettings();
+ $id = $row->user_id;
+ }
+
+ return $id;
+}
-- Newline-separated list of name=value defining the user
-- preferences
+ -- Now obsolete in favour of user_properties table.
user_options blob NOT NULL,
-- This is a timestamp which is updated when a user
vt_tag varchar(255) NOT NULL PRIMARY KEY
) /*$wgDBTableOptions*/;
+CREATE TABLE /*_*/user_properties(
+ up_user int not null,
+ up_property varbinary(32) not null,
+ up_value blob
+) /*$wgDBTableOptions*/;
+
+CREATE UNIQUE INDEX /*i*/user_properties_user_property on user_properties (up_user,up_property);
+CREATE INDEX /*i*/user_properties_property on user_properties (up_property);
-- vim: sw=2 sts=2 et
array( 'add_table', 'change_tag', 'patch-change_tag.sql' ),
array( 'add_table', 'tag_summary', 'patch-change_tag.sql' ),
array( 'add_table', 'valid_tag', 'patch-change_tag.sql' ),
+ array( 'add_table', 'user_properties', 'patch-user_properties.sql' ),
),
'sqlite' => array(
array( 'add_table', 'change_tag', 'patch-change_tag.sql' ),
array( 'add_table', 'tag_summary', 'patch-change_tag.sql' ),
array( 'add_table', 'valid_tag', 'patch-change_tag.sql' ),
+ array( 'add_table', 'user_properties', 'patch-user_properties.sql' ),
),
);
--- /dev/null
+// Find select-or-other fields.
+addOnloadHook( function() {
+ var fields = getElementsByClassName( document, 'select', 'mw-htmlform-select-or-other' );
+
+ for( var i = 0; i < fields.length; i++ ) {
+ var select = fields[i];
+
+ addHandler( select, 'change', htmlforms.selectOrOtherSelectChanged );
+
+ // Use a fake 'e' to update it.
+ htmlforms.selectOrOtherSelectChanged( { 'target': select } );
+ }
+} );
+
+var htmlforms = {
+ 'selectOrOtherSelectChanged' : function(e) {
+ if (!e) e = window.event;
+ var select = e.target;
+ var id = select.id;
+ var textbox = document.getElementById( id+'-other' );
+
+ if (select.value == 'other') {
+ textbox.disabled = false;
+ } else {
+ textbox.disabled = true;
+ }
+ },
+}
+
}
}
-function unhidetzbutton() {
- var tzb = document.getElementById('guesstimezonebutton');
- if (tzb) {
- tzb.style.display = 'inline';
+function timezoneSetup() {
+ var tzSelect = document.getElementById( 'mw-input-timecorrection' );
+ var tzTextbox = document.getElementById( 'mw-input-timecorrection-other' );
+
+ if (tzSelect && tzTextbox) {
+ addHandler( tzSelect, 'change', function(e) { updateTimezoneSelection(false); } );
+ addHandler( tzTextbox, 'blur', function(e) { updateTimezoneSelection(true); } );
}
+
updateTimezoneSelection(false);
}
return tzString;
}
-function guessTimezone(box) {
- document.getElementsByName("wpHourDiff")[0].value = fetchTimezone();
+function guessTimezone() {
+ var textbox = document.getElementById("mw-input-timecorrection-other");
+ var selector = document.getElementById( 'mw-input-timecorrection' );
+
+ selector.value = 'other';
+ textbox.value = fetchTimezone();
+ textbox.disabled = false; // The changed handler doesn't trip, obviously.
updateTimezoneSelection(true);
}
function updateTimezoneSelection(force_offset) {
- var wpTimeZone = document.getElementsByName("wpTimeZone")[0];
- var wpHourDiff = document.getElementsByName("wpHourDiff")[0];
- var wpLocalTime = document.getElementById("wpLocalTime");
- var wpServerTime = document.getElementsByName("wpServerTime")[0];
+ var selector = document.getElementById("mw-input-timecorrection");
+
+ if (selector.value == 'guess') {
+ return guessTimezone();
+ }
+
+ var textbox = document.getElementById( 'mw-input-timecorrection-other' );
+ var localtimeHolder = document.getElementById("wpLocalTime");
+ var servertime = document.getElementsByName("wpServerTime")[0].value;
var minDiff = 0;
+
+ // Compatibility code.
+ if (!selector.value) selector.value = selector.options[selector.selectedIndex].value;
- if (force_offset) wpTimeZone.selectedIndex = 1;
- if (wpTimeZone.selectedIndex == 1) {
- wpHourDiff.disabled = false;
- var diffArr = wpHourDiff.value.split(':');
+ // Handle force_offset
+ if (force_offset) selector.value = 'other';
+
+ // Get min_diff
+ if (selector.value == 'other') {
+ // Grab data from the textbox, parse it.
+ var diffArr = textbox.value.split(':');
if (diffArr.length == 1) {
+ // Specification is of the form [-]XX
minDiff = parseInt(diffArr[0], 10) * 60;
} else {
+ // Specification is of the form [-]XX:XX
minDiff = Math.abs(parseInt(diffArr[0], 10))*60 + parseInt(diffArr[1], 10);
if (parseInt(diffArr[0], 10) < 0) minDiff = -minDiff;
}
} else {
- wpHourDiff.disabled = true;
- var diffArr = wpTimeZone.options[wpTimeZone.selectedIndex].value.split('|');
+ // Grab data from the selector value
+ var diffArr = selector.value.split('|');
minDiff = parseInt(diffArr[1], 10);
}
+
+ // Gracefully handle non-numbers.
if (isNaN(minDiff)) minDiff = 0;
- var localTime = parseInt(wpServerTime.value, 10) + minDiff;
+
+ // Determine local time from server time and minutes difference, for display.
+ var localTime = parseInt(servertime, 10) + minDiff;
+
+ // Bring time within the [0,1440) range.
while (localTime < 0) localTime += 1440;
while (localTime >= 1440) localTime -= 1440;
+ // Split to hour and minute
var hour = String(Math.floor(localTime/60));
if (hour.length<2) hour = '0'+hour;
var min = String(localTime%60);
if (min.length<2) min = '0'+min;
- changeText(wpLocalTime, hour+':'+min);
+ changeText(localtimeHolder, hour+':'+min);
- if (wpTimeZone.selectedIndex != 1) {
+ // If the user selected from the drop-down, fill the offset field.
+ if (selector.value != 'other') {
hour = String(Math.abs(Math.floor(minDiff/60)));
if (hour.length<2) hour = '0'+hour;
if (minDiff < 0) hour = '-'+hour;
min = String(minDiff%60);
if (min.length<2) min = '0'+min;
- wpHourDiff.value = hour+':'+min;
+ textbox.value = hour+':'+min;
}
}
-hookEvent("load", unhidetzbutton);
-hookEvent("load", tabbedprefs);
+addOnloadHook(timezoneSetup);
+addOnloadHook(tabbedprefs);
body.rtl td.mw-input { text-align: right; }
body.rtl td.mw-submit { text-align: right; }
-td.mw-label { vertical-align: top; }
+td.mw-label { vertical-align: top; width: 20%; }
td.mw-submit { white-space: nowrap; }
/**
cursor: default;
text-decoration: none;
}
-#prefcontrol {
- padding-top: 2em;
- clear: both;
-}
#preferences {
margin: 0;
border: 1px solid #aaa;
.mainLegend {
display: none;
}
-div.prefsectiontip {
+td.htmlform-tip {
font-size: x-small;
padding: .2em 2em;
color: #666;
}
-.btnSavePrefs {
+.mw-htmlform-submit {
font-weight: bold;
padding-left: .3em;
padding-right: .3em;
+ margin-right: 2em;
}
.preferences-login {
#preftoc a:active {
display: block;
}
-#prefcontrol {
- clear: both;
- float: left;
- margin-top: 1em;
-}
div.prefsectiontip {
font-size: 95%;
margin-top: 1em;