2015-08-17 17:00:26 -07:00
< ? php
namespace Drupal\locale ;
/**
* Defines the locale translation string object .
*
* This class represents a translation of a source string to a given language ,
* thus it must have at least a 'language' which is the language code and a
* 'translation' property which is the translated text of the source string
* in the specified language .
*/
class TranslationString extends StringBase {
/**
* The language code .
*
* @ var string
*/
public $language ;
/**
* The string translation .
*
* @ var string
*/
public $translation ;
/**
* Integer indicating whether this string is customized .
*
* @ var int
*/
public $customized ;
/**
* Boolean indicating whether the string object is new .
*
* @ var bool
*/
protected $isNew ;
/**
2015-11-04 11:11:27 -08:00
* { @ inheritdoc }
2015-08-17 17:00:26 -07:00
*/
public function __construct ( $values = array ()) {
parent :: __construct ( $values );
if ( ! isset ( $this -> isNew )) {
// We mark the string as not new if it is a complete translation.
// This will work when loading from database, otherwise the storage
// controller that creates the string object must handle it.
$this -> isNew = ! $this -> isTranslation ();
}
}
/**
* Sets the string as customized / not customized .
*
* @ param bool $customized
* ( optional ) Whether the string is customized or not . Defaults to TRUE .
*
* @ return \Drupal\locale\TranslationString
* The called object .
*/
public function setCustomized ( $customized = TRUE ) {
$this -> customized = $customized ? LOCALE_CUSTOMIZED : LOCALE_NOT_CUSTOMIZED ;
return $this ;
}
/**
2015-11-04 11:11:27 -08:00
* { @ inheritdoc }
2015-08-17 17:00:26 -07:00
*/
public function isSource () {
return FALSE ;
}
/**
2015-11-04 11:11:27 -08:00
* { @ inheritdoc }
2015-08-17 17:00:26 -07:00
*/
public function isTranslation () {
return ! empty ( $this -> lid ) && ! empty ( $this -> language ) && isset ( $this -> translation );
}
/**
2015-11-04 11:11:27 -08:00
* { @ inheritdoc }
2015-08-17 17:00:26 -07:00
*/
public function getString () {
return isset ( $this -> translation ) ? $this -> translation : '' ;
}
/**
2015-11-04 11:11:27 -08:00
* { @ inheritdoc }
2015-08-17 17:00:26 -07:00
*/
public function setString ( $string ) {
$this -> translation = $string ;
return $this ;
}
/**
2015-11-04 11:11:27 -08:00
* { @ inheritdoc }
2015-08-17 17:00:26 -07:00
*/
public function isNew () {
return $this -> isNew ;
}
/**
2015-11-04 11:11:27 -08:00
* { @ inheritdoc }
2015-08-17 17:00:26 -07:00
*/
public function save () {
parent :: save ();
$this -> isNew = FALSE ;
return $this ;
}
/**
2015-11-04 11:11:27 -08:00
* { @ inheritdoc }
2015-08-17 17:00:26 -07:00
*/
public function delete () {
parent :: delete ();
$this -> isNew = TRUE ;
return $this ;
}
}