2015-08-17 17:00:26 -07:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\Translation ;
use Symfony\Component\Config\Resource\ResourceInterface ;
/**
* MessageCatalogueInterface .
*
* @ author Fabien Potencier < fabien @ symfony . com >
*/
interface MessageCatalogueInterface
{
/**
* Gets the catalogue locale .
*
* @ return string The locale
*/
public function getLocale ();
/**
* Gets the domains .
*
* @ return array An array of domains
*/
public function getDomains ();
/**
* Gets the messages within a given domain .
*
* If $domain is null , it returns all messages .
*
* @ param string $domain The domain name
*
* @ return array An array of messages
*/
public function all ( $domain = null );
/**
* Sets a message translation .
*
* @ param string $id The message id
* @ param string $translation The messages translation
* @ param string $domain The domain name
*/
public function set ( $id , $translation , $domain = 'messages' );
/**
* Checks if a message has a translation .
*
* @ param string $id The message id
* @ param string $domain The domain name
*
* @ return bool true if the message has a translation , false otherwise
*/
public function has ( $id , $domain = 'messages' );
/**
* Checks if a message has a translation ( it does not take into account the fallback mechanism ) .
*
* @ param string $id The message id
* @ param string $domain The domain name
*
* @ return bool true if the message has a translation , false otherwise
*/
public function defines ( $id , $domain = 'messages' );
/**
* Gets a message translation .
*
* @ param string $id The message id
* @ param string $domain The domain name
*
* @ return string The message translation
*/
public function get ( $id , $domain = 'messages' );
/**
* Sets translations for a given domain .
*
* @ param array $messages An array of translations
* @ param string $domain The domain name
*/
public function replace ( $messages , $domain = 'messages' );
/**
* Adds translations for a given domain .
*
* @ param array $messages An array of translations
* @ param string $domain The domain name
*/
public function add ( $messages , $domain = 'messages' );
/**
* Merges translations from the given Catalogue into the current one .
*
* The two catalogues must have the same locale .
*/
2018-11-23 12:29:20 +00:00
public function addCatalogue ( self $catalogue );
2015-08-17 17:00:26 -07:00
/**
* Merges translations from the given Catalogue into the current one
* only when the translation does not exist .
*
* This is used to provide default translations when they do not exist for the current locale .
*/
2018-11-23 12:29:20 +00:00
public function addFallbackCatalogue ( self $catalogue );
2015-08-17 17:00:26 -07:00
/**
* Gets the fallback catalogue .
*
2017-02-02 16:28:38 -08:00
* @ return self | null A MessageCatalogueInterface instance or null when no fallback has been set
2015-08-17 17:00:26 -07:00
*/
public function getFallbackCatalogue ();
/**
* Returns an array of resources loaded to build this collection .
*
* @ return ResourceInterface [] An array of resources
*/
public function getResources ();
/**
* Adds a resource for this collection .
*/
public function addResource ( ResourceInterface $resource );
}