# TranslatorInterface

interface
**TranslatorInterface**

## Methods

Translates the given message.

## Details

###
at line 64
```
string
```**trans**(string $id, array $parameters = [], string|null $domain = null, string|null $locale = null)

**trans**(string $id, array $parameters = [], string|null $domain = null, string|null $locale = null)

Translates the given message.

When a number is provided as a parameter named "%count%", the message is parsed for plural forms and a translation is chosen according to this number using the following rules:

Given a message with different plural translations separated by a pipe (|), this method returns the correct portion of the message based on the given number, locale and the pluralization rules in the message itself.

The message supports two different types of pluralization rules:

interval: {0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples indexed: There is one apple|There are %count% apples

The indexed solution can also contain labels (e.g. one: There is one apple). This is purely for making the translations more clear - it does not affect the functionality.

The two methods can also be mixed: {0} There are no apples|one: There is one apple|more: There are %count% apples

An interval can represent a finite set of numbers: {1,2,3,4}

An interval can represent numbers between two numbers: [1, +Inf] ]-1,2[

The left delimiter can be [ (inclusive) or ] (exclusive). The right delimiter can be [ (exclusive) or ] (inclusive). Beside numbers, you can use -Inf and +Inf for the infinite.