Index: formatters/classes/typografica.php =================================================================== --- formatters/classes/typografica.php (revision 485) +++ formatters/classes/typografica.php (working copy) @@ -61,6 +61,7 @@ var $glueright = array( "ðóá\.", "êîï\.", "ó\.å\.", "ìèí\." ); var $settings = array ( "inches" => 1, // ïðåîáðàçîâûâàòü äþéìû â " + "apostroph" => 1, // ïðåîáðàçîâûâàòü àïîñòðîôîâ "laquo" => 1, // êàâû÷êè-¸ëî÷êè "farlaquo" => 0, // êàâû÷êè-¸ëî÷êè äëÿ ôàðà (çíàêè "áîëüøå-ìåíüøå") "quotes" => 1, // êàâû÷êè-àíãëèéñêèå ëàïêè @@ -229,6 +230,9 @@ // 0. äþéìû ñ öèôðàìè if ($this->settings["inches"]) $data = preg_replace( "/(?<=\s)(([0-9]{1,2}([\.,][0-9]{1,2})?))\"/i", "\\1"", $data ); + // 0a. àïîñòðîô + if ($this->settings["apostroph"]) + $data = preg_replace( "/([\s\"][~0-9¸¨´¥ºª³²¿¯’'A-Za-zÀ-ßà-ÿ\-:\/\.]+)'([~ºª³²¿¯àÀåÅèÈîÎóÓþÞÿß][~0-9¸¨´¥ºª³²¿¯’'A-Za-zÀ-ßà-ÿ\-:\/\.]+[\s\.,:;\)<=\"])/i", "\\1’\\2", $data ); // 1. ëàïêè if ($this->settings["quotes"]) { @@ -246,17 +250,17 @@ if ($this->settings["laquo"]) { $data = preg_replace( "/\"\"/i", """", $data ); - $data = preg_replace( "/(^|\s|\201|\200|>|\()\"((\201|\200)*[~0-9¸¨A-Za-zÀ-ßà-ÿ\-:\/\.])/i", "\\1«\\2", $data ); + $data = preg_replace( "/(^|\s|\201|\200|>|\()\"((\201|\200)*[~0-9¸¨´¥ºª³²¿¯’'A-Za-zÀ-ßà-ÿ\-:\/\.])/i", "\\1«\\2", $data ); // nb: wacko only regexp follows: - $data = preg_replace( "/(^|\s|\201|\200|>|\()\"((\201|\200|\/ |\/|\!)*[~0-9¸¨A-Za-zÀ-ßà-ÿ\-:\/\.])/i", "\\1«\\2", $data ); + $data = preg_replace( "/(^|\s|\201|\200|>|\()\"((\201|\200|\/ |\/|\!)*[~0-9¸¨´¥ºª³²’'A-Za-zÀ-ßà-ÿ\-:\/\.])/i", "\\1«\\2", $data ); $_data = "\"\""; while ($_data != $data) { $_data = $data; - $data = preg_replace( "/(\«\;([^\"]*)[¸¨A-Za-zÀ-ßà-ÿ0-9\.\-:\/](\201|\200)*)\"/si", "\\1»", $data ); + $data = preg_replace( "/(\«\;([^\"]*)[¸¨´¥ºª³²¿¯’'A-Za-zÀ-ßà-ÿ0-9\.\-:\/](\201|\200)*)\"/si", "\\1»", $data ); // nb: wacko only regexps follows: - $data = preg_replace( "/(\«\;([^\"]*)[¸¨A-Za-zÀ-ßà-ÿ0-9\.\-:\/](\201|\200)*\?(\201|\200)*)\"/si", "\\1»", $data ); - $data = preg_replace( "/(\«\;([^\"]*)[¸¨A-Za-zÀ-ßà-ÿ0-9\.\-:\/](\201|\200|\/|\!)*)\"/si", "\\1»", $data ); + $data = preg_replace( "/(\«\;([^\"]*)[¸¨´¥ºª³²¿¯’'A-Za-zÀ-ßà-ÿ0-9\.\-:\/](\201|\200)*\?(\201|\200)*)\"/si", "\\1»", $data ); + $data = preg_replace( "/(\«\;([^\"]*)[¸¨´¥ºª³²¿¯’'A-Za-zÀ-ßà-ÿ0-9\.\-:\/](\201|\200|\/|\!)*)\"/si", "\\1»", $data ); } } // 2a. ¸ëî÷êè äëÿ FAR manager