en.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined("_ECRIRE_INC_VERSION")) return;
  12. // Correction typographique anglaise
  13. function typographie_en($t) {
  14. static $trans;
  15. if (!isset($trans)) {
  16. $trans = array(
  17. "&nbsp;" => '~',
  18. "'" => '&#8217;'
  19. );
  20. switch ($GLOBALS['meta']['charset']) {
  21. case 'utf-8':
  22. $trans["\xc2\xa0"] = '~';
  23. break;
  24. default:
  25. $trans["\xa0"] = '~';
  26. break;
  27. }
  28. }
  29. # cette chaine ne peut pas exister,
  30. # cf. TYPO_PROTECTEUR dans inc/texte
  31. $pro = "-\x2-";
  32. $t = str_replace(array_keys($trans), array_values($trans), $t);
  33. /* 2 */
  34. $t = preg_replace('/ --?,|(?: %)(?:\W|$)/S', '~$0', $t);
  35. /* 4 */
  36. $t = preg_replace('/Mr\.? /S', '$0~', $t);
  37. if (strpos($t, '~') !== false)
  38. $t = preg_replace("/ *~+ */S", "~", $t);
  39. $t = preg_replace("/--([^-]|$)/S", "$pro&mdash;$1", $t, -1, $c);
  40. if ($c) {
  41. $t = preg_replace("/([-\n])$pro&mdash;/S", "$1--", $t);
  42. $t = str_replace($pro, '', $t);
  43. }
  44. $t = str_replace('~', '&nbsp;', $t);
  45. return $t;
  46. }