Manual:Interwiki

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Interwiki and the translation is 36% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎română • ‎suomi • ‎русский • ‎العربية • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

Gli interwiki sono collegamenti ipertestuali a pagine di altri progetti che utilizzano uno stile di link con un prefisso interno.

Gli interwiki rendono possibile fare collegamenti a pagine di (per esempio) Wikipedia, Wikibooks, Wikinews etc. o al tuo wiki-progetto in altre lingue. (Vedi Manual:Wiki familyManual:Wiki family.)

Un collegamento come [[Wikipedia:Main Page]] apparirà come questo: Wikipedia:Main Page e reindirizzerà alla Pagina principale di Wikipedia.

Interwiki ad altri progetti

Gli interwiki sono gestiti nella tabella interwikiManual:interwiki table del database MediaWiki. La lista è disponibile dalla proprietà "interwikimap" della query API siteinfoAPI:Siteinfo di meta, in altre parole api.php?action=query&meta=siteinfo&siprop=interwikimap

Attenzione Attenzione: La proprietà "interwikimap" dell'API dà risultati incorretti sui wiki che usano la interwiki cache (come i wiki di Wikimedia) precedente a MediaWiki 1.19 (Bug 19838)

Impostazione predefinita

Diversi progetti Wikimedia (e altri) sono pronti per i collegamenti interwiki per impostazione predefinita, quindi per usarli non c'è bisogno di modificare il tuo database.

I seguenti sono esempi di prefissi interwiki che sono disponibili per impostazione predefinita (è disponibile anche Wikipedia dalla versione 1.10 in poi):

prefisso URL di destinazione esempio d'uso
commons https://commons.wikimedia.org/wiki/ [[commons:MediaWiki]]
mediazilla http://bugzilla.wikimedia.org/ [[mediazilla:1209]]
meta https://meta.wikimedia.org/wiki/ [[meta:Main Page]]

L'elenco completo delle liste degli interwiki di default è disponibile a maintenance/interwiki.list

Vedere m:Help:Interwiki linking/it per informazioni più complete sul collegamento da/verso progetti Wikimedia.

In alcune installazioni nessuno di questi è pre-installato. Provare [[metawikipedia:Main Page]] in questo caso.

Aggiungere un nuovo sito web per il collegamento interwiki

  • I collegamenti interwiki sono definiti nella tabella interwiki del database.
  • Per modificarli, bisogna modificare il database, come mostrato sotto.
  • Un'altra opzione è installare un'estensione interwiki, che semplifica il processo.

[1]

Dato che Wikipedia non è configurata per impostazione predefinita prima della versione 1.10, qualcuno potrebbe volerla aggiungere (così come potrebbe voler aggioungere altri progetti).

Gli esempi qui sotto mostrano come configurare w: come un collegamento alla Wikipedia in lingua inglese.

L'idea è quella di aggiungere una riga di questo tipo:

('prefix', 'URL format string', 1, 0)

nella tabella interwiki.

Riga singola

Gli utenti avanzati possono usare una singola riga di comando, come segue:

  • MySQL e PostgreSQL
MediaWiki versiones: 1.10 – 1.16
INSERT INTO interwiki (iw_prefix, iw_url, iw_local, iw_trans) VALUES ('w', 'https://en.wikipedia.org/wiki/$1', 1, 0);

Le versioni più recenti di MediaWiki richiedono alcuni campi supplementari come iw_wikiid.

Esportare, aggiungere, reimportare

Alternatively, you can use the following multi-step process, which exports the interwiki table, adds a line, then re-imports it:

  • Export the database table interwiki
  • add to the end of the table a line of the following form (using English wikipedia as an example):
('w', 'https://en.wikipedia.org/wiki/$1', 1, 0);
In the above code, the semicolon ';' as seen, MUST be at the end of the table. At the end of any other line within that table Only has ','.
  • Import the database table interwiki

To test

