--- /dev/null
+<?php\r
+// integration 2007 : Patrice Vanneufville\r
+// Toutes les infos sur : http://www.spip-contrib.net/?article1592\r
+\r
+/*\r
+Fichier de formatage typographique des guillemets, par Vincent Ramos\r
+<www-lansargues AD kailaasa POINT net>, sous licence GNU/GPL.\r
+\r
+Ne sont touchees que les paires de guillemets.\r
+\r
+Le formatage des guillemets est tire de\r
+<http://en.wikipedia.org/wiki/Quotation_mark%2C_non-English_usage>\r
+Certains des usages indiques ne correspondent pas a ceux que la\r
+barre d'insertion de caracteres speciaux de SPIP propose.\r
+\r
+Les variables suivies du commentaire LRTEUIN sont confirmees par le\r
+_Lexique des regles typographiques en usage a l'Imprimerie nationale_.\r
+\r
+Les variables entierement commentees sont celles pour lesquelles\r
+aucune information n'a ete trouvee. Par defaut, les guillements sont alors\r
+de la forme “mot”, sauf si la barre d'insertion de SPIP proposait\r
+deja une autre forme.\r
+*/\r
+\r
+// voir aussi : http://trac.rezo.net/trac/spip/changeset/9429\r
+\r
+// definitions des chaines de remplacement\r
+define('_GUILLEMETS_defaut', '“$1”');\r
+define('_GUILLEMETS_fr', '« $1 »'); //LRTEUIN\r
+//define('_GUILLEMETS_ar', '');\r
+define('_GUILLEMETS_bg', '„$1“');\r
+//define('_GUILLEMETS_br', '');\r
+//define('_GUILLEMETS_bs', '');\r
+define('_GUILLEMETS_ca', '«$1»');\r
+define('_GUILLEMETS_cpf', '« $1 »');\r
+//define('_GUILLEMETS_cpf_hat', '');\r
+define('_GUILLEMETS_cs', '„$1“');\r
+define('_GUILLEMETS_da', '»$1«');\r
+define('_GUILLEMETS_de', '„$1“'); //ou "»$1«" // LRTEUIN\r
+define('_GUILLEMETS_en', '“$1”'); //LRTEUIN\r
+define('_GUILLEMETS_eo', '«$1»');\r
+define('_GUILLEMETS_es', '«$1»');\r
+//define('_GUILLEMETS_eu', '');\r
+//define('_GUILLEMETS_fa', '');\r
+//define('_GUILLEMETS_fon', '');\r
+//define('_GUILLEMETS_gl', '');\r
+define('_GUILLEMETS_hu', '„$1”');\r
+define('_GUILLEMETS_it', '«$1»');\r
+define('_GUILLEMETS_it_fem', '«$1»');\r
+define('_GUILLEMETS_ja', '「$1」');\r
+//define('_GUILLEMETS_lb', '');\r
+define('_GUILLEMETS_nl', '„$1”');\r
+//define('_GUILLEMETS_oc_auv', '');\r
+//define('_GUILLEMETS_oc_gsc', '');\r
+//define('_GUILLEMETS_oc_lms', '');\r
+//define('_GUILLEMETS_oc_lnc', '');\r
+//define('_GUILLEMETS_oc_ni', '');\r
+//define('_GUILLEMETS_oc_ni_la', '');\r
+//define('_GUILLEMETS_oc_prv', '');\r
+//define('_GUILLEMETS_oc_va', '');\r
+define('_GUILLEMETS_pl', '„$1”');\r
+define('_GUILLEMETS_pt', '«$1»');\r
+define('_GUILLEMETS_pt_br', '«$1»');\r
+define('_GUILLEMETS_ro', '„$1”');\r
+define('_GUILLEMETS_ru', '«$1»');\r
+define('_GUILLEMETS_tr', '«$1»');\r
+//define('_GUILLEMETS_vi', '');\r
+define('_GUILLEMETS_zh', '「$1」'); // ou "“$1”" en chinois simplifie\r
+\r
+function typo_guillemets_echappe_balises_callback($matches) {\r
+ return cs_code_echappement($matches[1], 'GUILL');\r
+}\r
+\r
+function typo_guillemets_rempl($texte){\r
+ // on s'en va si pas de guillemets...\r
+ if (strpos($texte, '"')===false) return $texte;\r
+ // prudence : on protege TOUTES les balises contenant des doubles guillemets droits\r
+ if (strpos($texte, '<')!==false) \r
+ $texte = preg_replace_callback('/(<[^>]+"[^>]*>)/Ums', 'typo_guillemets_echappe_balises_callback', $texte);\r
+// $texte = preg_replace('/(<[^>]+"[^>]*>)/Umse', 'cs_code_echappement("\\1", "GUILL")', $texte);\r
+ ;\r
+ // choix de la langue, de la constante et de la chaine de remplacement\r
+ if (!$lang = $GLOBALS['lang_objet']) $lang = $GLOBALS['spip_lang'];\r
+ $constante = '_GUILLEMETS_'.$lang;\r
+ $guilles = defined($constante)?constant($constante):_GUILLEMETS_defaut;\r
+ \r
+ // Remplacement des autres paires de guillemets (et suppression des espaces apres/avant)\r
+ // Et retour des balises contenant des doubles guillemets droits\r
+ return echappe_retour(preg_replace('/"\s*(.*?)\s*"/', $guilles, $texte), 'GUILL');\r
+}\r
+\r
+function typo_guillemets($texte){\r
+ if (strpos($texte, '"')===false) return $texte;\r
+ return cs_echappe_balises('html|code|cadre|frame|script|acronym|cite', 'typo_guillemets_rempl', $texte);\r
+}\r
+\r
+?>
\ No newline at end of file