[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / guillemets.php
diff --git a/www/plugins/auto/couteau_suisse/couteau_suisse/outils/guillemets.php b/www/plugins/auto/couteau_suisse/couteau_suisse/outils/guillemets.php
new file mode 100644 (file)
index 0000000..fe27bb9
--- /dev/null
@@ -0,0 +1,97 @@
+<?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 &ldquo;mot&rdquo;, 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', '&ldquo;$1&rdquo;');\r
+define('_GUILLEMETS_fr', '&laquo;&nbsp;$1&nbsp;&raquo;'); //LRTEUIN\r
+//define('_GUILLEMETS_ar', '');\r
+define('_GUILLEMETS_bg', '&bdquo;$1&ldquo;');\r
+//define('_GUILLEMETS_br', '');\r
+//define('_GUILLEMETS_bs', '');\r
+define('_GUILLEMETS_ca', '&laquo;$1&raquo;');\r
+define('_GUILLEMETS_cpf', '&laquo;&nbsp;$1&nbsp;&raquo;');\r
+//define('_GUILLEMETS_cpf_hat', '');\r
+define('_GUILLEMETS_cs', '&bdquo;$1&ldquo;');\r
+define('_GUILLEMETS_da', '&raquo;$1&laquo;');\r
+define('_GUILLEMETS_de', '&bdquo;$1&ldquo;'); //ou "&raquo;$1&laquo;" // LRTEUIN\r
+define('_GUILLEMETS_en', '&ldquo;$1&rdquo;'); //LRTEUIN\r
+define('_GUILLEMETS_eo', '&laquo;$1&raquo;');\r
+define('_GUILLEMETS_es', '&laquo;$1&raquo;');\r
+//define('_GUILLEMETS_eu', '');\r
+//define('_GUILLEMETS_fa', '');\r
+//define('_GUILLEMETS_fon', '');\r
+//define('_GUILLEMETS_gl', '');\r
+define('_GUILLEMETS_hu', '&bdquo;$1&rdquo;');\r
+define('_GUILLEMETS_it', '&laquo;$1&raquo;');\r
+define('_GUILLEMETS_it_fem', '&laquo;$1&raquo;');\r
+define('_GUILLEMETS_ja', '&#12300;$1&#12301;');\r
+//define('_GUILLEMETS_lb', '');\r
+define('_GUILLEMETS_nl', '&bdquo;$1&rdquo;');\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', '&bdquo;$1&rdquo;');\r
+define('_GUILLEMETS_pt', '&laquo;$1&raquo;');\r
+define('_GUILLEMETS_pt_br', '&laquo;$1&raquo;');\r
+define('_GUILLEMETS_ro', '&bdquo;$1&rdquo;');\r
+define('_GUILLEMETS_ru', '&laquo;$1&raquo;');\r
+define('_GUILLEMETS_tr', '&laquo;$1&raquo;');\r
+//define('_GUILLEMETS_vi', '');\r
+define('_GUILLEMETS_zh', '&#12300;$1&#12301;'); // ou "&ldquo;$1&rdquo;" 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