[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

title

Body

[close]

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

   1  <?php
   2  /**
   3   * Contains Translation_Entry class
   4   *
   5   * @version $Id: entry.php 1157 2015-11-20 04:30:11Z dd32 $
   6   * @package pomo
   7   * @subpackage entry
   8   */
   9  
  10  if ( ! class_exists( 'Translation_Entry', false ) ) :
  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 __construct( $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'] ) && $args['plural'] ) {
  53                  $this->is_plural = true;
  54              }
  55              if ( ! is_array( $this->translations ) ) {
  56                  $this->translations = array();
  57              }
  58              if ( ! is_array( $this->references ) ) {
  59                  $this->references = array();
  60              }
  61              if ( ! is_array( $this->flags ) ) {
  62                  $this->flags = array();
  63              }
  64          }
  65  
  66          /**
  67           * PHP4 constructor.
  68           */
  69  		public function Translation_Entry( $args = array() ) {
  70              self::__construct( $args );
  71          }
  72  
  73          /**
  74           * Generates a unique key for this entry
  75           *
  76           * @return string|bool the key or false if the entry is empty
  77           */
  78  		function key() {
  79              if ( null === $this->singular || '' === $this->singular ) {
  80                  return false;
  81              }
  82  
  83              // Prepend context and EOT, like in MO files
  84              $key = ! $this->context ? $this->singular : $this->context . "\4" . $this->singular;
  85              // Standardize on \n line endings
  86              $key = str_replace( array( "\r\n", "\r" ), "\n", $key );
  87  
  88              return $key;
  89          }
  90  
  91          /**
  92           * @param object $other
  93           */
  94  		function merge_with( &$other ) {
  95              $this->flags      = array_unique( array_merge( $this->flags, $other->flags ) );
  96              $this->references = array_unique( array_merge( $this->references, $other->references ) );
  97              if ( $this->extracted_comments != $other->extracted_comments ) {
  98                  $this->extracted_comments .= $other->extracted_comments;
  99              }
 100  
 101          }
 102      }
 103  endif;


Generated: Tue Oct 22 08:20:01 2019 Cross-referenced by PHPXref 0.7