≥ 1.29
POST request to change the language of a page.
The following documentation is the output of Special:ApiHelp/setpagelanguage, automatically generated by the pre-release version of MediaWiki that is running on this site (MediaWiki.org).(
main|
setpagelanguage)
Change the language of a page.
Specific parameters:
Title of the page whose language you wish to change. Cannot be used together with pageid.
Page ID of the page whose language you wish to change. Cannot be used together with title.
Language code of the language to change the page to. Use default to reset the page to the wiki's default content language.
Reason for the change.
Change tags to apply to the log entry resulting from this action.
A "csrf" token retrieved from action=query&meta=tokens
Making any POST request is a multi-step process:
The sample code below covers the final step in detail.
{ "setpagelanguage": { "title": "User:Gangleri/tests/bugzilla/04917/MediaWiki:Badtitle", "oldlanguage": "en[def]", "newlanguage": "eu", "logid": 222004 } }
#!/usr/bin/python3 """ set_page_language.py MediaWiki API Demos Demo of `SetPageLanguage` module: POST request to change the language of a page MIT License """ import requests S = requests.Session() URL = "https://test.wikipedia.org/w/api.php" # Step 1: GET request to fetch login token PARAMS_0 = { "action": "query", "meta": "tokens", "type": "login", "format": "json" } R = S.get(url=URL, params=PARAMS_0) DATA = R.json() LOGIN_TOKEN = DATA['query']['tokens']['logintoken'] # Step 2: POST request to log in. Use of main account for login is not # supported. Obtain credentials via Special:BotPasswords # (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword PARAMS_1 = { "action": "login", "lgname": "bot_user_name", "lgpassword": "bot_password", "lgtoken": LOGIN_TOKEN, "format": "json" } R = S.post(URL, data=PARAMS_1) # Step 3: GET request to fetch CSRF token PARAMS_2 = { "action": "query", "meta": "tokens", "format": "json" } R = S.get(url=URL, params=PARAMS_2) DATA = R.json() CSRF_TOKEN = DATA['query']['tokens']['csrftoken'] # Step 4: POST request to change page language PARAMS_3 = { "action": "setpagelanguage", "pageid": "123", "token": CSRF_TOKEN, "format": "json", "lang": "eu" } R = S.post(URL, data=PARAMS_3) DATA = R.json() print(DATA)
<?php /* set_page_language.php MediaWiki API Demos Demo of `SetPageLanguage` module: POST request to change the language of a page MIT license */ $endPoint = "https://test.wikipedia.org/w/api.php"; $login_Token = getLoginToken(); // Step 1 loginRequest( $login_Token ); // Step 2 $csrf_Token = getCSRFToken(); // Step 3 set_page_language( $csrf_Token ); // Step 4 // Step 1: GET request to fetch login token function getLoginToken() { global $endPoint; $params1 = [ "action" => "query", "meta" => "tokens", "type" => "login", "format" => "json" ]; $url = $endPoint . "?" . http_build_query( $params1 ); $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); $output = curl_exec( $ch ); curl_close( $ch ); $result = json_decode( $output, true ); return $result["query"]["tokens"]["logintoken"]; } // Step 2: POST request to log in. Use of main account for login is not // supported. Obtain credentials via Special:BotPasswords // (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword function loginRequest( $logintoken ) { global $endPoint; $params2 = [ "action" => "login", "lgname" => "bot_user_name", "lgpassword" => "bot_password", "lgtoken" => $logintoken, "format" => "json" ]; $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $endPoint ); curl_setopt( $ch, CURLOPT_POST, true ); curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params2 ) ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); $output = curl_exec( $ch ); curl_close( $ch ); } // Step 3: GET request to fetch CSRF token function getCSRFToken() { global $endPoint; $params3 = [ "action" => "query", "meta" => "tokens", "format" => "json" ]; $url = $endPoint . "?" . http_build_query( $params3 ); $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); $output = curl_exec( $ch ); curl_close( $ch ); $result = json_decode( $output, true ); return $result["query"]["tokens"]["csrftoken"]; } // Step 4: POST request to change page language function set_page_language( $csrftoken ) { global $endPoint; $params4 = [ "action" => "setpagelanguage", "pageid" => "66400", "lang" => "es", "token" => $csrftoken, "format" => "json" ]; $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $endPoint ); curl_setopt( $ch, CURLOPT_POST, true ); curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params4 ) ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); $output = curl_exec( $ch ); curl_close( $ch ); echo ( $output ); }
/* set_page_language.js MediaWiki API Demos Demo of `SetPageLanguage` module: POST request to change the language of a page MIT license */ var request = require('request').defaults({jar: true}), url = "https://test.wikipedia.org/w/api.php"; // Step 1: GET request to fetch login token function getLoginToken() { var params_0 = { action: "query", meta: "tokens", type: "login", format: "json" }; request.get({ url: url, qs: params_0 }, function (error, res, body) { if (error) { return; } var data = JSON.parse(body); loginRequest(data.query.tokens.logintoken); }); } // Step 2: POST request to log in. // Use of main account for login is not // supported. Obtain credentials via Special:BotPasswords // (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword function loginRequest(login_token) { var params_1 = { action: "login", lgname: "bot_username", lgpassword: "bot_password", lgtoken: login_token, format: "json" }; request.post({ url: url, form: params_1 }, function (error, res, body) { if (error) { return; } getCsrfToken(); }); } // Step 3: GET request to fetch CSRF token function getCsrfToken() { var params_2 = { action: "query", meta: "tokens", format: "json" }; request.get({ url: url, qs: params_2 }, function(error, res, body) { if (error) { return; } var data = JSON.parse(body); set_page_language(data.query.tokens.csrftoken); }); } // Step 4: POST request to change page language function set_page_language(csrf_token) { var params_3 = { action: "setpagelanguage", pageid: "66400", lang: "es", token: csrf_token, format: "json" }; request.post({ url: url, form: params_3 }, function (error, res, body) { if (error) { return; } console.log(body); }); } // Start From Step 1 getLoginToken();
/* set_page_language.js MediaWiki API Demos Demo of `SetPageLanguage` module: POST request to change the language of a page MIT License */ var params = { action: 'setpagelanguage', pageid: '66400', lang: 'es', format: 'json' }, api = new mw.Api(); api.postWithToken( 'csrf', params ).done( function ( data ) { console.log( data ); } );Code Info notoken The token parameter must be set. pagelang-disabled Changing the language of a page is not allowed on this wiki. pagelang-unchanged-language The page title is already set to language lang. pagelang-db-failed The database failed to change the page language.
$wgPageLanguageUseDB = true
(see Manual:Language ).RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4