To test configuration:

  • Go to your site,
  • create an article, with the following content:
    [[w:Wikipedia:Village pump|]]
  • This should display a link to the 'Village pump' page on en.Wikipedia.org (the url https://en.wikipedia.org/wiki/Wikipedia:Village_pump)

Field documentation

In detail, the fields of the interwiki database table are as follows:

  • iw_prefix: choose a prefix, which is used for interwiki linking, e.g. "wikipedia" for linking to Wikipedia.
    Prefixes must be all lower-case.
  • iw_url: enter the project's URL, e.g. https://en.wikipedia.org/wiki/$1 for Wikipedia. Don't forget the $1 as it is replaced with the article's name you are linking to ([[Wikipedia:Main Page]] links to https://en.wikipedia.org/wiki/Main_Page).
    If iw_url is a binary BLOB field (SVN version, but also occurs in version 1.11.0, bug?) this won't work directly. You have to enter it as binary. There are two possible solutions: 1. You save the url in a plain text file, then import it through phpmyadmin. 2. You can directly enter an SQL query.
  • iw_local: if 1, your wiki will redirect even external links of the form iw_prefix:title, not only those from its own pages; you need this if you want to use the redirect functionality from outside your wiki or other wikis use your transwiki functions for nested transwiki links (like w:en:fr:Wikipédia:Accueil). See m:Help:Interwiki linking#Non-local interwikis. Requires a protocol to be specified in iw_url.
  • iw_trans: "transwiki transclusion" - set to 1 if you want to use pages from the other wiki as templates. You will also need to set $wgEnableScaryTranscluding = true in your LocalSettings.php. Requires a protocol to be specified in iw_url.
  • iw_api: URL to the MediaWiki API, e.g. https://en.wikipedia.org/w/api.php (optional).
  • iw_wikiid: Database name of the wiki (If locally accessible). May be used (later?) for interwiki transclusions. (optional)

Tools.svg Suggerimento per gli amministratori del wiki: Several help pages link to MediaWiki.org's Manual namespace. To make these links work on your local wiki, add an interwiki link with iw_prefix=manual and iw_url=http://www.mediawiki.org/wiki/Manual:$1

Tools.svg Suggerimento per gli amministratori del wiki: $wgTranscludeCacheExpiry in your LocalSettings.php should be set if changes in the transcluded wiki are done. Alternatively, you can flush the table transcache on your local wiki.


References

  1. Is using Extension:InterwikiExtension:Interwiki, make sure to use version 2.1, which fixes a caching latency problem

Collegamenti interwiki ad altre lingue

Interwiki links to other languages

If you have installed a Wiki family, you can link from an article in English to an article in German (if you have a German project, too). You can set up MediaWiki, to show those links in the sidebar, just below the toolbox.

In your filesystem, there is a subfolder of your MediaWiki installation, called "languages". Go there and have a look at "Names.php" as it contains a list of known languages and their prefixes. E.g. you want to add your German project, search "Names.php" for "Deutsch" and note the prefix "de".

If you know the "right" prefix, edit your database by adding a new line to table interwiki:

  • iw_prefix: language-prefix (e.g. "de" for German), which is listed in "Names.php"
  • iw_url: URL to your wiki-project (e.g. http://de.example.org/index.php/$1)
  • iw_local: same as above "Adding More"
  • iw_trans: same as above "Adding More"

Now, you can link an article to the same in other languages. Adding [[de:Hauptseite]] on your English Main_Page will create a link "Deutsch" below the toolbox, which leads to the Main_Page of the German wiki (Hauptseite).

Note, that this link is shown in Sidebar's section, only, and not inside of the article. If you want to create a link inside of the text, you have to add a colon previous to the prefix: [[:de:Hauptseite]] or set $wgInterwikiMagic to false.

Exporting the interwiki table from a wiki

The interwiki table can be queried through the API:Meta module using meta=siteinfo&siprop=interwikimap.

The following JavaScript code can be used to generate the SQL INSERT statements to fill the interwiki table, when run inside the wiki where that info should be extracted, for example, injecting the code through the browser's developer tools or placing it inside Special:MyPage/<skinname>.js and previewing:

function ExtractInterwikiMapTable() {
	$.getJSON(wgScriptPath + '/api.php?action=query&meta=siteinfo&siprop=interwikimap&format=json', function(data) {
		var iw_prefix, iw_url, iw_local, iw_api, re_escape = /(')/g, result = '';
		for (var i = 0, iwm = data.query.interwikimap; i < iwm.length; i++) {
			iw_prefix = "'" + iwm[i].prefix.replace(re_escape, '\\$1') + "'";
			iw_url = "'" + iwm[i].url.replace(re_escape, '\\$1') + "'";
			iw_local = (typeof iwm[i].local == 'string') ? '1' : '0';
			iw_api = "'" + (iwm[i].iw_api || '').replace(re_escape, '\\$1') + "'";
			result += 'INSERT INTO interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api) VALUES ('+iw_prefix+', '+iw_url+', '+iw_local+', 0, '+iw_api+');\n'
		}
		$('<textarea style="width:800px;height:400px;"/>').val(result).appendTo(document.body);
	});
}

$(ExtractInterwikiMapTable);

See also