Manuel:Interwiki
Les liens interwiki sont des liens vers les pages des autres projets et utilisent pour cela un style de lien interne préfixé.
Les liens interwiki vous permettent de relier des pages se trouvant par exemple sur Wikipedia, Wikibooks, Wikinews etc... ou sur vos projets wiki dans différentes langues. (Voir Manuel:Famille de wikis ).
Un lien tel que [[Wikipedia:Main Page]]
apparaîtra ainsi : Wikipedia:Main Page et vous redirigera vers la page d'accueil de Wikipedia.
Liens interwiki vers d'autres projets
Table et API de requête
Les liens interwiki sont rangés dans la table interwiki de la base de données de MediaWiki.
Vous pouvez récupérer la liste interwiki à partir de la propriété interwikimap
de l'API de requête des métadonnées de siteinfo , en d'autres termes, en faisant une requête API du type :
Préfixes par défaut
Plusieurs projets Wikimedia (et autres) sont prêts par défaut pour utiliser des liens interwikis, donc vous pouvez les utiliser sans mettre à jour votre base de données.
Voici quelques exemples de préfixes interwiki disponibles par défaut (Wikipedia est aussi disponible, depuis la version 1.10) :
préfixe | URL de destination | exemple d'utilisation |
---|---|---|
commons | https://commons.wikimedia.org/wiki/ | [[commons:MediaWiki]]
|
mediazilla | http://bugzilla.wikimedia.org/ | [[mediazilla:1209]]
|
metawikimedia (avant la version 1.23: metawikipedia) | https://meta.wikimedia.org/wiki/ | [[metawikimedia:Main Page]]
|
La liste complète des préfixes interwiki par défaut est disponible sur maintenance/interwiki.list
Voir Liens interwiki sur les wikis Wikimedia pour l'information complète sur l'écriture des liens à partir de (ou vers) les projets Wikimedia.
Ajout d'un nouveau site web dans les liens interwiki
- Les liens interwiki sont définis dans la table
interwiki
de la base de données. - Pour les modifer, vous devrez mettre à jour la base de données comme ci-dessous.
Il est recommandé d'utiliser l'extension Interwiki, qui facilite le processus.
Les exemples ci-dessous montrent comment déclarer w:
en tant que lien vers la Wikipedia en langue anglaise en plus de l'entrée wikipedia: plus verbeuse par défaut.
L'idée est d'insérer une ligne de la forme :
('prefix', 'URL format string', 1, 0)
dans la table interwiki
.
Ligne unique
Les utilisateurs avancés peuvent utiliser une ligne de commande unique telle que :
INSERT INTO interwiki (iw_prefix, iw_url, iw_api, iw_local, iw_trans, iw_wikiid)
VALUES ('w', 'https://en.wikipedia.org/wiki/$1', 'https://en.wikipedia.org/w/api.php', 0, 1, '');
Exporter, ajouter, réimporter
Vous pouvez aussi utiliser le processus suivant en plusieurs étapes qui exporte la table interwiki
, ajoute une ligne, puis la réimporte :
- exportez la table
interwiki
de la base de données - ajoutez à la fin de la table une ligne de la forme suivante (en prenant la Wikipedia en langue anglaise comme exemple) :
('w', 'https://en.wikipedia.org/wiki/$1', 1, 0);
- importez la table
interwiki
de la base de données
Pour tester
Pour tester la configuration :
- Allez sur votre site,
- Créez un article, avec le contenu suivant :
[[w:Wikipedia:Village pump|]]
- Ceci devrait vous afficher un lien vers la page de la pompe du village sur en.Wikipedia.org (url
https://en.wikipedia.org/wiki/Wikipedia:Village_pump
)
Documentation des champs
Conseil aux administrateurs de wiki : Plusieurs liens de pages d'aide vers l'espace de noms Manuel: de MediaWiki.org. Pour que ces liens fonctionnent sur votre wiki local, ajoutez un lien interwiki avec iw_prefix=manual
et iw_url=http://www.mediawiki.org/wiki/Manual:$1
Conseil aux administrateurs de wiki : $wgTranscludeCacheExpiry dans votre LocalSettings.php
doit être initialisé si des modifications sont faites dans le wiki transclus. Vous pouvez également purger la table transcache de votre wiki local.
Liens interwiki vers d'autres langues
Si vous avez installé une famille de Wikis (une ferme), vous pouvez relier un article en anglais à un article en allemand (si vous avez aussi un projet en allemand). Vous pouvez configurer MediaWiki pour qu'il affiche ces liens dans la barre latérale, juste sous la boîte à outils.
Dans votre système de fichiers, il y a un sous-répertoire de votre installation MediaWiki, appelé « languages ».
Placez-vous à l'intérieur et regardez Names.php
qui contient une liste des langues connues avec leur préfixe.
Par exemple, vous voulez ajouter votre projet en allemand, cherchez « Deutsch » dans Names.php
et notez le préfixe « de ».
Si vous connaissez déjà le préfixe à utiliser, modifiez votre base de données en ajoutant une nouvelle ligne à la table interwiki
:
iw_prefix |
préfixe de langue (par exemple « de » pour l'allemand) listé dans Names.php
|
iw_url |
URL de votre projet wiki (par exemple http://de.example.org/index.php/$1 )
|
iw_local |
same as above at #Adding a new website for interwiki linking |
iw_trans |
same as above at Adding a new website for interwiki linking |
Maintenant vous pouvez relier un article à son équivalent dans d'autres langues.
Si vous ajoutez [[de:Hauptseite]]
sur votre page d'accueil (Main_Page) en anglais vous allez créer un lien "Deutsch" sous la boîte à outils, qui vous conduira à la page d'accueil (Hauptseite) du wiki allemand.
Remarquez que ce lien est affiché uniquement dans la section de la barre latérale, et non pas dans l'article.
Si vous voulez créer un lien à l'intérieur du texte lui-même, vous devez ajouter un caractère deux points ':' avant le préfixe comme par exemple [[:de:Hauptseite]]
ou positionner $wgInterwikiMagic à false
.
Exporter la table interwiki d'un wiki
Le code JavaScript suivant réalise la requête API pour récupérer la correspondance interwiki d'un wiki existant, puis réalise l'affichage des commandes SQL INSERT pour remplir la table interwiki sur un nouveau wiki. Vous l'exécutez par exemple en injectant le code dans les outils de développement de votre navigateur, ou en le mettant dans Special:MyPage/nom_habillage.js et en demandant l'aperçu.
function ExtractInterwikiMapTable() {
$.getJSON(mw.config.get('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);
Liens interwiki et liens externes
[[imdbtitle:0389790|Bee Movie]]
→Bee Movie
[http://www.imdb.com/title/tt0389790 Bee Movie]
→Bee Movie
Linksearch fonctionne uniquement pour ce dernier.
Le wikicode qui utilise des liens interwiki n'est pas toujours facilement transférable entre les différents wikis parce qu'ils n'utilisent pas toujours les mêmes préfixes interwiki, ou ne les ont peut-être pas du tout. De plus, les liens interwiki peuvent parfois induire en erreur les utilisateurs car ils ne savent pas quand ils sont envoyés vers un autre site.
Vous pouvez choisir entre les classes CSS extiw et external text pour les liens, selon que vous voulez qu'ils soient identiques ou différents. En utilisant uniquement le lien interwiki, c'est plus facile à saisir, mais copier l'URL de la page web est pratique. Des modèles comme w:Template:imdb title peuvent être configurés pour utiliser soit un lien interwiki avec un paramètre comme tt0389790 ou 0389790 ou un lien externe avec un paramètre comme l'un de ces paramètres ou l'URL complète, ce qui facilite l'inclusion de références IMDb.
Liens interwiki vers le wiki local
Les liens interwiki peuvent être configurés pour pointer vers le même wiki à partir duquel ils sont été générés. Par exemple, mw:Manual:Interwiki/fr pointe sur cette page. Ces liens sont traités de la même manière que les liens internes et apparaissent sur Special:WhatLinksHere, en gras si ce sont des auto-liens comme ci-dessus, ou en rouge si la page n'existe pas, etc.