Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

translation : configuration facile d'un wiki multi-langue

Ce module affiche une liste des traductions disponibles pour une page. Il y a quelques limitations :

  • les traductions sont stockées dans des espaces de noms séparés
  • les pages traduites doivent avoir le même nom que la page principale

Pré-requis

Installation

  1. Recherchez et installez le plugin à l'aide du gestionnaire d'extensions
  2. Configurez-le à l'aide du gestionnaire de configuration

Ajoutez le code suivant dans le fichier lib/tpl/<votreThème>/main.php de votre thème (ou dans un fichier lib/tpl/default/pageheader.html pour le thème default) :

lib/tpl/VotreThème/main.php
<?php
$translation = plugin_load('helper','translation');
if ($translation) echo $translation->showTranslations();
?>

Ajoutez ce code à main.php à l'endroit où le visuel sera le mieux adapté à votre thème. Il vous faudra peut-être expérimenter un peu pour trouver le meilleur endroit.

Si vous avez plusieurs thèmes, vous devez ajouter ce morceau de code dans chaque main.php pour autoriser le plugin de traduction pour chaque thème.

Pour le modèle “dokuwiki”, vous pouvez créer lib/tpl/dokuwiki/sidebarheader.html avec le code ci-dessus. Il se présente alors comme la page d'accueil de “DokuWiki.org” et vous n'avez pas besoin de le refaire après une mise à jour du dokuwiki.

Configuration

Il y a deux façons de mettre en place un wiki multilingue :

  1. une langue par défaut dans l'espace de noms racine et des traductions dans les sous-espaces de noms
  2. pas de page dans l'espace de noms racine et toutes les langues dans les sous-espaces de noms

Dokuwiki.org utilise la première méthode. Certaines fonctionnalités ne fonctionnent qu'avec la seconde méthode.

Plusieurs possibilités de configuration sont accessibles via le gestionnaire de configuration.

Le plus important à configurer dans les paramètres de traduction est la liste des langues à utiliser, en utilisant les codes de langue ISO séparés par des virgules ou des espaces. Les espaces de noms de traduction seront nommés comme les codes définis ici. Selon le type de configuration, vous pouvez ajouter votre langue par défaut ou l'omettre :

  1. Si la langue par défaut est celle de l'espace de noms supérieur, ne la saisissez pas dans la configuration
  2. Pour des espaces de noms pour toutes les langues, ajoutez-la ici aussi

Si vous avez de nombreuses traductions, la liste des liens de traduction peut être volumineuse. Vous pouvez utiliser l'option de liste déroulante.

Pour limiter les traductions à un espace de noms déterminé, vous pouvez le définir dans l'option facultative translationns ; la laisser vide activera le plugin pour l'ensemble du wiki.

On peut aussi désactiver la traduction de certaines pages ou espaces de noms en utilisant le paramètre “skiptrans”. Il requiert une expression régulière pour les noms de pages. S'il y a correspondance, le commutateur de traduction n'est pas affiché. La regexp est appliquée au nom de page complet qui commence par deux points.

Pour n'activer le drapeau de traduction que pour des espaces de noms spécifiques, définissez une expression régulière qui inverse le résultat, par exemple :

^((?!:redaktionssystem:techn_doku|:technik:verkaufsunterlagen|:en).)*$

Ici, le plugin de traduction n'est actif que dans les espaces de noms “redaktionssystem:techn_doku”, “technik:verkaufsunterlagen” et “en”.

Vous pouvez aussi choisir de laisser le plugin traduire toute l'interface utilisateur de DokuWiki lorsqu'une page dans une langue autre que la langue par défaut est sélectionnée. Il suffit d'activer l'option translateui en conséquence.

Si vous avez opté pour une configuration de type 2, votre espace de noms racine est inutile. Le paramètre “redirectstart” redirigera les utilisateurs vers le début d'un espace de noms de traduction selon la langue de leur navigateur. Cette option ne fonctionne que si le paramètre de traduction ci-dessus est également activé.

Si votre langue par défaut est traduite dans d'autres langues, il peut être utile d'avertir les visiteurs que les traductions sont périmées. Pour ce faire, il suffit d'activer l'option checkage qui compare l'âge de la page de traduction avec celui de la page d'origine (langue par défaut). Elle tente également de trouver la dernière révision de la page originale éditée avant la traduction et propose des liens vers une vue diff.

Vous pouvez enfin expliquer à vos utilisateurs comment fonctionnent les traductions sur votre wiki. Pour que cette description soit facilement accessible à partir du sélecteur de langue, entrez le nom de page de votre description dans le paramètre about de la configuration. Si vous activez le paramètre localabout, cette page de description peut être traduite comme n'importe quelle autre page et le lien renvoie toujours à la traduction en cours.

Quelques options peuvent également être sélectionnées pour influencer l'apparence du sélecteur de traduction. Cela se fait par le biais de l'option display où vous pouvez choisir parmi les paramètres suivants :

Réglage Description
langcode Le code de langue ISO (par exemple de)
name Le vrai nom (localisé) de la langue (par exemple, Deutsch)
title Afficher le texte d'introduction «Traductions de cette page»
twolines cette option ajoute un saut de ligne après le titre
flag Afficher un drapeau du pays correspondant à la langue

Configuration manuelle

Si vous et préférez configurer votre wiki en modifiant le fichier de configuration, vous pouvez ajouter à votre fichier de configuration local.php les lignes suivantes :

$conf['plugin']['translation']['translations']  = 'en,fr,de,it';                        // available languages
$conf['plugin']['translation']['dropdown']      = 1;                                    // use a dropdown
$conf['plugin']['translation']['translationns'] = 'wiki';                               // namespace where to activate translation
$conf['plugin']['translation']['skiptrans']     = '^:(plugin|template):';               // what to skip (regexp)
$conf['plugin']['translation']['translateui']   = 1;                                    // translate the wiki user interface too
$conf['plugin']['translation']['checkage']      = 1;                                    // show notice on outdated translations
$conf['plugin']['translation']['about']         = 'translation:about';                  // page describing the translation process to users
$conf['plugin']['translation']['localabout']    = 1;
$conf['plugin']['translation']['display']       = 'langcode,name';

Utilisation

  • Le plugin fonctionne automatiquement quand il est appelé par le thème mais vous pouvez le désactiver pour une page donnée en lui ajoutant le code suivant :
    ~~NOTRANS~~
  • Évitez d'utiliser les drapeaux des pays pour représenter les langues car elles ne correspondent pas à un seul pays.

Le plugin de traduction ajoute des variables utilisables dans les modèles d'espace de nommage :

Variable Description Exemple
@LANG@ Langue saisie dans la configuration de langue en
@TRANS@ Langue actuellement utilisée. Vide si votre langue par défaut n'a pas de sous-espace de noms. en:start → en, start → <blank>

Variables du modèle d'espace de nommage

Désinstallation

Voir aussi