Manual:Interwiki/fr

From Linux Web Expert

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 meta de siteinfo , en d'autres termes, en faisant une requête API du type api.php?action=query&meta=siteinfo&siprop=interwikimap

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 m:Help:Interwiki linking pour l'information complète sur l'écriture des liens à partir de (ou vers) les projets Wikimedia.

Dans certaines installations, aucun de ceux-ci n'est préinstallé. Essayez [[metawikipedia:Main Page]] dans ce cas.

Rajout 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.

Puisque Wikipedia n'est pas défini par défaut avant la version 1.10, vous pouvez l'ajouter (ainsi que les autres projets que vous souhaitez).

Les exemples ci-dessous montrent comment déclarer w: comme un lien vers la Wikipedia en langue anglaise.

L'idée est d'insérer un 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 :

  • MySQL et PostgreSQL
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.16</tvar> is unsupported version</translate>">
1.10 – 1.16
<translate> MediaWiki versions:</translate>
INSERT INTO interwiki (iw_prefix, iw_url, iw_local, iw_trans) VALUES ('w', 'https://en.wikipedia.org/wiki/$1', 1, 0);

Les versions plus récentes de MediaWiki nécessitent quelques champs supplémentaires tels que iw_wikiid.

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);
Dans le code ci-dessus, le point virgule ';' comme nous l'avons vu, DOIT être à la fin de la table. Les autres lignes à l'intérieur de cette table se terminent toutes par une virgule ',' seule.
  • 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

<translate> Further information:</translate> Manual:Interwiki table


File:Tools.svg <translate> Tip for wiki admins:</translate> Plusieurs liens de pages d'aide vers l'espace de noms du 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:iw_prefix=manual


File:Tools.svg <translate> Tip for wiki admins:</translate> $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

File:M-en-interwiki lang.png
Liens interwiki vers d'autres langues

Si vous avez installé une famille de Wikis (ferme), vous pouvez relier un article en anglais vers 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 *iw_prefix: préfixe de langue (par exemple « de » pour l'allemand), qui est listé dans Names.php
iw_url *iw_url: URL de votre projet wiki (par exemple http://de.example.org/index.php/<code><nowiki>http://de.example.org/index.php/$1</nowiki>)
iw_local *iw_local: pareil que ci-dessus « en ajoutant More »
iw_trans *iw_trans: pareil que ci-dessus « en ajoutant More »

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);

Voir aussi