[ Index ]

PHP Cross Reference of BackPress

title

Body

[close]

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

   1  <?php
   2  /**
   3   * Contains Translation_Entry class
   4   *
   5   * @version $Id: entry.php 1180 2020-08-10 10:18:38Z xknown $
   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           * @deprecated 5.4.0 Use __construct() instead.
  70           *
  71           * @see Translation_Entry::__construct()
  72           */
  73  		public function Translation_Entry( $args = array() ) {
  74              self::__construct( $args );
  75          }
  76  
  77          /**
  78           * Generates a unique key for this entry
  79           *
  80           * @return string|bool the key or false if the entry is empty
  81           */
  82  		function key() {
  83              if ( null === $this->singular || '' === $this->singular ) {
  84                  return false;
  85              }
  86  
  87              // Prepend context and EOT, like in MO files.
  88              $key = ! $this->context ? $this->singular : $this->context . "\4" . $this->singular;
  89              // Standardize on \n line endings.
  90              $key = str_replace( array( "\r\n", "\r" ), "\n", $key );
  91  
  92              return $key;
  93          }
  94  
  95          /**
  96           * @param object $other
  97           */
  98  		function merge_with( &$other ) {
  99              $this->flags      = array_unique( array_merge( $this->flags, $other->flags ) );
 100              $this->references = array_unique( array_merge( $this->references, $other->references ) );
 101              if ( $this->extracted_comments != $other->extracted_comments ) {
 102                  $this->extracted_comments .= $other->extracted_comments;
 103              }
 104  
 105          }
 106      }
 107  endif;


Generated: Fri Apr 26 01:01:08 2024 Cross-referenced by PHPXref 0.7.1