Manuel: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 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎română • ‎suomi • ‎čeština • ‎русский • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

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

Avertissement Avertissement : La propriété interwikimap de l'API fournit des résultats incorrects sur les wikis qui utilisent le cache interwiki (comme les wikis Wikimedia) avant MediaWiki 1.19 (bogue 19838)

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]]
meta https://meta.wikimedia.org/wiki/ [[meta: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
Versions de MediaWiki : 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);

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

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

En détails, les champs de la table interwiki de la base de données sont comme ceci :

  • iw_prefix: choisissez un préfixe qui est utilisé pour faire le lien interwiki; par exemple wikipedia pour se lier à Wikipedia.
    Tous les préfixes doivent être en minuscules.
  • iw_url : saisir l'URL du projet; par exemple https://en.wikipedia.org/wiki/$1 pour Wikipedia. N'oubliez pas le $1 qui est remplacé par le nom de l'article auquel vous vous reliez ([[Wikipedia:Main Page]] pointe vers https://en.wikipedia.org/wiki/Main_Page).
    Si iw_url est un champ BLOB binaire (version SVN, mais apparaît aussi dans la version 1.11.0, bogue ?) cela ne fonctionnera pas directement. Doit être entré en binaire. Deux solutions sont possibles : 1. Si vous enregistrez l'URL brute dans un fichier texte, importez-la ensuite avec phpmyadmin. 2. Vous pouvez saisir directement une requête SQL.
  • iw_local: s'il vaut 1, votre wiki va rediriger même les liens externes du type iw_prefix:title, et non pas seulement ceux de ses propres pages; vous avez besoin de ceci si vous voulez utiliser la fonction de redirection à partir de l'extérieur de votre wiki ou si d'autres wikis utilisent vos fonctions interwiki pour les liens interwiki imbriqués (du style w:en:fr:Wikipédia:Accueil). Voir m:Help:Interwiki linking#Non-local interwikis. Nécessite de préciser un protocole dans iw_url.
  • iw_trans: transwiki transclusion interwiki - initialisez à 1 si vous voulez utiliser les pages de l'autre wiki en tant que modèles. Vous devrez aussi initialiser $wgEnableScaryTranscluding = true dans votre LocalSettings.php. Nécessite de spécifier un protocole dans iw_url.
  • iw_api: URL de l'API MediaWiki, par exemple https://en.wikipedia.org/w/api.php (optionnel).
  • iw_wikiid: nome de la base de données du wiki (si accessible localement). Optionnel. Pourra être utilisé pour les transclusions interwiki (ultérieurement ?).

Tools.svg Astuce pour les administrateurs de wiki: 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:$1

Tools.svg Astuce pour les 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

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 et de leur préfixes. 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), qui est listé dans Names.php
  • iw_url: URL de votre projet wiki (par exemple http://de.example.org/index.php/$1)
  • iw_local: pareil que ci-dessus « en ajoutant More »
  • 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

Références