<?php

if (!class_exists('Translation_Entry', false)) {
    class Translation_Entry
    {
        public $is_plural = false;
        public $context = null;
        public $singular = null;
        public $plural = null;
        public $translations = array();
        public $translator_comments = '';
        public $extracted_comments = '';
        public $references = array();
        public $flags = array();
        function __construct($args = array())
        {
            if (!isset($args['singular'])) {
                return;
            }
            foreach ($args as $varname => $value) {
                $this->{$varname} = $value;
            }
            if (isset($args['plural']) && $args['plural']) {
                $this->is_plural = true;
            }
            if (!is_array($this->translations)) {
                $this->translations = array();
            }
            if (!is_array($this->references)) {
                $this->references = array();
            }
            if (!is_array($this->flags)) {
                $this->flags = array();
            }
        }
        public function Translation_Entry($args = array())
        {
            _deprecated_constructor(self::class, '5.4.0', static::class);
            self::__construct($args);
        }
        function key()
        {
            if (null === $this->singular || '' === $this->singular) {
                return false;
            }
            $key = !$this->context ? $this->singular : $this->context . "\4" . $this->singular;
            $key = str_replace(array("\r\n", "\r"), "\n", $key);
            return $key;
        }
        function merge_with(&$other)
        {
            $this->flags = array_unique(array_merge($this->flags, $other->flags));
            $this->references = array_unique(array_merge($this->references, $other->references));
            if ($this->extracted_comments != $other->extracted_comments) {
                $this->extracted_comments .= $other->extracted_comments;
            }
        }
    }
}