Index: branches/wmf/1.18wmf1/extensions/ApiSandbox/SpecialApiSandbox.php |
— | — | @@ -0,0 +1,206 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class SpecialApiSandbox extends SpecialPage { |
| 5 | + |
| 6 | + /** |
| 7 | + * @var ApiQuery |
| 8 | + */ |
| 9 | + private $apiQuery; |
| 10 | + /** |
| 11 | + * Constructor |
| 12 | + */ |
| 13 | + public function __construct() { |
| 14 | + parent::__construct( 'ApiSandbox', '', true ); |
| 15 | + } |
| 16 | + |
| 17 | + /** |
| 18 | + * Main execution function |
| 19 | + * @param $par Parameters passed to the page |
| 20 | + */ |
| 21 | + public function execute( $par ) { |
| 22 | + global $wgEnableAPI; |
| 23 | + |
| 24 | + $out = $this->getContext()->getOutput(); |
| 25 | + |
| 26 | + if ( !$wgEnableAPI ) { |
| 27 | + $out->showErrorPage( 'error', 'apisb-api-disabled' ); |
| 28 | + } |
| 29 | + |
| 30 | + $this->setHeaders(); |
| 31 | + $out->addModules( 'ext.apiSandbox' ); |
| 32 | + |
| 33 | + $out->addHTML( '<noscript>' . wfMessage( 'apisb-no-js' )->parse() . '</noscript> |
| 34 | +<div id="api-sandbox-content" style="display: none">' ); |
| 35 | + $out->addWikiMsg( 'apisb-intro' ); |
| 36 | + $out->addHTML( $this->openFieldset( 'parameters' ) |
| 37 | + . $this->getInputs() |
| 38 | + . '</fieldset>' |
| 39 | + . $this->openFieldset( 'result' ) |
| 40 | + . '<table class="api-sandbox-result-container"><tbody> |
| 41 | +' |
| 42 | + . '<tr><td class="api-sandbox-result-label"><label for="api-sandbox-url">' |
| 43 | + . wfMessage( 'apisb-request-url' )->parse() . '</label></td>' |
| 44 | + . '<td><input id="api-sandbox-url" readonly="readonly" /></td></tr> |
| 45 | +' |
| 46 | + . '<tr id="api-sandbox-post-row"><td class="api-sandbox-result-label"><label for="api-sandbox-post">' |
| 47 | + . wfMessage( 'apisb-request-post' )->parse() . '</label></td>' |
| 48 | + . '<td><input id="api-sandbox-post" readonly="readonly" /></td></tr> |
| 49 | +' |
| 50 | + . '<tr><td colspan="2"><div id="api-sandbox-output"></div></td></tr>' |
| 51 | + . "\n</tbody></table>" |
| 52 | + . "\n</fieldset>" ); |
| 53 | + |
| 54 | + $out->addHTML( "\n</div>" ); # <div id="api-sandbox-content"> |
| 55 | + } |
| 56 | + |
| 57 | + /** |
| 58 | + * @return string |
| 59 | + */ |
| 60 | + private function getInputs() { |
| 61 | + global $wgEnableWriteAPI; |
| 62 | + |
| 63 | + $apiMain = new ApiMain( new FauxRequest( array() ), $wgEnableWriteAPI ); |
| 64 | + $this->apiQuery = new ApiQuery( $apiMain, 'query' ); |
| 65 | + $formats = array_filter( array_keys( $apiMain->getFormats() ), |
| 66 | + 'SpecialApiSandbox::filterFormats' ); |
| 67 | + sort( $formats ); |
| 68 | + $modules = array_keys( $apiMain->getModules() ); |
| 69 | + sort( $modules ); |
| 70 | + $key = array_search( 'query', $modules ); |
| 71 | + if ( $key !== false ) { |
| 72 | + array_splice( $modules, $key, 1 ); |
| 73 | + array_unshift( $modules, 'query' ); |
| 74 | + } |
| 75 | + $queryModules = array_merge( |
| 76 | + $this->getQueryModules( 'list' ), |
| 77 | + $this->getQueryModules( 'prop' ), |
| 78 | + $this->getQueryModules( 'meta' ) |
| 79 | + ); |
| 80 | + |
| 81 | + $s = '<table class="api-sandbox-options"> |
| 82 | +<tbody> |
| 83 | +'; |
| 84 | + $s .= '<tr><td class="api-sandbox-label"><label for="api-sandbox-format">format=</label></td><td class="api-sandbox-value">' |
| 85 | + . self::getSelect( 'format', $formats, 'json' ) |
| 86 | + . '</td><td></td></tr> |
| 87 | +'; |
| 88 | + $s .= '<tr><td class="api-sandbox-label"><label for="api-sandbox-action">action=</label></td><td class="api-sandbox-value">' |
| 89 | + . self::getSelect( 'action', $modules ) |
| 90 | + . '</td><td id="api-sandbox-help" rowspan="2"></td></tr> |
| 91 | +'; |
| 92 | + $s .= '<tr id="api-sandbox-query-row" style="display: none"><td class="api-sandbox-label">' |
| 93 | + . '</td><td class="api-sandbox-value">' |
| 94 | + . self::getSelect( 'query', $queryModules ) |
| 95 | + . '</td></tr> |
| 96 | +</table> |
| 97 | +'; |
| 98 | + $s .= '<div id="api-sandbox-main-inputs"></div><div id="api-sandbox-query-inputs" style="display: none"></div>' |
| 99 | + . $this->openFieldset( 'generic-parameters' ) |
| 100 | + . '<div id="api-sandbox-generic-inputs" class="mw-collapsible mw-collapsed"></div></fieldset>' |
| 101 | + . $this->openFieldset( 'generator-parameters', array( 'style' => 'display: none;' ) ) |
| 102 | + . '<div id="api-sandbox-generator-inputs"></div></fieldset> |
| 103 | +'; |
| 104 | + |
| 105 | + $s .= Html::element( 'input', |
| 106 | + array( |
| 107 | + 'type' => 'button', |
| 108 | + 'id' => 'api-sandbox-submit', |
| 109 | + 'value' => wfMessage( 'apisb-submit' )->text(), |
| 110 | + 'disabled' => 'disabled', |
| 111 | + ) |
| 112 | + ) . "\n"; |
| 113 | + return $s; |
| 114 | + } |
| 115 | + |
| 116 | + /** |
| 117 | + * @param $type string |
| 118 | + * @return array |
| 119 | + */ |
| 120 | + private function getQueryModules( $type ) { |
| 121 | + $res = array(); |
| 122 | + $params = $this->apiQuery->getAllowedParams(); |
| 123 | + foreach ( $params[$type][ApiBase::PARAM_TYPE] as $module ) { |
| 124 | + $res[] = array( |
| 125 | + 'value' => "$type=$module", |
| 126 | + 'text' => /* x 3 */ "\xc2\xa0\xc2\xa0\xc2\xa0$type=$module", |
| 127 | + ); |
| 128 | + } |
| 129 | + sort( $res ); |
| 130 | + array_unshift( $res, |
| 131 | + array( |
| 132 | + 'value' => "-$type-", |
| 133 | + 'text' => wfMessage( "apisb-query-$type" )->parse(), |
| 134 | + 'attributes' => array( 'disabled' => 'disabled' ) |
| 135 | + ) |
| 136 | + ); |
| 137 | + |
| 138 | + return $res; |
| 139 | + } |
| 140 | + |
| 141 | + /** |
| 142 | + * @param $name string |
| 143 | + * @param $items array |
| 144 | + * @param $default bool |
| 145 | + * @return string |
| 146 | + */ |
| 147 | + private static function getSelect( $name, $items, $default = false ) { |
| 148 | + $s = Html::openElement( 'select', array( |
| 149 | + 'class' => 'api-sandbox-input', |
| 150 | + 'name' => $name, |
| 151 | + 'id' => "api-sandbox-$name" ) |
| 152 | + ); |
| 153 | + if ( $default === false ) { |
| 154 | + $s .= "\n\t" . self::option( '-', wfMessage( "apisb-select-$name" )->text(), |
| 155 | + array( 'selected' => 'selected' ) |
| 156 | + ); |
| 157 | + } |
| 158 | + foreach ( $items as $item ) { |
| 159 | + $attributes = array(); |
| 160 | + if ( is_array( $item ) ) { |
| 161 | + $value = $item['value']; |
| 162 | + $text = $item['text']; |
| 163 | + $attributes = isset( $item['attributes'] ) ? $item['attributes'] : array(); |
| 164 | + } else { |
| 165 | + $value = $text = $item; |
| 166 | + } |
| 167 | + if ( $value === $default ) { |
| 168 | + $attributes['selected'] = 'selected'; |
| 169 | + } |
| 170 | + $s .= "\n\t" . self::option( $value, $text, $attributes ); |
| 171 | + } |
| 172 | + $s .= "\n" . Html::closeElement( 'select' ) . "\n"; |
| 173 | + return $s; |
| 174 | + } |
| 175 | + |
| 176 | + /** |
| 177 | + * @param $value string |
| 178 | + * @param $text string |
| 179 | + * @param $attributes array |
| 180 | + * @return string |
| 181 | + */ |
| 182 | + private static function option( $value, $text, $attributes = array() ) { |
| 183 | + $attributes['value'] = $value; |
| 184 | + return Html::element( 'option', $attributes, $text ); |
| 185 | + } |
| 186 | + |
| 187 | + /** |
| 188 | + * @param $name string |
| 189 | + * @param $attribs Array |
| 190 | + * @return string |
| 191 | + */ |
| 192 | + private function openFieldset( $name, $attribs = array() ) { |
| 193 | + return "\n" . Html::openElement( 'fieldset', array( 'id' => "api-sandbox-$name" ) + $attribs ) |
| 194 | + . "\n\t" . Html::rawElement( 'legend', array(), wfMessage( "apisb-$name" )->parse() ) |
| 195 | + . "\n"; |
| 196 | + } |
| 197 | + |
| 198 | + /** |
| 199 | + * Callback that returns false if its argument (format name) ends with 'fm' |
| 200 | + * |
| 201 | + * @param $value string |
| 202 | + * @return boolean |
| 203 | + */ |
| 204 | + private static function filterFormats( $value ) { |
| 205 | + return !preg_match( '/fm$/', $value ); |
| 206 | + } |
| 207 | +} |
\ No newline at end of file |
Property changes on: branches/wmf/1.18wmf1/extensions/ApiSandbox/SpecialApiSandbox.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 208 | + native |
Index: branches/wmf/1.18wmf1/extensions/ApiSandbox/ext.apiSandbox.js |
— | — | @@ -0,0 +1,431 @@ |
| 2 | +jQuery( function( $ ) { |
| 3 | + /** |
| 4 | + * Class that creates inputs for a query and builds request data |
| 5 | + * |
| 6 | + * Constructor |
| 7 | + * @param $container {jQuery} Container to put UI into |
| 8 | + * @param info {Object} Query information |
| 9 | + * @param prefix {String} Additional prefix for parameter names |
| 10 | + */ |
| 11 | + function UiBuilder( $container, info, prefix, params ) { |
| 12 | + this.$container = $container; |
| 13 | + this.info = info; |
| 14 | + this.prefix = prefix + info.prefix; |
| 15 | + this.params = isset( params ) ? params : info.parameters; |
| 16 | + |
| 17 | + this.createInputs(); |
| 18 | + } |
| 19 | + |
| 20 | + UiBuilder.prototype = { |
| 21 | + /** |
| 22 | + * Creates inputs and places them into container |
| 23 | + */ |
| 24 | + createInputs: function() { |
| 25 | + var s = '<table class="api-sandbox-options">\n<tbody>'; |
| 26 | + for ( var i = 0; i < this.params.length; i++ ) { |
| 27 | + var param = this.params[i], |
| 28 | + name = this.prefix + param.name; |
| 29 | + |
| 30 | + s += '<tr><td class="api-sandbox-label">' |
| 31 | + + mw.html.element( 'label', { 'for': 'param-' + name }, name + '=' ) |
| 32 | + + '</td><td class="api-sandbox-value">' + this.input( param, name ) |
| 33 | + + '</td><td>' + smartEscape( param.description ) + '</td></tr>'; |
| 34 | + } |
| 35 | + s += '\n</tbody>\n</table>\n'; |
| 36 | + this.$container.html( s ); |
| 37 | + }, |
| 38 | + |
| 39 | + /** |
| 40 | + * Adds module help to a container |
| 41 | + * @param $container {jQuery} Container to use |
| 42 | + */ |
| 43 | + setHelp: function( $container ) { |
| 44 | + var desc = smartEscape( this.info.description ); |
| 45 | + if ( isset( this.info.helpurls ) && isset( this.info.helpurls[0] ) && this.info.helpurls[0] ) { |
| 46 | + desc = desc.replace( /^([^\r\n\.]*)/, |
| 47 | + mw.html.element( 'a', { 'target': '_blank', 'href': this.info.helpurls[0] }, '$1' ) |
| 48 | + ); |
| 49 | + } |
| 50 | + $container.html( desc ); |
| 51 | + }, |
| 52 | + |
| 53 | + input: function( param, name ) { |
| 54 | + var s, |
| 55 | + value = ''; |
| 56 | + switch ( param.type ) { |
| 57 | + case 'limit': |
| 58 | + value = 10; |
| 59 | + case 'user': |
| 60 | + case 'timestamp': |
| 61 | + case 'integer': |
| 62 | + case 'string': |
| 63 | + s = mw.html.element( 'input', { 'class': 'api-sandbox-input', 'id': 'param-' + name, 'value': value } ); |
| 64 | + break; |
| 65 | + case 'bool': |
| 66 | + param.type = 'boolean'; // normalisation for later use |
| 67 | + case 'boolean': |
| 68 | + s = mw.html.element( 'input', { 'id': 'param-' + name, 'type': 'checkbox' } ); |
| 69 | + break; |
| 70 | + case 'namespace': |
| 71 | + param.type = namespaces; |
| 72 | + default: |
| 73 | + if ( typeof param.type == 'object' ) { |
| 74 | + var id = 'param-' + name, |
| 75 | + attributes = { 'id': id }; |
| 76 | + if ( isset( param.multi ) ) { |
| 77 | + attributes.multiple = 'multiple'; |
| 78 | + s = this.select( param.type, attributes, false ); |
| 79 | + } else { |
| 80 | + s = this.select( param.type, attributes, true ); |
| 81 | + } |
| 82 | + } else { |
| 83 | + s = mw.html.element( 'code', {}, mw.msg( 'parentheses', param.type ) ); |
| 84 | + } |
| 85 | + } |
| 86 | + return s; |
| 87 | + }, |
| 88 | + |
| 89 | + select: function( values, attributes, selected ) { |
| 90 | + attributes['class'] = 'api-sandbox-input'; |
| 91 | + if ( isset( attributes.multiple ) ) { |
| 92 | + attributes['size'] = Math.min( values.length, 10 ); |
| 93 | + } |
| 94 | + var s = ''; |
| 95 | + if ( typeof selected != 'array' ) { |
| 96 | + if ( selected ) { |
| 97 | + s += mw.html.element( 'option', { value: '', selected: 'selected' }, mw.msg( 'apisb-select-value' ) ); |
| 98 | + } |
| 99 | + selected = []; |
| 100 | + } |
| 101 | + for ( var i = 0; i < values.length; i++ ) { |
| 102 | + var value = typeof values[i] == 'object' ? values[i].key : values[i], |
| 103 | + face = typeof values[i] == 'object' ? values[i].value : values[i], |
| 104 | + attrs = { 'value': value }; |
| 105 | + if ( $.inArray( value, selected ) >= 0 ) { |
| 106 | + attrs.selected = 'selected'; |
| 107 | + } |
| 108 | + s += '\n' + mw.html.element( 'option', attrs, face ); |
| 109 | + } |
| 110 | + s = mw.html.element( 'select', attributes, new mw.html.Raw( s ) ); |
| 111 | + return s; |
| 112 | + }, |
| 113 | + |
| 114 | + getRequestData: function() { |
| 115 | + var params = ''; |
| 116 | + for ( var i = 0; i < this.params.length; i++ ) { |
| 117 | + var param = this.params[i], |
| 118 | + name = this.prefix + param.name, |
| 119 | + $node = $( '#param-' + name ); |
| 120 | + if ( param.type == 'boolean' ) { |
| 121 | + if ( $node.is( ':checked' ) ) { |
| 122 | + params += '&' + name; |
| 123 | + } |
| 124 | + } else { |
| 125 | + var value = $node.val(); |
| 126 | + if ( !isset( value ) || value == '' || value == null ) { |
| 127 | + continue; |
| 128 | + } |
| 129 | + if ( $.isArray( value ) ) { |
| 130 | + value = value.join( '|' ); |
| 131 | + } |
| 132 | + params += '&' + encodeURIComponent( name ) + '=' + encodeURIComponent( value ); |
| 133 | + } |
| 134 | + } |
| 135 | + return params; |
| 136 | + } |
| 137 | + } // end of UiBuilder.prototype |
| 138 | + |
| 139 | + var $content = $( '#api-sandbox-content' ); |
| 140 | + if ( !$content.length ) { |
| 141 | + return; |
| 142 | + } |
| 143 | + $content.show(); |
| 144 | + |
| 145 | + // page elements |
| 146 | + var $format = $( '#api-sandbox-format' ), |
| 147 | + $action = $( '#api-sandbox-action' ), |
| 148 | + $query = $( '#api-sandbox-query' ), |
| 149 | + $queryRow = $( '#api-sandbox-query-row' ), |
| 150 | + $help = $( '#api-sandbox-help' ), |
| 151 | + $mainContainer = $( '#api-sandbox-main-inputs' ), |
| 152 | + $genericContainer, // will be set later |
| 153 | + $generatorContainer = $( '#api-sandbox-generator-inputs' ), |
| 154 | + $queryContainer = $( '#api-sandbox-query-inputs' ), |
| 155 | + $generatorBox = $( '#api-sandbox-generator-parameters' ), |
| 156 | + $submit = $( '#api-sandbox-submit' ), |
| 157 | + $requestUrl = $( '#api-sandbox-url' ), |
| 158 | + $requestPost = $( '#api-sandbox-post' ), |
| 159 | + $output = $( '#api-sandbox-output' ), |
| 160 | + $postRow = $( '#api-sandbox-post-row' ); |
| 161 | + |
| 162 | + // UiBuilder objects |
| 163 | + var mainRequest, |
| 164 | + genericRequest, |
| 165 | + generatorRequest, |
| 166 | + queryRequest; |
| 167 | + |
| 168 | + // cached stuff |
| 169 | + var paramInfo = { modules: {}, querymodules: {} }, |
| 170 | + namespaces = []; |
| 171 | + |
| 172 | + // load namespaces |
| 173 | + $.getJSON( mw.util.wikiScript( 'api' ), |
| 174 | + { format: 'json', action: 'query', meta: 'siteinfo', siprop: 'namespaces' }, |
| 175 | + function( data ) { |
| 176 | + if ( isset( data.query ) && isset( data.query.namespaces ) ) { |
| 177 | + for ( var id in data.query.namespaces ) { |
| 178 | + if ( id < 0 ) { |
| 179 | + continue; |
| 180 | + } |
| 181 | + var ns = data.query.namespaces[id]['*']; |
| 182 | + if ( ns == '' ) { |
| 183 | + ns = mw.msg( 'apisb-ns-main' ); |
| 184 | + } |
| 185 | + namespaces.push( { key: id, value: ns } ); |
| 186 | + } |
| 187 | + } else { |
| 188 | + showLoadError( $mainContainer, 'apisb-namespaces-error' ); |
| 189 | + } |
| 190 | + } |
| 191 | + ); |
| 192 | + |
| 193 | + // load stuff we need from the beginning |
| 194 | + getParamInfo( { mainmodule: 1, pagesetmodule: 1, modules: 'query' }, |
| 195 | + function() {}, |
| 196 | + function() { |
| 197 | + paramInfo.mainmodule.parameters = paramInfo.mainmodule.parameters.slice( 2 ); // remove format and action |
| 198 | + paramInfo.modules.query.parameters = paramInfo.modules.query.parameters.slice( 3 ); |
| 199 | + $genericContainer = $( '#api-sandbox-generic-inputs > div' ); |
| 200 | + genericRequest = new UiBuilder( $genericContainer, paramInfo.mainmodule, '' ); |
| 201 | + queryRequest = new UiBuilder( $queryContainer, paramInfo.modules.query, '', |
| 202 | + [].concat( paramInfo.modules.query.parameters, paramInfo.pagesetmodule.parameters ) |
| 203 | + ); |
| 204 | + }, |
| 205 | + function() {} |
| 206 | + ); |
| 207 | + |
| 208 | + $action.change( updateUI ); |
| 209 | + $query.change( updateUI ); |
| 210 | + |
| 211 | + $( '#param-generator' ).live( 'change', function() { |
| 212 | + var generator = $( '#param-generator' ).val(); |
| 213 | + if ( generator == '' ) { |
| 214 | + $generatorBox.hide(); |
| 215 | + } else { |
| 216 | + $generatorBox.show(); |
| 217 | + getParamInfo( { querymodules: generator }, |
| 218 | + function() { showLoading( $generatorContainer ); }, |
| 219 | + function() { |
| 220 | + generatorRequest = new UiBuilder( $generatorContainer, paramInfo.querymodules[generator], 'g' ); |
| 221 | + }, |
| 222 | + function() { |
| 223 | + showLoadError( $generatorContainer, 'apisb-request-error' ); |
| 224 | + } |
| 225 | + ); |
| 226 | + } |
| 227 | + } ); |
| 228 | + |
| 229 | + $submit.click( function() { |
| 230 | + var url = mw.util.wikiScript( 'api' ) + '?action=' + $action.val(), |
| 231 | + params = mainRequest.getRequestData(), |
| 232 | + mustBePosted = isset( mainRequest.info.mustbeposted ); |
| 233 | + if ( $action.val() == 'query' ) { |
| 234 | + url += '&' + $query.val(); |
| 235 | + params += queryRequest.getRequestData(); |
| 236 | + } |
| 237 | + url += '&format=' + $format.val(); |
| 238 | + |
| 239 | + params += genericRequest.getRequestData(); |
| 240 | + if ( $( '#param-generator' ).length && $( '#param-generator' ).val() != '' ) { |
| 241 | + params += generatorRequest.getRequestData(); |
| 242 | + } |
| 243 | + |
| 244 | + showLoading( $output ); |
| 245 | + if ( mustBePosted ) { |
| 246 | + $requestUrl.val( url ); |
| 247 | + if ( params.length > 0 ) { |
| 248 | + params = params.substr( 1 ); // remove leading & |
| 249 | + } |
| 250 | + $requestPost.val( params ); |
| 251 | + $postRow.show(); |
| 252 | + } else { |
| 253 | + $requestUrl.val( url + params ); |
| 254 | + $postRow.hide(); |
| 255 | + } |
| 256 | + url = url.replace( /(&format=[^&]+)/, '$1fm' ); |
| 257 | + var data = { |
| 258 | + url: url, |
| 259 | + data: params, |
| 260 | + dataType: 'text', |
| 261 | + type: mustBePosted ? 'POST' : 'GET', |
| 262 | + success: function( data ) { |
| 263 | + var match = data.match( /<pre>[\s\S]*<\/pre>/ ); |
| 264 | + if ( $.isArray( match ) ) { |
| 265 | + data = match[0]; |
| 266 | + } else { |
| 267 | + // some actions don't honor user-specified format |
| 268 | + data = '<pre>' + mw.html.escape( data ) + '</pre>'; |
| 269 | + } |
| 270 | + $output.html( data ); |
| 271 | + }, |
| 272 | + error: function( jqXHR, textStatus, errorThrown ) { |
| 273 | + showLoadError( $output, 'apisb-request-error' ); |
| 274 | + } |
| 275 | + }; |
| 276 | + $.ajax( data ); |
| 277 | + }); |
| 278 | + |
| 279 | + /** |
| 280 | + * Shamelessly borrowed from PHP |
| 281 | + */ |
| 282 | + function isset( x ) { |
| 283 | + return typeof x != 'undefined'; |
| 284 | + } |
| 285 | + |
| 286 | + /** |
| 287 | + * Merges several objects into one that gets returned |
| 288 | + */ |
| 289 | + function merge( /* ... */ ) { |
| 290 | + var res = {}; |
| 291 | + for ( var i = 0; i < arguments.length; i++ ) { |
| 292 | + $.extend( res, arguments[i] ); |
| 293 | + } |
| 294 | + return res; |
| 295 | + } |
| 296 | + |
| 297 | + function showLoading( $element ) { |
| 298 | + $element.html( |
| 299 | + mw.html.element( 'img', |
| 300 | + { src: mw.config.get( 'stylepath' ) + '/common/images/spinner.gif', alt: '' } ) |
| 301 | + + mw.html.escape( mw.msg( 'apisb-loading' ) ) ); |
| 302 | + } |
| 303 | + |
| 304 | + function showLoadError( $element, message ) { |
| 305 | + $element.html( mw.html.element( 'span', { 'class': 'error' }, mw.msg( message ) ) ); |
| 306 | + } |
| 307 | + |
| 308 | + function getParamInfo( what, loadCallback, completeCallback, errorCallback ) { |
| 309 | + var needed = {}; |
| 310 | + for ( var param in what ) { |
| 311 | + if ( !isset( paramInfo[param] ) ) { |
| 312 | + needed[param] = what[param]; |
| 313 | + } else if (typeof needed[param] == 'object' ) { |
| 314 | + for ( var subParam in param ) { |
| 315 | + if ( !isset( paramInfo[param][subParam] ) ) { |
| 316 | + needed[param][subParam] = what[param][subParam]; |
| 317 | + } |
| 318 | + } |
| 319 | + } else { |
| 320 | + needed[param] = what[param]; |
| 321 | + } |
| 322 | + } |
| 323 | + if ( $.isEmptyObject( needed ) ) { |
| 324 | + completeCallback(); |
| 325 | + } else { |
| 326 | + loadCallback(); |
| 327 | + needed.format = 'json'; |
| 328 | + needed.action = 'paraminfo'; |
| 329 | + $.getJSON( |
| 330 | + mw.util.wikiScript( 'api' ), |
| 331 | + needed, |
| 332 | + function( data ) { |
| 333 | + if ( data.error || !data.paraminfo ) { |
| 334 | + errorCallback(); |
| 335 | + return; |
| 336 | + } |
| 337 | + for ( var prop in data.paraminfo ) { |
| 338 | + if ( !isset( paramInfo[prop] ) ) { |
| 339 | + paramInfo[prop] = data.paraminfo[prop]; |
| 340 | + } else { |
| 341 | + for ( var i = 0; i < data.paraminfo[prop].length; i++ ) { |
| 342 | + var info = data.paraminfo[prop][i]; |
| 343 | + if ( !paramInfo[prop][info.name] ) { |
| 344 | + paramInfo[prop][info.name] = info; |
| 345 | + } |
| 346 | + } |
| 347 | + } |
| 348 | + } |
| 349 | + completeCallback(); |
| 350 | + } |
| 351 | + ).error( errorCallback ); |
| 352 | + } |
| 353 | + } |
| 354 | + |
| 355 | + function updateQueryInfo( action, query ) { |
| 356 | + var isQuery = action == 'query'; |
| 357 | + if ( action == '-' || ( isQuery && query == '-' ) ) { |
| 358 | + $submit.attr( 'disabled', 'disabled' ); |
| 359 | + return; |
| 360 | + } |
| 361 | + query = query.replace( /^.*=/, '' ); |
| 362 | + var data = {}; |
| 363 | + if (isQuery ) { |
| 364 | + data.querymodules = query; |
| 365 | + } else { |
| 366 | + data.modules = action; |
| 367 | + } |
| 368 | + getParamInfo( data, |
| 369 | + function() { |
| 370 | + showLoading( $mainContainer ); |
| 371 | + $submit.attr( 'disabled', 'disabled' ); |
| 372 | + }, |
| 373 | + function() { |
| 374 | + var info; |
| 375 | + if ( isQuery ) { |
| 376 | + info = paramInfo.querymodules[query]; |
| 377 | + } else { |
| 378 | + info = paramInfo.modules[action]; |
| 379 | + } |
| 380 | + mainRequest = new UiBuilder( $mainContainer, info, '' ); |
| 381 | + mainRequest.setHelp( $help ); |
| 382 | + $submit.removeAttr( 'disabled' ); |
| 383 | + }, |
| 384 | + function() { |
| 385 | + $submit.removeAttr( 'disabled' ); |
| 386 | + showLoadError( $mainContainer, 'apisb-load-error' ); |
| 387 | + } |
| 388 | + ); |
| 389 | + } |
| 390 | + |
| 391 | + /** |
| 392 | + * HTML-escapes and pretty-formats an API description string |
| 393 | + * |
| 394 | + * @param s {String} String to escape |
| 395 | + * @return {String} |
| 396 | + */ |
| 397 | + function smartEscape( s ) { |
| 398 | + s = mw.html.escape( s ); |
| 399 | + if ( s.indexOf( '\n ' ) >= 0 ) { |
| 400 | + // turns *-bulleted list into a HTML list |
| 401 | + s = s.replace( /^(.*?)((?:\n\s+\*?[^\n]*)+)(.*?)$/m, '$1<ul>$2</ul>$3' ); // outer tags |
| 402 | + s = s.replace( /\n\s+\*?([^\n]*)/g, '\n<li>$1</li>' ); // <li> around bulleted lines |
| 403 | + } |
| 404 | + s = s.replace( /\n(?!<)/, '\n<br/>' ); |
| 405 | + return s; |
| 406 | + } |
| 407 | + |
| 408 | + /** |
| 409 | + * Updates UI after basic query parameters have been changed |
| 410 | + */ |
| 411 | + function updateUI() { |
| 412 | + var a = $action.val(), |
| 413 | + q = $query.val(), |
| 414 | + isQuery = a == 'query'; |
| 415 | + if ( isQuery ) { |
| 416 | + $queryRow.show(); |
| 417 | + if ( q != '-' ) { |
| 418 | + $queryContainer.show(); |
| 419 | + } else { |
| 420 | + $queryContainer.hide(); |
| 421 | + } |
| 422 | + } else { |
| 423 | + $queryRow.hide(); |
| 424 | + $queryContainer.hide(); |
| 425 | + } |
| 426 | + $mainContainer.text( '' ); |
| 427 | + $help.text( '' ); |
| 428 | + updateQueryInfo( a, q ); |
| 429 | + $generatorBox.hide(); |
| 430 | + } |
| 431 | + |
| 432 | +}); |
Property changes on: branches/wmf/1.18wmf1/extensions/ApiSandbox/ext.apiSandbox.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 433 | + native |
Index: branches/wmf/1.18wmf1/extensions/ApiSandbox/ApiSandbox.alias.php |
— | — | @@ -0,0 +1,44 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Aliases for Special:ApiSandbox |
| 5 | + * |
| 6 | + * @file |
| 7 | + * @ingroup Extensions |
| 8 | + */ |
| 9 | + |
| 10 | +$specialPageAliases = array(); |
| 11 | + |
| 12 | +/** English (English) */ |
| 13 | +$specialPageAliases['en'] = array( |
| 14 | + 'ApiSandbox' => array( 'ApiSandbox' ), |
| 15 | +); |
| 16 | + |
| 17 | +/** Arabic (العربية) */ |
| 18 | +$specialPageAliases['ar'] = array( |
| 19 | + 'ApiSandbox' => array( 'ساحة_تجربة_إيه_بي_آي' ), |
| 20 | +); |
| 21 | + |
| 22 | +/** Esperanto (Esperanto) */ |
| 23 | +$specialPageAliases['eo'] = array( |
| 24 | + 'ApiSandbox' => array( 'Provejo_de_API' ), |
| 25 | +); |
| 26 | + |
| 27 | +/** Macedonian (Македонски) */ |
| 28 | +$specialPageAliases['mk'] = array( |
| 29 | + 'ApiSandbox' => array( 'ApiПесочник' ), |
| 30 | +); |
| 31 | + |
| 32 | +/** Nedersaksisch (Nedersaksisch) */ |
| 33 | +$specialPageAliases['nds-nl'] = array( |
| 34 | + 'ApiSandbox' => array( 'API-zaandbak' ), |
| 35 | +); |
| 36 | + |
| 37 | +/** Dutch (Nederlands) */ |
| 38 | +$specialPageAliases['nl'] = array( |
| 39 | + 'ApiSandbox' => array( 'APIZandbak' ), |
| 40 | +); |
| 41 | + |
| 42 | +/** |
| 43 | + * For backwards compatibility with MediaWiki 1.15 and earlier. |
| 44 | + */ |
| 45 | +$aliases =& $specialPageAliases; |
\ No newline at end of file |
Property changes on: branches/wmf/1.18wmf1/extensions/ApiSandbox/ApiSandbox.alias.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 46 | + native |
Index: branches/wmf/1.18wmf1/extensions/ApiSandbox/ApiSandbox.i18n.php |
— | — | @@ -0,0 +1,1027 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Internationalization file for the API sandbox extension. |
| 5 | + * |
| 6 | + * @file |
| 7 | + * @ingroup Extensions |
| 8 | +*/ |
| 9 | + |
| 10 | +$messages = array(); |
| 11 | + |
| 12 | +$messages['en'] = array( |
| 13 | + 'apisb-desc' => 'Allows to debug [http://www.mediawiki.org/wiki/API MediaWiki API] calls from browser', |
| 14 | + 'apisandbox' => 'API sandbox', |
| 15 | + 'apisb-no-js' => "'''Error''': this feature requires JavaScript.", |
| 16 | + 'apisb-intro' => "Use this page to experiment with '''MediaWiki API'''. |
| 17 | + Refer to [http://www.mediawiki.org/wiki/API the API documentation] for further details of API usage.", |
| 18 | + 'apisb-api-disabled' => 'API is disabled on this site.', |
| 19 | + 'apisb-parameters' => 'Parameters', |
| 20 | + 'apisb-result' => 'Result', |
| 21 | + 'apisb-request-url' => 'Request URL:', |
| 22 | + 'apisb-request-post' => 'POST data:', |
| 23 | + 'apisb-select-action' => 'Select action', |
| 24 | + 'apisb-select-query' => 'What to query?', |
| 25 | + 'apisb-select-value' => 'Select value', |
| 26 | + 'apisb-loading' => 'Loading...', |
| 27 | + 'apisb-load-error' => 'Error loading API description', |
| 28 | + 'apisb-request-error' => 'Error performing API request', |
| 29 | + 'apisb-namespaces-error' => 'Error loading namespaces', |
| 30 | + 'apisb-ns-main' => '(Main)', |
| 31 | + 'apisb-submit' => 'Make request', |
| 32 | + 'apisb-query-prop' => 'Properties', |
| 33 | + 'apisb-query-list' => 'Lists', |
| 34 | + 'apisb-query-meta' => 'Meta information', |
| 35 | + 'apisb-generic-parameters'=> 'Generic parameters', |
| 36 | + 'apisb-generator-parameters'=> 'Generator', |
| 37 | +); |
| 38 | + |
| 39 | +/** Message documentation (Message documentation) |
| 40 | + * @author EugeneZelenko |
| 41 | + * @author Purodha |
| 42 | + */ |
| 43 | +$messages['qqq'] = array( |
| 44 | + 'apisb-desc' => '{{desc}}', |
| 45 | + 'apisb-parameters' => '{{Identical|Parameter}}', |
| 46 | + 'apisb-result' => '{{Identical|Result}}', |
| 47 | + 'apisb-request-url' => 'This is about the URL of a request.', |
| 48 | + 'apisb-loading' => '{{Identical|Loading}}', |
| 49 | + 'apisb-query-prop' => '{{Identical|Property}}', |
| 50 | + 'apisb-query-list' => '{{Identical|List}}', |
| 51 | +); |
| 52 | + |
| 53 | +/** Arabic (العربية) |
| 54 | + * @author روخو |
| 55 | + */ |
| 56 | +$messages['ar'] = array( |
| 57 | + 'apisb-no-js' => "'''خطأ''' : هذه الخاصية تتطلب الجافا سكريبت.", |
| 58 | + 'apisb-result' => 'النتيجة', |
| 59 | + 'apisb-select-action' => 'اختر حدث', |
| 60 | + 'apisb-ns-main' => '(رئيسي)', |
| 61 | + 'apisb-query-prop' => 'الخصائص', |
| 62 | + 'apisb-query-list' => 'قوائم', |
| 63 | + 'apisb-query-meta' => 'معلومات الميتا', |
| 64 | + 'apisb-generator-parameters' => 'مولد', |
| 65 | +); |
| 66 | + |
| 67 | +/** Azerbaijani (Azərbaycanca) |
| 68 | + * @author Cekli829 |
| 69 | + * @author Vago |
| 70 | + */ |
| 71 | +$messages['az'] = array( |
| 72 | + 'apisb-parameters' => 'Parametrlər', |
| 73 | + 'apisb-result' => 'Nəticə', |
| 74 | + 'apisb-loading' => 'Yüklənir…', |
| 75 | + 'apisb-ns-main' => '(Əsas)', |
| 76 | + 'apisb-query-list' => 'Siyahılar', |
| 77 | + 'apisb-query-meta' => 'Meta məlumatları', |
| 78 | +); |
| 79 | + |
| 80 | +/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) |
| 81 | + * @author EugeneZelenko |
| 82 | + * @author Jim-by |
| 83 | + * @author Wizardist |
| 84 | + */ |
| 85 | +$messages['be-tarask'] = array( |
| 86 | + 'apisb-desc' => 'Дазваляе налажваць выклікі [http://www.mediawiki.org/wiki/API MediaWiki API] з браўзэра', |
| 87 | + 'apisandbox' => 'Пясочніца API', |
| 88 | + 'apisb-no-js' => "'''Памылка''': гэтая магчымасьць патрабуе JavaScript.", |
| 89 | + 'apisb-intro' => "Гэтая старонка зьяўляецца экспэрымэнтам з '''MediaWiki API'''. |
| 90 | +Зазірніце ў [http://www.mediawiki.org/wiki/API дакумэнтацыю API] для дадатковай інфармацыі па выкарыстаньні API.", |
| 91 | + 'apisb-api-disabled' => 'API забаронены на гэтым сайце.', |
| 92 | + 'apisb-parameters' => 'Парамэтры', |
| 93 | + 'apisb-result' => 'Вынік', |
| 94 | + 'apisb-request-url' => 'URL-адрас запыту:', |
| 95 | + 'apisb-request-post' => 'POST-зьвесткі:', |
| 96 | + 'apisb-select-action' => 'Выбраць дзеяньне', |
| 97 | + 'apisb-select-query' => 'Што запытаць?', |
| 98 | + 'apisb-select-value' => 'Выбраць значэньне', |
| 99 | + 'apisb-loading' => 'Загрузка…', |
| 100 | + 'apisb-load-error' => 'Немагчыма загрузіць апісаньне API', |
| 101 | + 'apisb-request-error' => 'Немагчыма апрацаваць запыт API', |
| 102 | + 'apisb-namespaces-error' => 'Немагчыма загрузіць прасторы назваў', |
| 103 | + 'apisb-ns-main' => '(Асноўная)', |
| 104 | + 'apisb-submit' => 'Зрабіць запыт', |
| 105 | + 'apisb-query-prop' => 'Уласьцівасьці', |
| 106 | + 'apisb-query-list' => 'Сьпісы', |
| 107 | + 'apisb-query-meta' => 'Мэтазьвесткі', |
| 108 | +); |
| 109 | + |
| 110 | +/** Bulgarian (Български) |
| 111 | + * @author DCLXVI |
| 112 | + */ |
| 113 | +$messages['bg'] = array( |
| 114 | + 'apisb-no-js' => "'''Грешка''': тази функционалност изисква Джаваскрипт.", |
| 115 | + 'apisb-result' => 'Резултат', |
| 116 | + 'apisb-loading' => 'Зареждане...', |
| 117 | +); |
| 118 | + |
| 119 | +/** Breton (Brezhoneg) |
| 120 | + * @author Fulup |
| 121 | + */ |
| 122 | +$messages['br'] = array( |
| 123 | + 'apisb-desc' => 'Aotren dizreinañ galvadennoù [http://www.mediawiki.org/wiki/API API MediaWikiI] eus ar merdeer', |
| 124 | + 'apisandbox' => 'Poull-traezh API', |
| 125 | + 'apisb-no-js' => "'''Fazi''' : Rekis eo JavaScript evit an arc'hwel-mañ.", |
| 126 | + 'apisb-intro' => "Grit gant ar bajenn-mañ evit amprouiñ '''MediaWiki API'''. |
| 127 | +Kit da deuler ur sell war [http://www.mediawiki.org/wiki/API teulioù API] evit gouzout hiroc'h penaos embreger API.", |
| 128 | + 'apisb-api-disabled' => "Diweredekaet eo API war al lec'hienn-mañ.", |
| 129 | + 'apisb-parameters' => 'Arventennoù', |
| 130 | + 'apisb-result' => "Disoc'h", |
| 131 | + 'apisb-request-url' => 'Goulenn URL :', |
| 132 | + 'apisb-request-post' => 'roadennoù POST :', |
| 133 | + 'apisb-select-action' => 'Dibab un ober', |
| 134 | + 'apisb-select-query' => 'Petra glask ?', |
| 135 | + 'apisb-select-value' => 'Dibab an talvoud', |
| 136 | + 'apisb-loading' => 'O kargañ...', |
| 137 | + 'apisb-load-error' => 'Fazi en ur gargañ deskrivadur an API', |
| 138 | + 'apisb-request-error' => 'Ur fazi zo bet o klask seveniñ ar goulenn API', |
| 139 | + 'apisb-namespaces-error' => 'Fazi en ur gargañ an esaouennoù anv', |
| 140 | + 'apisb-ns-main' => '(Pennañ)', |
| 141 | + 'apisb-submit' => 'Sevel ar goulenn', |
| 142 | + 'apisb-query-prop' => 'Perzhioù', |
| 143 | + 'apisb-query-list' => 'Rolloù', |
| 144 | + 'apisb-query-meta' => 'Titouroù Meta', |
| 145 | + 'apisb-generator-parameters' => 'Ganer', |
| 146 | +); |
| 147 | + |
| 148 | +/** Catalan (Català) |
| 149 | + * @author Solde |
| 150 | + */ |
| 151 | +$messages['ca'] = array( |
| 152 | + 'apisb-parameters' => 'Paràmetres', |
| 153 | + 'apisb-result' => 'Resultat', |
| 154 | +); |
| 155 | + |
| 156 | +/** German (Deutsch) |
| 157 | + * @author Kghbln |
| 158 | + * @author Purodha |
| 159 | + */ |
| 160 | +$messages['de'] = array( |
| 161 | + 'apisb-desc' => 'Ermöglicht das Beseitigen von Fehlern bei Aufrufen der [http://www.mediawiki.org/wiki/API MediaWiki-API] mit dem Browser', |
| 162 | + 'apisandbox' => 'API-Spielwiese', |
| 163 | + 'apisb-no-js' => "'''Fehler:''' Diese Funktion erfordert JavaSkript.", |
| 164 | + 'apisb-intro' => "Diese Seite für Versuche mit der '''MediaWiki-API''' verwenden. |
| 165 | +Die [http://www.mediawiki.org/wiki/API Dokumentation zur API] enthält weitere Hinweise zur Nutzung der API.", |
| 166 | + 'apisb-api-disabled' => 'Die API wurde auf diesem Wiki deaktiviert.', |
| 167 | + 'apisb-parameters' => 'Parameter', |
| 168 | + 'apisb-result' => 'Ergebnis', |
| 169 | + 'apisb-request-url' => 'Anforderungs-URL:', |
| 170 | + 'apisb-request-post' => 'POST-Daten:', |
| 171 | + 'apisb-select-action' => 'Vorgang auswählen', |
| 172 | + 'apisb-select-query' => 'Was soll abgefragt werden?', |
| 173 | + 'apisb-select-value' => 'Wert auswählen', |
| 174 | + 'apisb-loading' => 'Lade …', |
| 175 | + 'apisb-load-error' => 'Fehler beim Laden der API-Beschreibung', |
| 176 | + 'apisb-request-error' => 'Fehler beim Ausführen der API-Anforderung', |
| 177 | + 'apisb-namespaces-error' => 'Fehler beim Laden der Namensräume', |
| 178 | + 'apisb-ns-main' => '(Seiten)', |
| 179 | + 'apisb-submit' => 'Anfrage ausführen', |
| 180 | + 'apisb-query-prop' => 'Eigenschaften', |
| 181 | + 'apisb-query-list' => 'Listen', |
| 182 | + 'apisb-query-meta' => 'Metainformationen', |
| 183 | + 'apisb-generic-parameters' => 'Generische Parameter', |
| 184 | + 'apisb-generator-parameters' => 'Generator', |
| 185 | +); |
| 186 | + |
| 187 | +/** Greek (Ελληνικά) |
| 188 | + * @author Glavkos |
| 189 | + */ |
| 190 | +$messages['el'] = array( |
| 191 | + 'apisb-parameters' => 'Παράμετροι', |
| 192 | + 'apisb-result' => 'Αποτέλεσμα', |
| 193 | + 'apisb-request-url' => 'Αίτηση URL:', |
| 194 | + 'apisb-select-action' => 'Επιλέξτε ενέργεια', |
| 195 | + 'apisb-select-query' => 'Τι πρέπει να ρωτήσω;', |
| 196 | + 'apisb-select-value' => 'Επιλέξτε τιμή', |
| 197 | + 'apisb-loading' => 'Φόρτωση...', |
| 198 | + 'apisb-namespaces-error' => 'Σφάλμα φόρτωσης ονοματοχώρων', |
| 199 | + 'apisb-ns-main' => '(Κύρια)', |
| 200 | + 'apisb-query-prop' => 'Ιδιότητες', |
| 201 | + 'apisb-query-list' => 'Λίστες', |
| 202 | + 'apisb-query-meta' => 'Πληροφορίες Meta', |
| 203 | +); |
| 204 | + |
| 205 | +/** Esperanto (Esperanto) |
| 206 | + * @author Lucas |
| 207 | + */ |
| 208 | +$messages['eo'] = array( |
| 209 | + 'apisb-result' => 'Rezulto', |
| 210 | + 'apisb-select-action' => 'Elekti agojn', |
| 211 | + 'apisb-select-value' => 'Elekti valoron', |
| 212 | + 'apisb-loading' => 'Ŝarĝante...', |
| 213 | + 'apisb-query-prop' => 'Ecoj', |
| 214 | + 'apisb-query-list' => 'Listoj', |
| 215 | +); |
| 216 | + |
| 217 | +/** Spanish (Español) |
| 218 | + * @author Fitoschido |
| 219 | + * @author Pvgreenzebra |
| 220 | + */ |
| 221 | +$messages['es'] = array( |
| 222 | + 'apisb-desc' => 'Permite depurar llamadas a la [http://www.mediawiki.org/wiki/API API de MediaWiki] desde el navegador', |
| 223 | + 'apisb-no-js' => "'''Error ''': esta característica requiere JavaScript.", |
| 224 | + 'apisb-api-disabled' => 'La API está desactivada en este sitio.', |
| 225 | + 'apisb-parameters' => 'Parámetros', |
| 226 | + 'apisb-result' => 'Resultado', |
| 227 | + 'apisb-request-url' => 'URL solicitante:', |
| 228 | + 'apisb-request-post' => 'Datos POST:', |
| 229 | + 'apisb-select-action' => 'Selecciona acción', |
| 230 | + 'apisb-select-query' => '¿Qué consultar?', |
| 231 | + 'apisb-select-value' => 'Seleccionar valor', |
| 232 | + 'apisb-loading' => 'Cargando...', |
| 233 | + 'apisb-load-error' => 'Error al cargar la descripción de la API', |
| 234 | + 'apisb-request-error' => 'Error al realizar la solicitud de API', |
| 235 | + 'apisb-namespaces-error' => 'Error al cargar los espacios de nombres', |
| 236 | + 'apisb-ns-main' => '(Principal)', |
| 237 | + 'apisb-submit' => 'Realizar solicitud', |
| 238 | + 'apisb-query-prop' => 'Propiedades', |
| 239 | + 'apisb-query-list' => 'Listas', |
| 240 | + 'apisb-query-meta' => 'información de Meta', |
| 241 | +); |
| 242 | + |
| 243 | +/** Persian (فارسی) |
| 244 | + * @author Ebraminio |
| 245 | + * @author Leyth |
| 246 | + * @author Mjbmr |
| 247 | + */ |
| 248 | +$messages['fa'] = array( |
| 249 | + 'apisb-desc' => 'اشکالیابی فراخوانیهای [http://www.mediawiki.org/wiki/API رابط برنامهنویسی مدیاویکی] را از طریق مرورگر اجازه میدهد', |
| 250 | + 'apisandbox' => 'گودال ماسهبازی رابط برنامهنویسی', |
| 251 | + 'apisb-no-js' => "'''خطا''': این قابلیت نیازمند جاوااسکریپت است.", |
| 252 | + 'apisb-api-disabled' => 'رابط برنامهنویسی در این تارنما غیرفعال شدهاست.', |
| 253 | + 'apisb-parameters' => 'پارامترها', |
| 254 | + 'apisb-result' => 'نتیجه', |
| 255 | + 'apisb-request-url' => 'درخواست آدرس:', |
| 256 | + 'apisb-select-action' => 'انتخاب اقدامات', |
| 257 | + 'apisb-loading' => 'در حال بارگذاری…', |
| 258 | + 'apisb-load-error' => 'خطا در بارگذاری توضیحات ایپیآی', |
| 259 | + 'apisb-request-error' => 'خطا در اجرای درخواست ایپیآی', |
| 260 | + 'apisb-namespaces-error' => 'خطا در بارگذاری فضاهای نام', |
| 261 | + 'apisb-ns-main' => '(اصلی)', |
| 262 | + 'apisb-submit' => 'ایجاد درخواست', |
| 263 | + 'apisb-query-list' => 'فهرستها', |
| 264 | + 'apisb-query-meta' => 'اطلاعات متا', |
| 265 | +); |
| 266 | + |
| 267 | +/** French (Français) |
| 268 | + * @author Balzac 40 |
| 269 | + * @author Crochet.david |
| 270 | + * @author Grondin |
| 271 | + * @author Verdy p |
| 272 | + */ |
| 273 | +$messages['fr'] = array( |
| 274 | + 'apisb-desc' => 'Permet de déboguer les appels de l’[http://www.mediawiki.org/wiki/API API de MediaWiki] à partir du navigateur', |
| 275 | + 'apisandbox' => 'Bac à sable API', |
| 276 | + 'apisb-no-js' => "''' Erreur ''': cette fonctionnalité nécessite JavaScript.", |
| 277 | + 'apisb-intro' => "Utilisez cette page pour expérimenter '''MediaWiki API'''. |
| 278 | +Reportez-vous sur [http://www.mediawiki.org/wiki/API la documentation de l’API] pour plus de détails sur l’utilisation de l’API.", |
| 279 | + 'apisb-api-disabled' => 'API est désactivé sur ce site.', |
| 280 | + 'apisb-parameters' => 'Paramètres', |
| 281 | + 'apisb-result' => 'Résultat', |
| 282 | + 'apisb-request-url' => 'Requête URL :', |
| 283 | + 'apisb-request-post' => 'données POST :', |
| 284 | + 'apisb-select-action' => 'Sélectionner une action', |
| 285 | + 'apisb-select-query' => 'Que faut-il interroger ?', |
| 286 | + 'apisb-select-value' => 'Sélectionnez la valeur', |
| 287 | + 'apisb-loading' => 'Chargement...', |
| 288 | + 'apisb-load-error' => 'Erreur lors du chargement de description de l’API', |
| 289 | + 'apisb-request-error' => "Erreur lors de l'exécution d'une requête API", |
| 290 | + 'apisb-namespaces-error' => 'Erreur lors du chargement des espaces de noms', |
| 291 | + 'apisb-ns-main' => '(Principal)', |
| 292 | + 'apisb-submit' => 'Faire la demande', |
| 293 | + 'apisb-query-prop' => 'Propriétés', |
| 294 | + 'apisb-query-list' => 'Listes', |
| 295 | + 'apisb-query-meta' => 'Méta-information', |
| 296 | + 'apisb-generic-parameters' => 'Paramètres génériques', |
| 297 | + 'apisb-generator-parameters' => 'Générateur', |
| 298 | +); |
| 299 | + |
| 300 | +/** Franco-Provençal (Arpetan) |
| 301 | + * @author ChrisPtDe |
| 302 | + */ |
| 303 | +$messages['frp'] = array( |
| 304 | + 'apisb-desc' => 'Pèrmèt d’èliminar les cofieries des apèls de l’[http://www.mediawiki.org/wiki/API API de MediaWiki] dês lo navigator.', |
| 305 | + 'apisandbox' => 'Bouèta de sabla API', |
| 306 | + 'apisb-no-js' => "'''Èrror :''' cela fonccionalitât at fôta de JavaScript.", |
| 307 | + 'apisb-intro' => "Utilisâd ceta pâge por èxpèrimentar avouéc '''MediaWiki API'''. |
| 308 | +Reportâd-vos sur [http://www.mediawiki.org/wiki/API la documentacion de l’API] por més de dètalys sur l’usâjo de l’API.", |
| 309 | + 'apisb-api-disabled' => 'API est dèsactivâ sur ceti seto.', |
| 310 | + 'apisb-parameters' => 'Paramètres', |
| 311 | + 'apisb-result' => 'Rèsultat', |
| 312 | + 'apisb-request-url' => 'Requéta URL :', |
| 313 | + 'apisb-request-post' => 'Balyês POST :', |
| 314 | + 'apisb-select-action' => 'Chouèsir una accion', |
| 315 | + 'apisb-select-query' => 'Que fôt-o entèrrogiér ?', |
| 316 | + 'apisb-select-value' => 'Chouèsir la valor', |
| 317 | + 'apisb-loading' => 'Chargement...', |
| 318 | + 'apisb-load-error' => 'Èrror pendent lo chargement de la dèscripcion de l’API', |
| 319 | + 'apisb-request-error' => 'Èrror pendent l’ègzécucion d’una requéta API', |
| 320 | + 'apisb-namespaces-error' => 'Èrror pendent lo chargement des èspâços de noms', |
| 321 | + 'apisb-ns-main' => '(Principâl)', |
| 322 | + 'apisb-submit' => 'Fâre la demanda', |
| 323 | + 'apisb-query-prop' => 'Propriètâts', |
| 324 | + 'apisb-query-list' => 'Listes', |
| 325 | + 'apisb-query-meta' => 'Mèta-enformacions', |
| 326 | + 'apisb-generic-parameters' => 'Paramètres g·ènèricos', |
| 327 | + 'apisb-generator-parameters' => 'G·ènèrator', |
| 328 | +); |
| 329 | + |
| 330 | +/** Galician (Galego) |
| 331 | + * @author Toliño |
| 332 | + */ |
| 333 | +$messages['gl'] = array( |
| 334 | + 'apisb-desc' => 'Permite a depuración das chamadas da [http://www.mediawiki.org/wiki/API API de MediaWiki] desde o navegador', |
| 335 | + 'apisandbox' => 'Zona de probas API', |
| 336 | + 'apisb-no-js' => "'''Error''': Esta característica necesita JavaScript.", |
| 337 | + 'apisb-intro' => "Use esta páxina para experimentar coa '''API de MediaWiki'''. |
| 338 | +Consulte a [http://www.mediawiki.org/wiki/API documentación da API] para obter máis información sobre o uso da API.", |
| 339 | + 'apisb-api-disabled' => 'API está desactivado neste sitio.', |
| 340 | + 'apisb-parameters' => 'Parámetros', |
| 341 | + 'apisb-result' => 'Resultado', |
| 342 | + 'apisb-request-url' => 'URL da solicitude:', |
| 343 | + 'apisb-request-post' => 'Datos POST:', |
| 344 | + 'apisb-select-action' => 'Seleccionar unha acción', |
| 345 | + 'apisb-select-query' => 'Que quere consultar?', |
| 346 | + 'apisb-select-value' => 'Seleccione o valor', |
| 347 | + 'apisb-loading' => 'Cargando...', |
| 348 | + 'apisb-load-error' => 'Erro ao cargar a descrición API', |
| 349 | + 'apisb-request-error' => 'Erro ao executar a solicitude API', |
| 350 | + 'apisb-namespaces-error' => 'Erro ao cargar o espazo de nomes', |
| 351 | + 'apisb-ns-main' => '(Principal)', |
| 352 | + 'apisb-submit' => 'Facer a solicitude', |
| 353 | + 'apisb-query-prop' => 'Propiedades', |
| 354 | + 'apisb-query-list' => 'Listas', |
| 355 | + 'apisb-query-meta' => 'Metainformación', |
| 356 | + 'apisb-generic-parameters' => 'Parámetros xenéricos', |
| 357 | + 'apisb-generator-parameters' => 'Xerador', |
| 358 | +); |
| 359 | + |
| 360 | +/** Hebrew (עברית) |
| 361 | + * @author Deror avi |
| 362 | + */ |
| 363 | +$messages['he'] = array( |
| 364 | + 'apisb-parameters' => 'פרמטרים', |
| 365 | + 'apisb-result' => 'תוצאה', |
| 366 | + 'apisb-request-url' => 'כתובת ה-URL של הבקשה:', |
| 367 | + 'apisb-select-action' => 'בחירת פעולה', |
| 368 | + 'apisb-select-query' => 'מהי השאילתה?', |
| 369 | + 'apisb-select-value' => 'בחירת ערך', |
| 370 | + 'apisb-loading' => 'בטעינה...', |
| 371 | + 'apisb-load-error' => 'שגיאה בטעינת תיאור API', |
| 372 | + 'apisb-request-error' => 'שגיעה בביצוע בקשת API', |
| 373 | + 'apisb-namespaces-error' => 'שגיעה בטעינת שם מתחם', |
| 374 | + 'apisb-ns-main' => '(ראשי)', |
| 375 | + 'apisb-submit' => 'ביצוע שאילתה', |
| 376 | + 'apisb-query-prop' => 'מאפיינים', |
| 377 | + 'apisb-query-list' => 'רשימות', |
| 378 | + 'apisb-query-meta' => 'מידע נוסף', |
| 379 | + 'apisb-generic-parameters' => 'פרמטרים כלליים', |
| 380 | + 'apisb-generator-parameters' => 'מחולל', |
| 381 | +); |
| 382 | + |
| 383 | +/** Upper Sorbian (Hornjoserbsce) |
| 384 | + * @author Michawiki |
| 385 | + */ |
| 386 | +$messages['hsb'] = array( |
| 387 | + 'apisandbox' => 'API-hrajkanišćo', |
| 388 | + 'apisb-no-js' => "'''Zmylk''': tuta funkcija sej JavaScript wužaduje.", |
| 389 | + 'apisb-intro' => "Wužij tutu stronu, zo by z '''Mediawiki API''' eksperimentował. |
| 390 | +Hlej [http://www.mediawiki.org/wiki/API API-dokumentaciju] za dalše podrobnosće za wužiwanje API.", |
| 391 | + 'apisb-api-disabled' => 'API je so na tutym sydle znjemóžnił.', |
| 392 | + 'apisb-parameters' => 'Parametry', |
| 393 | + 'apisb-result' => 'Wuslědk', |
| 394 | + 'apisb-select-value' => 'Hódnotu wubrać', |
| 395 | +); |
| 396 | + |
| 397 | +/** Hungarian (Magyar) |
| 398 | + * @author Dj |
| 399 | + */ |
| 400 | +$messages['hu'] = array( |
| 401 | + 'apisb-desc' => 'Lehetőséget biztosít az [http://www.mediawiki.org/wiki/API MediaWiki API] hívások nyomkövetésére a böngészőből', |
| 402 | + 'apisandbox' => 'API homokozó', |
| 403 | + 'apisb-no-js' => "'''Hiba''': ehhez a szolgáltatáshoz JavaScript szükséges.", |
| 404 | + 'apisb-intro' => "Használd ezt az oldalt '''MediaWiki API''' kísérletezésekre. |
| 405 | +Az API használatának további részletei az [http://www.mediawiki.org/wiki/API the API dokumentációnál] található.", |
| 406 | + 'apisb-api-disabled' => 'API le van tiltva ezen az oldalon.', |
| 407 | + 'apisb-parameters' => 'Paraméterek', |
| 408 | + 'apisb-result' => 'Eredmény', |
| 409 | + 'apisb-request-url' => 'Kérő URL:', |
| 410 | + 'apisb-request-post' => 'POST adat:', |
| 411 | + 'apisb-select-action' => 'Műveletek kiválasztása', |
| 412 | + 'apisb-select-query' => 'Mi a lekérdezés?', |
| 413 | + 'apisb-select-value' => 'Válassz értéket', |
| 414 | + 'apisb-loading' => 'Betöltés…', |
| 415 | + 'apisb-load-error' => 'Hiba a API leírás betöltésekor', |
| 416 | + 'apisb-request-error' => 'Hiba az API kérés végrehajtásakor', |
| 417 | + 'apisb-namespaces-error' => 'Hiba a névtér betöltése során', |
| 418 | + 'apisb-ns-main' => '(Fő)', |
| 419 | + 'apisb-submit' => 'Kérés végrehajtása', |
| 420 | + 'apisb-query-prop' => 'Tulajdonságok', |
| 421 | + 'apisb-query-list' => 'Listák', |
| 422 | + 'apisb-query-meta' => 'Metaadatok', |
| 423 | + 'apisb-generic-parameters' => 'Általános paraméterek', |
| 424 | + 'apisb-generator-parameters' => 'Generátor', |
| 425 | +); |
| 426 | + |
| 427 | +/** Interlingua (Interlingua) |
| 428 | + * @author McDutchie |
| 429 | + */ |
| 430 | +$messages['ia'] = array( |
| 431 | + 'apisb-desc' => 'Permitte cercar defectos in appellos del [http://www.mediawiki.org/wiki/API API de MediaWiki] ab le navigator del web', |
| 432 | + 'apisandbox' => 'Cassa de sablo pro API', |
| 433 | + 'apisb-no-js' => "'''Error''': iste function require JavaScript.", |
| 434 | + 'apisb-intro' => "Usa iste pagina pro experimentar con le '''API de MediaWiki'''. |
| 435 | +Consulta [http://www.mediawiki.org/wiki/API le documentation del API] pro ulterior detalios concernente le uso del API.", |
| 436 | + 'apisb-api-disabled' => 'Le API ha essite disactivate in iste sito.', |
| 437 | + 'apisb-parameters' => 'Parametros', |
| 438 | + 'apisb-result' => 'Resultato', |
| 439 | + 'apisb-request-url' => 'URL de requesta:', |
| 440 | + 'apisb-request-post' => 'Datos POST:', |
| 441 | + 'apisb-select-action' => 'Selige action', |
| 442 | + 'apisb-select-query' => 'Que consultar?', |
| 443 | + 'apisb-select-value' => 'Selige valor', |
| 444 | + 'apisb-loading' => 'Cargamento…', |
| 445 | + 'apisb-load-error' => 'Error durante le cargamento del description del API', |
| 446 | + 'apisb-request-error' => 'Error durante le execution del requesta al API', |
| 447 | + 'apisb-namespaces-error' => 'Error durante le cargamento del spatios de nomines', |
| 448 | + 'apisb-ns-main' => '(Principal)', |
| 449 | + 'apisb-submit' => 'Facer requesta', |
| 450 | + 'apisb-query-prop' => 'Proprietates', |
| 451 | + 'apisb-query-list' => 'Listas', |
| 452 | + 'apisb-query-meta' => 'Metainformationes', |
| 453 | + 'apisb-generic-parameters' => 'Parametros generic', |
| 454 | + 'apisb-generator-parameters' => 'Generator', |
| 455 | +); |
| 456 | + |
| 457 | +/** Indonesian (Bahasa Indonesia) |
| 458 | + * @author IvanLanin |
| 459 | + */ |
| 460 | +$messages['id'] = array( |
| 461 | + 'apisb-desc' => 'Menyediakan fasilitas debug untuk pemanggilan [http://www.mediawiki.org/wiki/API API MediaWiki] dari peramban', |
| 462 | + 'apisandbox' => 'Bak pasir API', |
| 463 | + 'apisb-no-js' => "'''Galat''': fitur ini memerlukan JavaScript.", |
| 464 | + 'apisb-intro' => "Gunakan halaman ini untuk bereksperimen dengan '''MediaWiki API'''. |
| 465 | +Lihat [http://www.mediawiki.org/wiki/API dokumentasi API] untuk perincian lanjut penggunaan API.", |
| 466 | + 'apisb-api-disabled' => 'API dinonaktifkan pada situs ini.', |
| 467 | + 'apisb-parameters' => 'Parameter', |
| 468 | + 'apisb-result' => 'Hasil', |
| 469 | + 'apisb-request-url' => 'URL Permintaan:', |
| 470 | + 'apisb-request-post' => 'Data POST:', |
| 471 | + 'apisb-select-action' => 'Pilih tindakan', |
| 472 | + 'apisb-select-query' => 'Pilih permintaan', |
| 473 | + 'apisb-select-value' => 'Pilih nilai', |
| 474 | + 'apisb-loading' => 'Memuat...', |
| 475 | + 'apisb-load-error' => 'Galat sewaktu memuat deskripsi API', |
| 476 | + 'apisb-request-error' => 'Galat sewaktu melakukan permintaan API', |
| 477 | + 'apisb-namespaces-error' => 'Galat sewaktu memuat ruang nama', |
| 478 | + 'apisb-ns-main' => '(Utama)', |
| 479 | + 'apisb-submit' => 'Kirim permintaan', |
| 480 | + 'apisb-query-prop' => 'Properti', |
| 481 | + 'apisb-query-list' => 'Daftar', |
| 482 | + 'apisb-query-meta' => 'Informasi meta', |
| 483 | +); |
| 484 | + |
| 485 | +/** Italian (Italiano) |
| 486 | + * @author Beta16 |
| 487 | + * @author Gianfranco |
| 488 | + * @author Rippitippi |
| 489 | + */ |
| 490 | +$messages['it'] = array( |
| 491 | + 'apisb-desc' => 'Permette di eseguire il debug delle chiamate [http://www.mediawiki.org/wiki/API MediaWiki API] dal browser', |
| 492 | + 'apisandbox' => 'Sandbox API', |
| 493 | + 'apisb-no-js' => "'''Errore''': questa funzione richiede JavaScript.", |
| 494 | + 'apisb-intro' => "Utilizza questa pagina per sperimentare con '''MediaWiki API'''. |
| 495 | +Per ulteriori dettagli di utilizzo delle API, fai riferimento alla [http://www.mediawiki.org/wiki/API documentazione API].", |
| 496 | + 'apisb-api-disabled' => 'Le funzionalità API sono disabilitate su questo sito.', |
| 497 | + 'apisb-parameters' => 'Parametri', |
| 498 | + 'apisb-result' => 'Risultato', |
| 499 | + 'apisb-select-action' => 'Seleziona azione', |
| 500 | + 'apisb-select-value' => 'Selezionare il valore', |
| 501 | + 'apisb-loading' => 'Caricamento in corso ...', |
| 502 | + 'apisb-ns-main' => '(Principale)', |
| 503 | + 'apisb-query-prop' => 'Proprietà', |
| 504 | + 'apisb-query-list' => 'Liste', |
| 505 | +); |
| 506 | + |
| 507 | +/** Colognian (Ripoarisch) |
| 508 | + * @author Purodha |
| 509 | + */ |
| 510 | +$messages['ksh'] = array( |
| 511 | + 'apisb-desc' => 'Hellef noh Fähler ze söhke bei [http://www.mediawiki.org/wiki/API MediaWiki <i lang="en">API</i>] Oprohfe uss_em Brauser.', |
| 512 | + 'apisb-parameters' => 'Parrameetere', |
| 513 | + 'apisb-result' => 'Erus jekumme es', |
| 514 | + 'apisb-request-url' => 'Dä URL vun dä Aanfrooch:', |
| 515 | + 'apisb-query-prop' => 'Eijeschafte', |
| 516 | + 'apisb-query-list' => 'Leste', |
| 517 | +); |
| 518 | + |
| 519 | +/** Kurdish (Latin script) (Kurdî (latînî)) |
| 520 | + * @author George Animal |
| 521 | + */ |
| 522 | +$messages['ku-latn'] = array( |
| 523 | + 'apisb-parameters' => 'Parametre', |
| 524 | +); |
| 525 | + |
| 526 | +/** Luxembourgish (Lëtzebuergesch) |
| 527 | + * @author Robby |
| 528 | + */ |
| 529 | +$messages['lb'] = array( |
| 530 | + 'apisandbox' => 'API-Sandkëscht', |
| 531 | + 'apisb-no-js' => "'''Feeler''': dës Fonctioun brauch JavaScript", |
| 532 | + 'apisb-api-disabled' => 'API ass op dësem Site ausgeschalt.', |
| 533 | + 'apisb-parameters' => 'Parameteren', |
| 534 | + 'apisb-result' => 'Resultat', |
| 535 | + 'apisb-select-action' => 'Aktioun eraussichen', |
| 536 | + 'apisb-select-value' => 'Wäert eraussichen', |
| 537 | + 'apisb-loading' => 'Lueden...', |
| 538 | + 'apisb-load-error' => 'Feeler beim Luede vun der API- Beschreiwung', |
| 539 | + 'apisb-namespaces-error' => 'Feeler beim Luede vun den Nummraim', |
| 540 | + 'apisb-ns-main' => '(Haapt)', |
| 541 | + 'apisb-submit' => 'Ufro maachen', |
| 542 | + 'apisb-query-prop' => 'Eegeschaften', |
| 543 | + 'apisb-query-list' => 'Lëschten', |
| 544 | + 'apisb-query-meta' => 'Meta-Informatioun', |
| 545 | +); |
| 546 | + |
| 547 | +/** Lithuanian (Lietuvių) |
| 548 | + * @author Eitvys200 |
| 549 | + * @author Ignas693 |
| 550 | + */ |
| 551 | +$messages['lt'] = array( |
| 552 | + 'apisb-desc' => 'Leidžia derinti [MediaWiki API http://www.mediawiki.org/wiki/API] skambučių iš naršyklės', |
| 553 | + 'apisandbox' => 'API smėlio dėžės', |
| 554 | + 'apisb-no-js' => '"" Klaida "": ši funkcija reikalauja JavaScript.', |
| 555 | + 'apisb-intro' => "Naudokite šį puslapį norėdami eksperimentuoti su '''MediaWiki API \"„. |
| 556 | + Ieškokite [http://www.mediawiki.org/wiki/API API dokumentacijoje] Išsamesnės informacijos apie API naudojimo.", |
| 557 | + 'apisb-api-disabled' => 'API yra išjungtas šioje svetainėje.', |
| 558 | + 'apisb-parameters' => 'Parametrai', |
| 559 | + 'apisb-result' => 'Rezultatai', |
| 560 | + 'apisb-request-url' => 'Prašyti URL:', |
| 561 | + 'apisb-request-post' => 'POST duomenys:', |
| 562 | + 'apisb-select-action' => 'Pasirinkite veiksmą', |
| 563 | + 'apisb-select-query' => 'Ką užklausą?', |
| 564 | + 'apisb-select-value' => 'Pasirinkite vertę', |
| 565 | + 'apisb-loading' => 'Kraunasi ...', |
| 566 | + 'apisb-load-error' => 'Klaida įkeliant API aprašymas', |
| 567 | + 'apisb-request-error' => 'Klaida scenos API prašymą', |
| 568 | + 'apisb-namespaces-error' => 'Klaida pakrovimo vardų sritys', |
| 569 | + 'apisb-ns-main' => '(Pagrindinė)', |
| 570 | + 'apisb-submit' => 'Pateikti prašymą', |
| 571 | + 'apisb-query-prop' => 'Nusttymai', |
| 572 | + 'apisb-query-list' => 'Sąrašai', |
| 573 | + 'apisb-query-meta' => 'Meta informacija', |
| 574 | + 'apisb-generator-parameters' => 'Generatorius', |
| 575 | +); |
| 576 | + |
| 577 | +/** Macedonian (Македонски) |
| 578 | + * @author Bjankuloski06 |
| 579 | + */ |
| 580 | +$messages['mk'] = array( |
| 581 | + 'apisb-desc' => 'Овозможува отстранување на грешки во повикувањата на [http://www.mediawiki.org/wiki/API?uselang=mk посредникот за програмирање на прилози (API) на МедијаВики] од прелистувачот', |
| 582 | + 'apisandbox' => 'API-песочница', |
| 583 | + 'apisb-no-js' => "'''Грешка''': оваа функција бара JavaScript.", |
| 584 | + 'apisb-intro' => "На оваа страница можете да експериментирате со '''API на МедијаВики'''. |
| 585 | + Повеќе напатствија за користење ќе најдете на [http://www.mediawiki.org/wiki/API?uselang=mk документацијата на API].", |
| 586 | + 'apisb-api-disabled' => 'API е оневозможен на ова мрежно место.', |
| 587 | + 'apisb-parameters' => 'Параметри', |
| 588 | + 'apisb-result' => 'Извод', |
| 589 | + 'apisb-request-url' => 'URL на барањето:', |
| 590 | + 'apisb-request-post' => 'POST-податоци:', |
| 591 | + 'apisb-select-action' => 'Одберете дејство', |
| 592 | + 'apisb-select-query' => 'Што да барам?', |
| 593 | + 'apisb-select-value' => 'Одберете вредност', |
| 594 | + 'apisb-loading' => 'Вчитувам...', |
| 595 | + 'apisb-load-error' => 'Грешка при вчитувањето на описот на API', |
| 596 | + 'apisb-request-error' => 'Грешка при извршувањето на барањето од API', |
| 597 | + 'apisb-namespaces-error' => 'Грешка при вчитувањето на именските простори', |
| 598 | + 'apisb-ns-main' => '(Главен)', |
| 599 | + 'apisb-submit' => 'Постави барање', |
| 600 | + 'apisb-query-prop' => 'Својства', |
| 601 | + 'apisb-query-list' => 'Списоци', |
| 602 | + 'apisb-query-meta' => 'Метаинформации', |
| 603 | + 'apisb-generic-parameters' => 'Општи параметри', |
| 604 | + 'apisb-generator-parameters' => 'Создавач', |
| 605 | +); |
| 606 | + |
| 607 | +/** Malayalam (മലയാളം) |
| 608 | + * @author Junaidpv |
| 609 | + */ |
| 610 | +$messages['ml'] = array( |
| 611 | + 'apisb-result' => 'ഫലം', |
| 612 | +); |
| 613 | + |
| 614 | +/** Malay (Bahasa Melayu) |
| 615 | + * @author Anakmalaysia |
| 616 | + */ |
| 617 | +$messages['ms'] = array( |
| 618 | + 'apisb-desc' => 'Membolehkan penyahpepijatan panggilan [http://www.mediawiki.org/wiki/API MediaWiki API] dari pelayar', |
| 619 | + 'apisandbox' => 'Kotak pasir API', |
| 620 | + 'apisb-no-js' => "'''Perhatian''': ciri ini memerlukan JavaScript.", |
| 621 | + 'apisb-intro' => "Gunakan laman ini untuk bereksperimen dengan '''MediaWiki API'''. |
| 622 | + Rujuk [http://www.mediawiki.org/wiki/API dokumentasi API] untuk keterangan lanjut tentang penggunaan API.", |
| 623 | + 'apisb-api-disabled' => 'API dimatikan di tapak web ini.', |
| 624 | + 'apisb-parameters' => 'Parameter', |
| 625 | + 'apisb-result' => 'Hasil', |
| 626 | + 'apisb-request-url' => 'URL permohonan:', |
| 627 | + 'apisb-request-post' => 'Data POST:', |
| 628 | + 'apisb-select-action' => 'Pilih tindakan', |
| 629 | + 'apisb-select-query' => 'Apa untuk ditanya?', |
| 630 | + 'apisb-select-value' => 'Pilih nilai', |
| 631 | + 'apisb-loading' => 'Memuatkan...', |
| 632 | + 'apisb-load-error' => 'Ralat ketika memuatkan keterangan API', |
| 633 | + 'apisb-request-error' => 'Ralat ketika melakukan permohonan API', |
| 634 | + 'apisb-namespaces-error' => 'Ralat ketika memuatkan ruang nama', |
| 635 | + 'apisb-ns-main' => '(Utama)', |
| 636 | + 'apisb-submit' => 'Buat permintaan', |
| 637 | + 'apisb-query-prop' => 'Sifat', |
| 638 | + 'apisb-query-list' => 'Senarai', |
| 639 | + 'apisb-query-meta' => 'Maklumat meta', |
| 640 | + 'apisb-generic-parameters' => 'Parameter am', |
| 641 | + 'apisb-generator-parameters' => 'Penjana', |
| 642 | +); |
| 643 | + |
| 644 | +/** Dutch (Nederlands) |
| 645 | + * @author SPQRobin |
| 646 | + * @author Siebrand |
| 647 | + */ |
| 648 | +$messages['nl'] = array( |
| 649 | + 'apisb-desc' => 'Maakt het mogelijk om [http://www.mediawiki.org/wiki/API API-verzoeken voor MediaWiki] vanuit een browser te debuggen', |
| 650 | + 'apisandbox' => 'API-zandbak', |
| 651 | + 'apisb-no-js' => "'''Fout''': deze functie vereist JavaScript.", |
| 652 | + 'apisb-intro' => "Gebruik deze pagina om te experimenteren met de '''MediaWiki API'''. |
| 653 | +Zie de [http://www.mediawiki.org/wiki/API API-documentatie] voor verdere details over het gebruik van de API.", |
| 654 | + 'apisb-api-disabled' => 'API is uitgeschakeld op deze site.', |
| 655 | + 'apisb-parameters' => 'Parameters', |
| 656 | + 'apisb-result' => 'Resultaat', |
| 657 | + 'apisb-request-url' => 'Verzoek-URL:', |
| 658 | + 'apisb-request-post' => 'POST-gegevens:', |
| 659 | + 'apisb-select-action' => 'Handeling selecteren', |
| 660 | + 'apisb-select-query' => 'Wat is uw vraag?', |
| 661 | + 'apisb-select-value' => 'Selecteer waarde', |
| 662 | + 'apisb-loading' => 'Bezig met laden…', |
| 663 | + 'apisb-load-error' => 'Fout bij het laden van de API-beschrijving', |
| 664 | + 'apisb-request-error' => 'Fout bij het uitvoeren van het API-verzoek', |
| 665 | + 'apisb-namespaces-error' => 'Fout laden bij het laden van de naamruimten', |
| 666 | + 'apisb-ns-main' => '(Hoofdnaamruimte)', |
| 667 | + 'apisb-submit' => 'Verzoek uitvoeren', |
| 668 | + 'apisb-query-prop' => 'Eigenschappen', |
| 669 | + 'apisb-query-list' => 'Lijsten', |
| 670 | + 'apisb-query-meta' => 'Metaigegevens', |
| 671 | + 'apisb-generic-parameters' => 'Algemene parameters', |
| 672 | + 'apisb-generator-parameters' => 'Generator', |
| 673 | +); |
| 674 | + |
| 675 | +/** Norwegian (bokmål) (Norsk (bokmål)) |
| 676 | + * @author Nghtwlkr |
| 677 | + */ |
| 678 | +$messages['no'] = array( |
| 679 | + 'apisb-desc' => 'Tillater å feilsøke [http://www.mediawiki.org/wiki/API MediaWiki API]-kall fra nettleseren', |
| 680 | + 'apisandbox' => 'API-sandkasse', |
| 681 | + 'apisb-no-js' => "'''Feil''': denne funksjonen krever JavaScript.", |
| 682 | + 'apisb-intro' => "Bruk denne siden til å eksperimentere med '''MediaWiki API'''. |
| 683 | +Sjekk [http://www.mediawiki.org/wiki/API API-dokumentasjonen] for flere detaljer om bruk av API.", |
| 684 | + 'apisb-api-disabled' => 'API er deaktivert på dette nettstedet.', |
| 685 | + 'apisb-parameters' => 'Parametere', |
| 686 | + 'apisb-result' => 'Resultat', |
| 687 | + 'apisb-request-url' => 'Forespurt URL:', |
| 688 | + 'apisb-request-post' => 'POST-data:', |
| 689 | + 'apisb-select-action' => 'Velg handling', |
| 690 | + 'apisb-select-query' => 'Hva skal du spørre etter?', |
| 691 | + 'apisb-select-value' => 'Velg verdi', |
| 692 | + 'apisb-loading' => 'Laster...', |
| 693 | + 'apisb-load-error' => 'Feil under lasting av API-beskrivelse', |
| 694 | + 'apisb-request-error' => 'Feil under utføring av API-forespørsel', |
| 695 | + 'apisb-namespaces-error' => 'Feil under lasting av navnerom', |
| 696 | + 'apisb-ns-main' => '(Hoved)', |
| 697 | + 'apisb-submit' => 'Foreta en forespørsel', |
| 698 | + 'apisb-query-prop' => 'Egenskaper', |
| 699 | + 'apisb-query-list' => 'Lister', |
| 700 | + 'apisb-query-meta' => 'Metainformasjon', |
| 701 | +); |
| 702 | + |
| 703 | +/** Oriya (ଓଡ଼ିଆ) |
| 704 | + * @author Odisha1 |
| 705 | + */ |
| 706 | +$messages['or'] = array( |
| 707 | + 'apisb-ns-main' => '(ମୂଳ)', |
| 708 | +); |
| 709 | + |
| 710 | +/** Deitsch (Deitsch) |
| 711 | + * @author Xqt |
| 712 | + */ |
| 713 | +$messages['pdc'] = array( |
| 714 | + 'apisb-ns-main' => '(Bledder)', |
| 715 | +); |
| 716 | + |
| 717 | +/** Polish (Polski) |
| 718 | + * @author Sp5uhe |
| 719 | + * @author Woytecr |
| 720 | + */ |
| 721 | +$messages['pl'] = array( |
| 722 | + 'apisb-no-js' => "'''Błąd''' – ta funkcja wymaga JavaScript.", |
| 723 | + 'apisb-parameters' => 'Parametry', |
| 724 | + 'apisb-result' => 'Rezultat', |
| 725 | + 'apisb-request-url' => 'Żądanie URL:', |
| 726 | + 'apisb-request-post' => 'Dane POST:', |
| 727 | + 'apisb-select-action' => 'Wybierz działanie', |
| 728 | + 'apisb-select-value' => 'Wybierz wartość', |
| 729 | + 'apisb-loading' => 'Trwa ładowanie…', |
| 730 | + 'apisb-ns-main' => '(główna)', |
| 731 | + 'apisb-submit' => 'Wykonaj żądanie', |
| 732 | + 'apisb-query-prop' => 'Właściwości', |
| 733 | + 'apisb-query-list' => 'Listy', |
| 734 | + 'apisb-query-meta' => 'Matainformacje', |
| 735 | +); |
| 736 | + |
| 737 | +/** Portuguese (Português) |
| 738 | + * @author Hamilton Abreu |
| 739 | + */ |
| 740 | +$messages['pt'] = array( |
| 741 | + 'apisb-desc' => 'Permite depurar chamadas à [http://www.mediawiki.org/wiki/API API do MediaWiki] a partir do browser', |
| 742 | + 'apisandbox' => 'Testes da API', |
| 743 | + 'apisb-no-js' => "'''Erro''': Esta funcionalidade requer o JavaScript.", |
| 744 | + 'apisb-intro' => "Use esta página para fazer experiências com a '''API do MediaWiki'''. |
| 745 | +Consulte a [http://www.mediawiki.org/wiki/API documentação da API] para informações sobre o uso da API.", |
| 746 | + 'apisb-api-disabled' => 'A API está desactivada neste site.', |
| 747 | + 'apisb-parameters' => 'Parâmetros', |
| 748 | + 'apisb-result' => 'Resultado', |
| 749 | + 'apisb-request-url' => 'URL do pedido:', |
| 750 | + 'apisb-request-post' => 'Dados POST:', |
| 751 | + 'apisb-select-action' => 'Seleccionar acção', |
| 752 | + 'apisb-select-query' => 'O que pretende consultar?', |
| 753 | + 'apisb-select-value' => 'Seleccionar o valor', |
| 754 | + 'apisb-loading' => 'A carregar…', |
| 755 | + 'apisb-load-error' => 'Erro ao carregar a descrição da API', |
| 756 | + 'apisb-request-error' => 'Erro ao executar o pedido da API', |
| 757 | + 'apisb-namespaces-error' => 'Erro ao carregar os espaços nominais', |
| 758 | + 'apisb-ns-main' => '(Principal)', |
| 759 | + 'apisb-submit' => 'Fazer o pedido', |
| 760 | + 'apisb-query-prop' => 'Propriedades', |
| 761 | + 'apisb-query-list' => 'Listas', |
| 762 | + 'apisb-query-meta' => 'Meta informação', |
| 763 | +); |
| 764 | + |
| 765 | +/** Brazilian Portuguese (Português do Brasil) |
| 766 | + * @author Giro720 |
| 767 | + */ |
| 768 | +$messages['pt-br'] = array( |
| 769 | + 'apisb-desc' => 'Permite depurar chamadas do [http://www.mediawiki.org/wiki/API API do MediaWiki] a partir do navegador', |
| 770 | +); |
| 771 | + |
| 772 | +/** Tarandíne (Tarandíne) |
| 773 | + * @author Joetaras |
| 774 | + */ |
| 775 | +$messages['roa-tara'] = array( |
| 776 | + 'apisb-parameters' => 'Parametre', |
| 777 | + 'apisb-result' => 'Resultate', |
| 778 | + 'apisb-select-action' => "Scacchie l'azione", |
| 779 | + 'apisb-select-value' => "Scacchie 'nu valore", |
| 780 | + 'apisb-loading' => 'Stoche a careche…', |
| 781 | + 'apisb-ns-main' => '(Prengepàle)', |
| 782 | + 'apisb-submit' => "Fà 'na richieste", |
| 783 | + 'apisb-query-prop' => 'probbietà', |
| 784 | + 'apisb-query-list' => 'Elenghe', |
| 785 | +); |
| 786 | + |
| 787 | +/** Russian (Русский) |
| 788 | + * @author DCamer |
| 789 | + * @author KorneySan |
| 790 | + * @author Александр Сигачёв |
| 791 | + */ |
| 792 | +$messages['ru'] = array( |
| 793 | + 'apisb-desc' => 'Позволяет отлаживать вызовы [http://www.mediawiki.org/wiki/API MediaWiki API] из браузера', |
| 794 | + 'apisandbox' => 'Песочница API', |
| 795 | + 'apisb-no-js' => "'''Ошибка''': эта возможность требует JavaScript.", |
| 796 | + 'apisb-intro' => "Используйте эту страницу для экспериментов с '''MediaWiki API'''. |
| 797 | +Обратитесь к [http://www.mediawiki.org/wiki/API документации API] для получения дополнительной информации об использовании API.", |
| 798 | + 'apisb-api-disabled' => 'API отключен на этом сайте.', |
| 799 | + 'apisb-parameters' => 'Параметры', |
| 800 | + 'apisb-result' => 'Результат', |
| 801 | + 'apisb-request-url' => 'URL-адрес запроса:', |
| 802 | + 'apisb-request-post' => 'POST данные:', |
| 803 | + 'apisb-select-action' => 'Выберите действие', |
| 804 | + 'apisb-select-query' => 'Что запросить?', |
| 805 | + 'apisb-select-value' => 'Выберите значение', |
| 806 | + 'apisb-loading' => 'Загрузка…', |
| 807 | + 'apisb-load-error' => 'Ошибка при загрузке описания API', |
| 808 | + 'apisb-request-error' => 'Ошибка выполнения запроса API', |
| 809 | + 'apisb-namespaces-error' => 'Ошибка при загрузке пространств имен', |
| 810 | + 'apisb-ns-main' => '(Основная)', |
| 811 | + 'apisb-submit' => 'Сделать запрос', |
| 812 | + 'apisb-query-prop' => 'Свойства', |
| 813 | + 'apisb-query-list' => 'Списки', |
| 814 | + 'apisb-query-meta' => 'Мета-информация', |
| 815 | + 'apisb-generic-parameters' => 'Общие параметры', |
| 816 | + 'apisb-generator-parameters' => 'Генератор', |
| 817 | +); |
| 818 | + |
| 819 | +/** Slovak (Slovenčina) |
| 820 | + * @author Helix84 |
| 821 | + */ |
| 822 | +$messages['sk'] = array( |
| 823 | + 'apisandbox' => 'API pieskovisko', |
| 824 | + 'apisb-parameters' => 'Parametre', |
| 825 | + 'apisb-result' => 'Výsledok', |
| 826 | + 'apisb-request-url' => 'URL požiadavky:', |
| 827 | + 'apisb-request-post' => 'Údaje POST:', |
| 828 | + 'apisb-select-action' => 'Vyberte operáciu', |
| 829 | + 'apisb-select-query' => 'Požiadavku na čo?', |
| 830 | + 'apisb-select-value' => 'Vyberte hodnotu', |
| 831 | + 'apisb-loading' => 'Načítava sa...', |
| 832 | + 'apisb-ns-main' => '(Hlavné)', |
| 833 | + 'apisb-submit' => 'Podať žiadosť', |
| 834 | + 'apisb-query-prop' => 'Vlastnosti', |
| 835 | + 'apisb-query-list' => 'Zoznamy', |
| 836 | + 'apisb-query-meta' => 'Metainformácie', |
| 837 | +); |
| 838 | + |
| 839 | +/** Slovenian (Slovenščina) |
| 840 | + * @author Dbc334 |
| 841 | + */ |
| 842 | +$messages['sl'] = array( |
| 843 | + 'apisb-desc' => 'Omogoča popravljanje napak klicev [http://www.mediawiki.org/wiki/API MediaWiki API] iz brskalnika', |
| 844 | + 'apisandbox' => 'Peskovnik API', |
| 845 | + 'apisb-no-js' => "'''Napaka''': funkcija potrebuje JavaScript.", |
| 846 | + 'apisb-intro' => "Uporabite to stran za preizkušanje '''MediaWiki API'''. |
| 847 | + Oglejte si [http://www.mediawiki.org/wiki/API dokumentacijo API] za nadaljnje podrobnosti uporabe API.", |
| 848 | + 'apisb-api-disabled' => 'API je onemogočen na tej spletni strani.', |
| 849 | + 'apisb-parameters' => 'Parametri', |
| 850 | + 'apisb-result' => 'Rezultat', |
| 851 | + 'apisb-request-url' => 'URL zahteve:', |
| 852 | + 'apisb-request-post' => 'Podatki POST:', |
| 853 | + 'apisb-select-action' => 'Izberite dejanje', |
| 854 | + 'apisb-select-query' => 'Kaj naj poizvem?', |
| 855 | + 'apisb-select-value' => 'Izberite vrednost', |
| 856 | + 'apisb-loading' => 'Nalaganje ...', |
| 857 | + 'apisb-load-error' => 'Napaka pri nalaganju opisa API', |
| 858 | + 'apisb-request-error' => 'Napak pri izvajanju zahteve API', |
| 859 | + 'apisb-namespaces-error' => 'Napaka pri nalaganju imenskih prostorov', |
| 860 | + 'apisb-ns-main' => '(Osnovno)', |
| 861 | + 'apisb-submit' => 'Izvedi zahtevo', |
| 862 | + 'apisb-query-prop' => 'Lastnosti', |
| 863 | + 'apisb-query-list' => 'Seznami', |
| 864 | + 'apisb-query-meta' => 'Metapodatki', |
| 865 | + 'apisb-generic-parameters' => 'Generični parametri', |
| 866 | + 'apisb-generator-parameters' => 'Generator', |
| 867 | +); |
| 868 | + |
| 869 | +/** Swedish (Svenska) |
| 870 | + * @author WikiPhoenix |
| 871 | + */ |
| 872 | +$messages['sv'] = array( |
| 873 | + 'apisb-desc' => 'Gör det möjligt att felsöka [http://www.mediawiki.org/wiki/API MediaWiki API]-samtal från webbläsaren', |
| 874 | + 'apisandbox' => 'API-sandlåda', |
| 875 | + 'apisb-no-js' => "'''Fel''': Denna funktion kräver JavaScript.", |
| 876 | + 'apisb-intro' => "Använd denna sida för att experimentera med '''MediaWiki API'''. |
| 877 | +Kolla på [http://www.mediawiki.org/wiki/API API-dokumentationen] för fler detaljer om API-användning.", |
| 878 | + 'apisb-api-disabled' => 'API är inaktiverat på denna webbplats.', |
| 879 | + 'apisb-parameters' => 'Parametrar', |
| 880 | + 'apisb-result' => 'Resultat', |
| 881 | + 'apisb-request-url' => 'Begär URL:', |
| 882 | + 'apisb-request-post' => 'POST-data:', |
| 883 | + 'apisb-select-action' => 'Välj handling', |
| 884 | + 'apisb-select-query' => 'Vad ska begäras?', |
| 885 | + 'apisb-select-value' => 'Välj värde', |
| 886 | + 'apisb-loading' => 'Läser in...', |
| 887 | + 'apisb-load-error' => 'Fel uppstod när API-beskrivningen skulle läsas in', |
| 888 | + 'apisb-request-error' => 'Fel uppstod när API skulle begäras', |
| 889 | + 'apisb-namespaces-error' => 'Fel uppstod när namnrymden skulle läsas in', |
| 890 | + 'apisb-ns-main' => '(Huvud)', |
| 891 | + 'apisb-submit' => 'Göra en begäran', |
| 892 | + 'apisb-query-prop' => 'Egenskaper', |
| 893 | + 'apisb-query-list' => 'Listor', |
| 894 | + 'apisb-query-meta' => 'Metainformation', |
| 895 | +); |
| 896 | + |
| 897 | +/** Telugu (తెలుగు) |
| 898 | + * @author Veeven |
| 899 | + */ |
| 900 | +$messages['te'] = array( |
| 901 | + 'apisb-parameters' => 'పరామితులు', |
| 902 | + 'apisb-result' => 'ఫలితం', |
| 903 | + 'apisb-select-action' => 'చర్యను ఎంచుకోండి', |
| 904 | + 'apisb-loading' => 'లోడవుతోంది...', |
| 905 | + 'apisb-ns-main' => '(మొదటి)', |
| 906 | + 'apisb-query-list' => 'జాబితాలు', |
| 907 | + 'apisb-query-meta' => 'మెటా సమాచారం', |
| 908 | +); |
| 909 | + |
| 910 | +/** Tagalog (Tagalog) |
| 911 | + * @author AnakngAraw |
| 912 | + */ |
| 913 | +$messages['tl'] = array( |
| 914 | + 'apisb-desc' => 'Nagpapahintulot ng pagkumpuni ng mga pagtawag ng [http://www.mediawiki.org/wiki/API MediaWiki API] mula sa pantingin-tingin', |
| 915 | + 'apisandbox' => 'Kahong buhanginan ng API', |
| 916 | + 'apisb-no-js' => "'''Kamalian''': nangangailangan ng JavaScript ang tampok na ito.", |
| 917 | + 'apisb-intro' => "Gamitin ang pahinang ito upang mag-eksperimento sa pamamagitan ng '''API ng MediaWiki'''. |
| 918 | +Sumangguni sa [http://www.mediawiki.org/wiki/API dokumentasyon ng API] para sa karagdagan pang mga detalye sa paggamit ng API.", |
| 919 | + 'apisb-api-disabled' => 'Hindi pinagagana ang API sa sityong ito.', |
| 920 | + 'apisb-parameters' => 'Mga parametro', |
| 921 | + 'apisb-result' => 'Kinalabasan', |
| 922 | + 'apisb-request-url' => 'Hilingin ang URL:', |
| 923 | + 'apisb-request-post' => 'Dato ng POST:', |
| 924 | + 'apisb-select-action' => 'Piliin ang kilos', |
| 925 | + 'apisb-select-query' => 'Ano ang itatanong?', |
| 926 | + 'apisb-select-value' => 'Piliin ang halaga', |
| 927 | + 'apisb-loading' => 'Ikinakarga...', |
| 928 | + 'apisb-load-error' => 'Kamalian sa pagkakarga ng paglalarawan ng API', |
| 929 | + 'apisb-request-error' => 'Kamalian sa pagsasagawa ng hiling ng API', |
| 930 | + 'apisb-namespaces-error' => 'Kamalian sa pagkakarga ng mga puwang ng pangalan', |
| 931 | + 'apisb-ns-main' => '(Pangunahin)', |
| 932 | + 'apisb-submit' => 'Gumawa ng kahilingan', |
| 933 | + 'apisb-query-prop' => 'Mga katangiang-ari', |
| 934 | + 'apisb-query-list' => 'Mga talaan', |
| 935 | + 'apisb-query-meta' => 'Kabatirang meta', |
| 936 | +); |
| 937 | + |
| 938 | +/** Turkish (Türkçe) |
| 939 | + * @author Emperyan |
| 940 | + */ |
| 941 | +$messages['tr'] = array( |
| 942 | + 'apisb-parameters' => 'Parametreler', |
| 943 | + 'apisb-result' => 'Sonuç', |
| 944 | + 'apisb-loading' => 'Yükleniyor...', |
| 945 | + 'apisb-ns-main' => '(Ana)', |
| 946 | + 'apisb-query-prop' => 'Özellikler', |
| 947 | + 'apisb-query-list' => 'Listeler', |
| 948 | +); |
| 949 | + |
| 950 | +/** Ukrainian (Українська) |
| 951 | + * @author Microcell |
| 952 | + * @author Sodmy |
| 953 | + */ |
| 954 | +$messages['uk'] = array( |
| 955 | + 'apisb-desc' => 'Дозволяє налагоджувати виклики [http://www.mediawiki.org/wiki/API MediaWiki API] з браузера', |
| 956 | + 'apisandbox' => 'Майданчик для тестування API', |
| 957 | + 'apisb-no-js' => "'''Помилка''': ця функція вимагає JavaScript.", |
| 958 | + 'apisb-intro' => "Ця сторінка служить для експериментування з '''MediaWiki API'''. |
| 959 | +Звертайтеся до [http://www.mediawiki.org/wiki/API документації] для докладнішої інформації про використання API.", |
| 960 | + 'apisb-api-disabled' => 'API вимкнуто на цьому сайті.', |
| 961 | + 'apisb-parameters' => 'Параметри', |
| 962 | + 'apisb-result' => 'Результат', |
| 963 | + 'apisb-request-url' => 'URL-адреса запиту:', |
| 964 | + 'apisb-request-post' => 'POST данні:', |
| 965 | + 'apisb-select-action' => 'Виберіть дію', |
| 966 | + 'apisb-select-query' => 'Що запитати?', |
| 967 | + 'apisb-select-value' => 'Оберіть значення', |
| 968 | + 'apisb-loading' => 'Завантаження...', |
| 969 | + 'apisb-load-error' => 'Помилка завантаження API опису', |
| 970 | + 'apisb-request-error' => 'Помилка виконання запиту API', |
| 971 | + 'apisb-namespaces-error' => 'Помилка завантаження простору імен', |
| 972 | + 'apisb-ns-main' => '(Основний)', |
| 973 | + 'apisb-submit' => 'Зробити запит', |
| 974 | + 'apisb-query-prop' => 'Властивості', |
| 975 | + 'apisb-query-list' => 'Списки', |
| 976 | + 'apisb-query-meta' => 'Мета-інформація', |
| 977 | + 'apisb-generic-parameters' => 'Загальні параметри', |
| 978 | + 'apisb-generator-parameters' => 'Генератор', |
| 979 | +); |
| 980 | + |
| 981 | +/** Vietnamese (Tiếng Việt) |
| 982 | + * @author Minh Nguyen |
| 983 | + * @author Trần Nguyễn Minh Huy |
| 984 | + */ |
| 985 | +$messages['vi'] = array( |
| 986 | + 'apisandbox' => 'Chỗ thử API', |
| 987 | + 'apisb-no-js' => "'''Lỗi:''' Tính năng này cần JavaScript.", |
| 988 | + 'apisb-api-disabled' => 'API đã bị vô hiệu hóa trên trang web này.', |
| 989 | + 'apisb-parameters' => 'Các tham số', |
| 990 | + 'apisb-result' => 'Kết quả', |
| 991 | + 'apisb-request-url' => 'URL của yêu cầu:', |
| 992 | + 'apisb-select-action' => 'Chọn tác vụ', |
| 993 | + 'apisb-select-value' => 'Chọn giá trị', |
| 994 | + 'apisb-loading' => 'Đang tải…', |
| 995 | + 'apisb-ns-main' => '(Chính)', |
| 996 | + 'apisb-query-prop' => 'Thuộc tính', |
| 997 | + 'apisb-query-list' => 'Danh sách', |
| 998 | + 'apisb-query-meta' => 'Siêu thông tin', |
| 999 | +); |
| 1000 | + |
| 1001 | +/** Simplified Chinese (中文(简体)) |
| 1002 | + * @author Hydra |
| 1003 | + * @author PhiLiP |
| 1004 | + * @author Xiaomingyan |
| 1005 | + */ |
| 1006 | +$messages['zh-hans'] = array( |
| 1007 | + 'apisb-desc' => '允许调试 [http://www.mediawiki.org/wiki/API MediaWiki API] 从浏览器的调用', |
| 1008 | + 'apisandbox' => 'API 沙箱', |
| 1009 | + 'apisb-no-js' => "'''错误''':此功能需要 JavaScript。", |
| 1010 | + 'apisb-api-disabled' => '此站点上禁用了 API。', |
| 1011 | + 'apisb-parameters' => '参数', |
| 1012 | + 'apisb-result' => '结果', |
| 1013 | + 'apisb-request-url' => '请求的 URL:', |
| 1014 | + 'apisb-request-post' => 'POST数据:', |
| 1015 | + 'apisb-select-action' => '选择操作', |
| 1016 | + 'apisb-select-query' => '查询又如何?', |
| 1017 | + 'apisb-select-value' => '选择值', |
| 1018 | + 'apisb-loading' => '正在载入...', |
| 1019 | + 'apisb-load-error' => '加载 API 说明时出错', |
| 1020 | + 'apisb-request-error' => '执行 API 请求时出错', |
| 1021 | + 'apisb-namespaces-error' => '载入名字空间出错', |
| 1022 | + 'apisb-ns-main' => '(主)', |
| 1023 | + 'apisb-submit' => '提出要求', |
| 1024 | + 'apisb-query-prop' => '属性', |
| 1025 | + 'apisb-query-list' => '列表', |
| 1026 | + 'apisb-query-meta' => 'Meta 信息', |
| 1027 | +); |
| 1028 | + |
Property changes on: branches/wmf/1.18wmf1/extensions/ApiSandbox/ApiSandbox.i18n.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 1029 | + native |
Index: branches/wmf/1.18wmf1/extensions/ApiSandbox/ApiSandbox.php |
— | — | @@ -0,0 +1,61 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * API sandbox extension. Initial author Max Semenik, based on idea by Salil P. A. |
| 5 | + * License: WTFPL 2.0 |
| 6 | + */ |
| 7 | +$wgExtensionCredits['other'][] = array( |
| 8 | + 'path' => __FILE__, |
| 9 | + 'name' => 'ApiSandbox', |
| 10 | + 'author' => array( 'Max Semenik' ), |
| 11 | + 'url' => 'http://mediawiki.org/wiki/Extension:ApiSandbox', |
| 12 | + 'descriptionmsg' => 'apisb-desc', |
| 13 | +); |
| 14 | + |
| 15 | +$dir = dirname(__FILE__) . '/'; |
| 16 | + |
| 17 | +$wgExtensionMessagesFiles['ApiSandbox'] = $dir . 'ApiSandbox.i18n.php'; |
| 18 | +$wgExtensionAliasesFiles['ApiSandbox'] = $dir . 'ApiSandbox.alias.php'; |
| 19 | + |
| 20 | +$wgAutoloadClasses['SpecialApiSandbox'] = $dir . 'SpecialApiSandbox.php'; |
| 21 | + |
| 22 | +$wgSpecialPages['ApiSandbox'] = 'SpecialApiSandbox'; |
| 23 | +$wgSpecialPageGroups['ApiSandbox'] = 'wiki'; |
| 24 | + |
| 25 | +$wgResourceModules['ext.apiSandbox'] = array( |
| 26 | + 'scripts' => 'ext.apiSandbox.js', |
| 27 | + 'styles' => 'ext.apiSandbox.css', |
| 28 | + 'localBasePath' => dirname( __FILE__ ), |
| 29 | + 'remoteExtPath' => 'ApiSandbox', |
| 30 | + 'messages' => array( |
| 31 | + 'apisb-loading', |
| 32 | + 'apisb-load-error', |
| 33 | + 'apisb-request-error', |
| 34 | + 'apisb-select-value', |
| 35 | + 'apisb-namespaces-error', |
| 36 | + 'apisb-ns-main', |
| 37 | + 'parentheses', |
| 38 | + ), |
| 39 | +); |
| 40 | + |
| 41 | +$wgHooks['APIGetDescription'][] = 'efASAPIGetDescription'; |
| 42 | + |
| 43 | +/** |
| 44 | + * @param $module ApiBase |
| 45 | + * @param $desc array |
| 46 | + * @return bool |
| 47 | + */ |
| 48 | +function efASAPIGetDescription( &$module, &$desc ) { |
| 49 | + if ( !$module instanceof ApiMain ) { |
| 50 | + return true; |
| 51 | + } |
| 52 | + |
| 53 | + $desc[] = 'The ApiSandbox extension is installed on this wiki, it adds a graphical interface to using the MediaWiki Api.'; |
| 54 | + $desc[] = 'It is helpful for new users, allowing request debugging without any extra tools.'; |
| 55 | + $desc[] = 'See ' . SpecialPage::getTitleFor( 'ApiSandbox' )->getFullUrl(); |
| 56 | + |
| 57 | + // Append some more whitespace for ApiMain |
| 58 | + for ( $i = 0; $i < 3; $i++ ) { |
| 59 | + $desc[] = ''; |
| 60 | + } |
| 61 | + return true; |
| 62 | +} |
Property changes on: branches/wmf/1.18wmf1/extensions/ApiSandbox/ApiSandbox.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 63 | + native |
Index: branches/wmf/1.18wmf1/extensions/ApiSandbox/ext.apiSandbox.css |
— | — | @@ -0,0 +1,38 @@ |
| 2 | +table.api-sandbox-options { |
| 3 | + width: 100%; |
| 4 | +} |
| 5 | + |
| 6 | +td.api-sandbox-label { |
| 7 | + text-align: right; |
| 8 | + width: 12em; |
| 9 | + vertical-align: top; |
| 10 | + font-family: monospace; |
| 11 | +} |
| 12 | + |
| 13 | +td.api-sandbox-result-label { |
| 14 | + width: 12em; |
| 15 | +} |
| 16 | + |
| 17 | +td.api-sandbox-value { |
| 18 | + width: 18em; |
| 19 | + vertical-align: top; |
| 20 | + overflow: auto; |
| 21 | +} |
| 22 | + |
| 23 | +table.api-sandbox-result-container { |
| 24 | + width: 100%; |
| 25 | +} |
| 26 | + |
| 27 | +#api-sandbox-input { |
| 28 | + width: 17em; |
| 29 | +} |
| 30 | + |
| 31 | +#api-sandbox-url, #api-sandbox-post { |
| 32 | + width: 100%; |
| 33 | +} |
| 34 | + |
| 35 | +#api-sandbox-output { |
| 36 | + width: 100%; |
| 37 | + height: 15em; |
| 38 | + overflow: scroll; |
| 39 | +} |
Property changes on: branches/wmf/1.18wmf1/extensions/ApiSandbox/ext.apiSandbox.css |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 40 | + native |