X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Ftypographie%2Ffr.php;fp=www%2Fecrire%2Ftypographie%2Ffr.php;h=3e05e1998b6d9aa3a43a5bce453e20bf5234739d;hp=7101c2d83276794f3fa3a4313dd0f0034ad41228;hb=e99f0878011913365e49b30d90e496c24c301393;hpb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed diff --git a/www/ecrire/typographie/fr.php b/www/ecrire/typographie/fr.php index 7101c2d..3e05e19 100644 --- a/www/ecrire/typographie/fr.php +++ b/www/ecrire/typographie/fr.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2011 * + * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -16,11 +16,10 @@ if (!defined('_ECRIRE_INC_VERSION')) return; function typographie_fr_dist($letexte) { - static $trans; - + static $trans, $cherche1, $remplace1, $cherche2, $remplace2; // Nettoyer 160 = nbsp ; 187 = raquo ; 171 = laquo ; 176 = deg ; // 147 = ldquo; 148 = rdquo; ' = zouli apostrophe - if (!$trans) { + if (!isset($trans)) { $trans = array( "'" => "’", " " => "~", @@ -38,36 +37,34 @@ function typographie_fr_dist($letexte) { $chars_trans = explode(" ",$chars_trans); foreach($chars as $k=>$r) $trans[$chars_trans[$k]] = $r; - } - $letexte = strtr($letexte, $trans); - $cherche1 = array( + $cherche1 = array( /* 1 */ '/((?:^|[^\#0-9a-zA-Z\&])[\#0-9a-zA-Z]*)\;/S', /* 2 */ '/»| --?,|(?::| %)(?:\W|$)/S', - /* 3 */ '/([^[<(])([!?][!?\.]*)/iS', + /* 3 */ '/([^[<(!?.])([!?][!?\.]*)/iS', /* 4 */ '/«|(?:M(?:M?\.|mes?|r\.?)|[MnN]°) /S' - ); - $remplace1 = array( + ); + $remplace1 = array( /* 1 */ '\1~;', /* 2 */ '~\0', /* 3 */ '\1~\2', /* 4 */ '\0~' - ); - $letexte = preg_replace($cherche1, $remplace1, $letexte); - $letexte = preg_replace("/ *~+ */S", "~", $letexte); - - $cherche2 = array( + ); + $cherche2 = array( '/([^-\n]|^)--([^-]|$)/S', - ',(http|https|ftp|mailto)~((://[^"\'\s\[\]\}\)<>]+)~([?]))?,S', + ',(' ._PROTOCOLES_STD . ')~((://[^"\'\s\[\]\}\)<>]+)~([?]))?,S', '/~/' - ); - $remplace2 = array( + ); + $remplace2 = array( '\1—\2', '\1\3\4', ' ' - ); + ); + } + $letexte = strtr($letexte, $trans); + $letexte = preg_replace($cherche1, $remplace1, $letexte); + $letexte = preg_replace("/ *~+ */S", "~", $letexte); $letexte = preg_replace($cherche2, $remplace2, $letexte); - return $letexte; }