[ Index ]

WordPress Cross Reference

title

Body

[close]

/wp-includes/pomo/ -> entry.php (source)

   1  <?php
   2  /**
   3   * Contains Translation_Entry class
   4   *
   5   * @version $Id: entry.php 718 2012-10-31 00:32:02Z nbachiyski $
   6   * @package pomo
   7   * @subpackage entry
   8   */
   9  
  10  if ( !class_exists( 'Translation_Entry' ) ):
  11  /**
  12   * Translation_Entry class encapsulates a translatable string
  13   */
  14  class Translation_Entry {
  15  
  16      /**
  17       * Whether the entry contains a string and its plural form, default is false
  18       *
  19       * @var boolean
  20       */
  21      var $is_plural = false;
  22  
  23      var $context = null;
  24      var $singular = null;
  25      var $plural = null;
  26      var $translations = array();
  27      var $translator_comments = '';
  28      var $extracted_comments = '';
  29      var $references = array();
  30      var $flags = array();
  31  
  32      /**
  33       * @param array $args associative array, support following keys:
  34       *     - singular (string) -- the string to translate, if omitted and empty entry will be created
  35       *     - plural (string) -- the plural form of the string, setting this will set {@link $is_plural} to true
  36       *     - translations (array) -- translations of the string and possibly -- its plural forms
  37       *     - context (string) -- a string differentiating two equal strings used in different contexts
  38       *     - translator_comments (string) -- comments left by translators
  39       *     - extracted_comments (string) -- comments left by developers
  40       *     - references (array) -- places in the code this strings is used, in relative_to_root_path/file.php:linenum form
  41       *     - flags (array) -- flags like php-format
  42       */
  43  	function Translation_Entry($args=array()) {
  44          // if no singular -- empty object
  45          if (!isset($args['singular'])) {
  46              return;
  47          }
  48          // get member variable values from args hash
  49          foreach ($args as $varname => $value) {
  50              $this->$varname = $value;
  51          }
  52          if (isset($args['plural'])) $this->is_plural = true;
  53          if (!is_array($this->translations)) $this->translations = array();
  54          if (!is_array($this->references)) $this->references = array();
  55          if (!is_array($this->flags)) $this->flags = array();
  56      }
  57  
  58      /**
  59       * Generates a unique key for this entry
  60       *
  61       * @return string|bool the key or false if the entry is empty
  62       */
  63  	function key() {
  64          if (is_null($this->singular)) return false;
  65          // prepend context and EOT, like in MO files
  66          return is_null($this->context)? $this->singular : $this->context.chr(4).$this->singular;
  67      }
  68  
  69  	function merge_with(&$other) {
  70          $this->flags = array_unique( array_merge( $this->flags, $other->flags ) );
  71          $this->references = array_unique( array_merge( $this->references, $other->references ) );
  72          if ( $this->extracted_comments != $other->extracted_comments ) {
  73              $this->extracted_comments .= $other->extracted_comments;
  74          }
  75  
  76      }
  77  }
  78  endif;


Generated: Tue Mar 25 01:41:18 2014 WordPress honlapkészítés: online1.hu