class SymfonyMessageProvider implements MessageProvider (View source)

Implement message localisation using a symfony/translate backend

Traits

A class that can be instantiated or replaced via DI

Provides extensions to this object to integrate it with standard config API methods.

Properties

protected array $loadedLocales

List of locales initialised

protected Translator $translator
protected array $sourceDirs

List of source folder dirs to load yml localisations from

Methods

public static 
create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

public static 
singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

public static 
config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

public
mixed
uninherited(string $name)

Gets the uninherited value for the given config option

public
Translator
getTranslator()

No description

public
$this
setTranslator(Translator $translator)

No description

protected
load(string $locale)

Load resources for the given locale

public
string
translate(string $entity, string $default, array $injection)

Localise this message

public
string
pluralise(string $entity, array|string $default, array $injection, int $count)

Pluralise a message

public
array
getSourceDirs()

Get the list of /lang dirs to load localisations from

public
$this
setSourceDirs(array $sourceDirs)

Set the list of /lang dirs to load localisations from

protected
array
templateInjection(array $injection)

Generate template safe injection parameters

protected
array|string
normalisePlurals(array $parts)

Convert ruby i18n plural form to symfony pipe-delimited form.

Details

static Injectable create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.

This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create(SiteTree::class); $list = SiteTree::get();

Parameters

mixed ...$args

Return Value

Injectable

static Injectable singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).

Parameters

string $class

Optional classname to create, if the called class should not be used

Return Value

Injectable

The singleton instance

static Config_ForClass config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

Return Value

Config_ForClass

mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

Translator getTranslator()

No description

Return Value

Translator

$this setTranslator(Translator $translator)

No description

Parameters

Translator $translator

Return Value

$this

protected load(string $locale)

Load resources for the given locale

Parameters

string $locale

string translate(string $entity, string $default, array $injection)

Localise this message

Parameters

string $entity

Identifier for this message in Namespace.key format

string $default

Default message

array $injection

List of injection variables

Return Value

string

Localised string

string pluralise(string $entity, array|string $default, array $injection, int $count)

Pluralise a message

Parameters

string $entity

Identifier for this message in Namespace.key format

array|string $default

Default message with pipe-separated delimiters, or array

array $injection

List of injection variables

int $count

Number to pluralise against

Return Value

string

Localised string

array getSourceDirs()

Get the list of /lang dirs to load localisations from

Return Value

array

$this setSourceDirs(array $sourceDirs)

Set the list of /lang dirs to load localisations from

Parameters

array $sourceDirs

Return Value

$this

protected array templateInjection(array $injection)

Generate template safe injection parameters

Parameters

array $injection

Return Value

array

Injection array with all keys surrounded with } placeholders

protected array|string normalisePlurals(array $parts)

Convert ruby i18n plural form to symfony pipe-delimited form.

Parameters

array $parts

Return Value

array|string