Ci-dessous une trame pour la définition d'un fichier de configuration config.php, installé dans le répertoire local, pour la francisation du wiki.
Il est aussi possible de créer un fichier complètement indépendant pour la francisation 'français.php' et de l'appeller depuis le fichier de configuration général.
include_once('francais.php'); # francisation
Attention, la position de l'appel n'est pas indifférente, elle doit se trouver avant la majorité des paramètres de configuration.
voir traduction du fichier doc/sample_config.php de la versions 2.2.0 beta 54 (et beta 63)
Configuration de base
Modules optionnels
Francisation
Voir aussi (en anglais)
- PmWiki:Cookbook.SideBarNameChange
- PmWiki:Cookbook.MainGroupChange
<?php if (!defined('PmWiki')) exit();
##---------------Francisation -------------------------------
## Francisation des commandes (édition, etc.)
XLPage('fr','PmWikiFr.XLPage');
XLPage('fr','PmWikiFr.XLPageCookbook');
$DefaultGroup = 'MonWiki'; # Groupe par défaut
$DefaultName = 'Accueil'; # Page de démarrage groupe - défaut 'HomePage' -
$TimeFmt = "%d/%m/%Y %H:%M"; # Format date/heure 17/02/2004 00:14
$CategoryGroup = 'Catégorie';
$AuthorGroup = 'Profils'; # Nom du groupe des contributeurs, défaut 'Profiles'
$AuthorRequiredFmt = 'Saisir votre nom ou identifiant'; # quand auteur requis
$AuthDeniedFmt = 'Un mot de passe valide est requis pour accéder à cette fonction.';
## Balise de réponse R: en complément à Q: et A:
Markup('^R:', 'block', '/^(R:.*)$/', "<:block><p class='answer'>$1</p>");
$PageRefCountFmt = "<h1>Références croisées</h1><p>"; # Chaîne dans RefCount
$RefCountTimeFmt = "<small>%d-%b-%Y %H:%M</small>"; # Chaîne dans RefCount
## Gestion des pages
$DefaultPageTextFmt = 'La page $Name n\'existe pas';
$PageNotFound = 'PmWikiFr.PageInconnue'; #Pour les pages inexistantes
$PageRedirectFmt = '<p><i>redirigé depuis $FullName</p>';
## Expression utilisée pour indiquer qu'une page doit être effacée
$DeleteKeyPattern = "^\\s*effacer\\s*$";
$RecentChangesFmt = array(
'$SiteGroup.ToutesLesModifs' =>
'* [[$Group.$Name]] . . . $CurrentTime par $AuthorLink: [=$ChangeSummary=]',
'$Group.ModifsDuGroupe' =>
'* [[$Group/$Name]] . . . $CurrentTime par $AuthorLink: [=$ChangeSummary=]');
$VarPagesFmt = array('PmWikiFr.Variables','PmWikiFr.BasicVariables',
'PmWikiFr.LayoutVariables','PmWikiFr.PathVariables','PmWikiFr.LinkVariables',
'PmWikiFr.EditVariables','PmWikiFr.UploadVariables','PmWikiFr.I18nVariables',
'PmWikiFr.PagelistVariables','PmWikiFr.OtherVariables','PmWikiFr.MailPosts');
##--- Styles standard --------------------
$WikiStyle['noir']['color'] = 'black';
$WikiStyle['blanc']['color'] = 'white';
$WikiStyle['rouge']['color'] = 'red';
$WikiStyle['vert']['color'] = 'green';
$WikiStyle['bleu']['color'] = 'blue';
$WikiStyle['jaune']['color'] = 'yellow';
$WikiStyle['gris']['color'] = 'gray';
$WikiStyle['argent']['color'] = 'silver';
$WikiStyle['marron']['color'] = 'maroon';
$WikiStyle['pourpre']['color'] = 'purple';
$WikiStyle['bleufoncé']['color'] = 'navy';
## Chaînes pour la notification par courrier
$MailPostsMessage = "Modifications récentes du wiki:\n
($ScriptUrl/$SiteGroup/ToutesLesModifs)\n\n\$MailPostsList\n";
$MailPostsSubject = "$WikiTitle : modifications récentes du wiki";
#$MailPostsItemFmt =
# ' * $ScriptUrl/$FullName . . $PostTime par $Author-$RemoteAddr';
$MailPostsItemFmt = ' * $FullName . . . $PostTime par $Author';
$BlocklistPages = "Admin.ListeDeBlocage"; # *AVANT* le script de blocage
$UploadDir = 'fichiers';
$ApprovedUrlPagesFmt = array('$DefaultGroup.LiensApprouvés');
## Groupes à exclure des recherches - V2 -
$EnablePageListProtect = 1; # Exclut les pages cachées des recherches
$SearchPatterns['default'][] = '!Attributes$!';
$SearchPatterns['default'][] = '!\\.Recherche$!';
$SearchPatterns['default'][] = '!\\.(All)?Recent(Changes|Uploads)$!';
$SearchPatterns['default'][] = '!\\.ToutesLesModifs$!';
$SearchPatterns['default'][] = '!\\.ModifsDuGroupe$!';
$SearchPatterns['default'][] = '!\\.Group(Print)?Header$!';
$SearchPatterns['default'][] = '!\\.Accueil$!';
$SearchPatterns['default'][] = '!\\.Menu$!';
$SearchPatterns['default'][] = '!\\.Index!';
$SearchPatterns['tout'] = $SearchPatterns['default'];
$SearchPatterns['default'][] = '!^PmWiki\\.!'; # Exclusion du groupe PmWiki
$SearchPatterns['default'][] = '!^Main\\.!';
$SearchPatterns['default'][] = '!^Admin\\.!';
$SearchPatterns['default'][] = '!^AdminFr\\.!';
$SearchPatterns['dict'] = $SearchPatterns['default'];
$SearchPatterns['dict'][] = '!^PmWikiFr\\.!'; # Exclusion groupe PmWikiFr
$SearchPatterns['dict'][] = '!\\.pm!';
$SearchPatterns['dict'][] = '!\\.PatrickMichaud!';
Commentaires
Je suggère un ajout pour permettre la prise en compte des caractères accentués sur les systèmes Unix:
##-- Locale ------------------------------------------------------
## Définit la LOCALE appropriée
## NB: peut varier selon les systèmes (voir /usr/share/locale)
setlocale(LC_ALL,'fr_FR.ISO8859-1');
DidierLebrun?
Ceci est inutile car la fonction XLPage
le fait déjà en utilisant le contenu du champ locale de la page XLPage. PRZ?
Je suggère, quant à moi, de ne pas mettre de caractères accentués dans les noms de pages.
Même si cela peut être moins joli à l'écran, l'on évitera peut-être des problème en cas de pages de codes différentes sur des navigateurs différentes, voire en cas de transfert du Wiki chez un autre hébergeur…
La page d'accueil peut ainsi s'appeler Bienvenue, au lieu de Présentation, et PageNonTrouvée peut s'appeler PageInconnue. Pour VariableDEdition, il est très possible de ne pas mettre l'accent sur la lettre majuscule (c'est, certes, une faute de français, mais benigne), et Téléchargement peut devenir Chargement.
Jean-Dom?
L'ajout de setlocale n'a pas été inutile pour moi qui utilise pour l'internationalisation en français. J'avais un problème d'accent qui avaient disparu du nom de mes pages suite à la migration de mon hébergeur sur de nouveaux serveurs, problème maintenant résolu par l'ajout de ce bout de code.
Arnaud
Voici une copie de la fonction XLPage qui prouve que c'est bien effectué par le système, je soupçonne un problème de définition de la variable 'locale' dans la page XLPage. PRZ?
function XLPage($lang,$p) {
global $TimeFmt,$XLLangs,$FarmD;
$page = ReadPage($p, READPAGE_CURRENT);
if (!$page) return;
$text = preg_replace("/=>\\s*\n/",'=> ',@$page['text']);
foreach(explode("\n",$text) as $l)
if (preg_match('/^\\s*[\'"](.+?)[\'"]\\s*=>\\s*[\'"](.+)[\'"]/',$l,$match))
$xl[stripslashes($match[1])] = stripslashes($match[2]);
if (isset($xl)) {
if (@$xl['xlpage-i18n']) {
$i18n = preg_replace('/[^-\\w]/','',$xl['xlpage-i18n']);
include_once("$FarmD/scripts/xlpage-$i18n.php");
}
if (@$xl['Locale']) setlocale(LC_ALL,$xl['Locale']);
if (@$xl['TimeFmt']) $TimeFmt=$xl['TimeFmt'];
array_unshift($XLLangs,$lang);
XLSDV($lang,$xl);
}
}
<< Configuration initiale | Index doc admin | Pages de site >>
Voir aussi PmWiki:Localization.SampleConfigFileLocalization - Page originale sur PmWiki:PmWikiFr.FichierDeConfiguration
Page originale sur {*{$FullName}]] - [[$}[Backlinks]->{*{$FullName}?action=search&q=link={*$}FullName}&fmt=title
Dernières modifications:
[[{*{$FullName}]]: {*$}LastModified}