X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/699231ae09f7057a4d0000cdf32e50a3df6a04ca..refs/tags/wordpress-3.4.2-scripts:/wp-includes/pomo/po.php?ds=sidebyside diff --git a/wp-includes/pomo/po.php b/wp-includes/pomo/po.php index 8e3eb611..8320bc1e 100644 --- a/wp-includes/pomo/po.php +++ b/wp-includes/pomo/po.php @@ -2,7 +2,7 @@ /** * Class for working with PO files * - * @version $Id: po.php 406 2010-02-07 11:10:24Z nbachiyski $ + * @version $Id: po.php 589 2010-12-18 01:40:57Z nbachiyski $ * @package pomo * @subpackage po */ @@ -18,7 +18,8 @@ ini_set('auto_detect_line_endings', 1); */ if ( !class_exists( 'PO' ) ): class PO extends Gettext_Translations { - + + var $comments_before_headers = ''; /** * Exports headers to a PO entry @@ -31,7 +32,11 @@ class PO extends Gettext_Translations { $header_string.= "$header: $value\n"; } $poified = PO::poify($header_string); - return rtrim("msgid \"\"\nmsgstr $poified"); + if ($this->comments_before_headers) + $before_headers = $this->prepend_each_line(rtrim($this->comments_before_headers)."\n", '# '); + else + $before_headers = ''; + return rtrim("{$before_headers}msgid \"\"\nmsgstr $poified"); } /** @@ -75,6 +80,15 @@ class PO extends Gettext_Translations { if (false === $res) return false; return fclose($fh); } + + /** + * Text to include as a comment before the start of the PO contents + * + * Doesn't need to include # in the beginning of lines, these are added automatically + */ + function set_comment_before_headers( $text ) { + $this->comments_before_headers = $text; + } /** * Formats a string in PO-style @@ -106,10 +120,10 @@ class PO extends Gettext_Translations { $po = str_replace("$newline$quote$quote", '', $po); return $po; } - + /** * Gives back the original string from a PO-formatted string - * + * * @static * @param string $string PO-formatted string * @return string enascaped string @@ -139,7 +153,7 @@ class PO extends Gettext_Translations { } /** - * Inserts $with in the beginning of every new line of $string and + * Inserts $with in the beginning of every new line of $string and * returns the modified string * * @static @@ -217,7 +231,7 @@ class PO extends Gettext_Translations { PO::read_line($f, 'clear'); return $res !== false; } - + function read_entry($f, $lineno = 0) { $entry = new Translation_Entry(); // where were we in the last step @@ -254,7 +268,7 @@ class PO extends Gettext_Translations { return false; } // add comment - $this->add_comment_to_entry($entry, $line); + $this->add_comment_to_entry($entry, $line);; } elseif (preg_match('/^msgctxt\s+(".*")/', $line, $m)) { if ($is_final($context)) { PO::read_line($f, 'put-back'); @@ -322,7 +336,7 @@ class PO extends Gettext_Translations { } return array('entry' => $entry, 'lineno' => $lineno); } - + function read_line($f, $action = 'read') { static $last_line = ''; static $use_last_line = false; @@ -339,7 +353,7 @@ class PO extends Gettext_Translations { $use_last_line = false; return $line; } - + function add_comment_to_entry(&$entry, $po_comment_line) { $first_two = substr($po_comment_line, 0, 2); $comment = trim(substr($po_comment_line, 2)); @@ -353,11 +367,11 @@ class PO extends Gettext_Translations { $entry->translator_comments = trim($entry->translator_comments . "\n" . $comment); } } - + function trim_quotes($s) { if ( substr($s, 0, 1) == '"') $s = substr($s, 1); if ( substr($s, -1, 1) == '"') $s = substr($s, 0, -1); return $s; } } -endif; +endif; \ No newline at end of file