Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 31 additions & 26 deletions src/GettextTranslator.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,26 +40,26 @@
class GettextTranslator implements Translator
{
/** @var string Default gettext domain */
protected $defaultDomain = 'default';
protected string $defaultDomain = 'default';

/** @var string Default locale code */
protected $defaultLocale = 'en_US';
protected string $defaultLocale = 'en_US';

/** @var array<string, string> Known translation directories as array[$domain] => $directory */
protected $translationDirectories = [];
protected array $translationDirectories = [];

/** @var array<string, string> Loaded translations as array[$domain] => $directory */
protected $loadedTranslations = [];
protected array $loadedTranslations = [];

/** @var string Primary locale code used for translations */
protected $locale;
/** @var ?string Primary locale code used for translations */
protected ?string $locale = null;

/**
* Get the default domain
*
* @return string
*/
public function getDefaultDomain()
public function getDefaultDomain(): string
{
return $this->defaultDomain;
}
Expand All @@ -71,7 +71,7 @@
*
* @return $this
*/
public function setDefaultDomain($defaultDomain)
public function setDefaultDomain(string $defaultDomain): static
{
$this->defaultDomain = $defaultDomain;

Expand All @@ -83,7 +83,7 @@
*
* @return string
*/
public function getDefaultLocale()
public function getDefaultLocale(): string
{
return $this->defaultLocale;
}
Expand All @@ -95,7 +95,7 @@
*
* @return $this
*/
public function setDefaultLocale($defaultLocale)
public function setDefaultLocale(string $defaultLocale): static
{
$this->defaultLocale = $defaultLocale;

Expand All @@ -107,20 +107,20 @@
*
* @return array<string, string> Available translations as array[$domain] => $directory
*/
public function getTranslationDirectories()
public function getTranslationDirectories(): array
{
return $this->translationDirectories;
}

/**
* Add a translation directory
*
* @param string $directory Path to translation files
* @param string $domain Optional domain of the translation
* @param string $directory Path to translation files
* @param ?string $domain Optional domain of the translation
*
* @return $this
*/
public function addTranslationDirectory($directory, $domain = null)
public function addTranslationDirectory(string $directory, ?string $domain = null): static
{
$this->translationDirectories[$domain ?: $this->defaultDomain] = $directory;

Expand All @@ -132,7 +132,7 @@
*
* @return array<string, string> Loaded translations as array[$domain] => $directory
*/
public function getLoadedTranslations()
public function getLoadedTranslations(): array
{
return $this->loadedTranslations;
}
Expand All @@ -146,7 +146,7 @@
* @return $this
* @throws \Exception If {@link bindtextdomain()} fails for a domain
*/
public function loadTranslations()
public function loadTranslations(): static
{
foreach ($this->translationDirectories as $domain => $directory) {
if (
Expand Down Expand Up @@ -175,9 +175,9 @@
/**
* Get the primary locale code used for translations
*
* @return string
* @return ?string
*/
public function getLocale()
public function getLocale(): ?string
{
return $this->locale;
}
Expand All @@ -192,7 +192,7 @@
* @return $this
* @throws \Exception If {@link bindtextdomain()} fails for a domain
*/
public function setLocale($locale)
public function setLocale(string $locale): static
{
putenv("LANGUAGE=$locale.UTF-8");
setlocale(LC_ALL, $locale . '.UTF-8');
Expand All @@ -215,14 +215,14 @@
*
* @return string The encoded message as context + "\x04" + message
*/
public function encodeMessageWithContext($message, $context)
public function encodeMessageWithContext(string $message, string $context): string
{
// The encoding of a context and a message in a .mo file is
// context + "\x04" + message (gettext version >= 0.15)
return "{$context}\x04{$message}";
}

public function translate($message, $context = null)
public function translate(string $message, ?string $context = null): string

Check failure on line 225 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #2 $context (string|null) of method ipl\I18n\GettextTranslator::translate() is not contravariant with parameter #2 $context (mixed) of method ipl\Stdlib\Contract\Translator::translate().

Check failure on line 225 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #1 $message (string) of method ipl\I18n\GettextTranslator::translate() is not contravariant with parameter #1 $message (mixed) of method ipl\Stdlib\Contract\Translator::translate().

Check failure on line 225 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #2 $context (string|null) of method ipl\I18n\GettextTranslator::translate() is not contravariant with parameter #2 $context (mixed) of method ipl\Stdlib\Contract\Translator::translate().

Check failure on line 225 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #1 $message (string) of method ipl\I18n\GettextTranslator::translate() is not contravariant with parameter #1 $message (mixed) of method ipl\Stdlib\Contract\Translator::translate().

Check failure on line 225 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #2 $context (string|null) of method ipl\I18n\GettextTranslator::translate() is not contravariant with parameter #2 $context (mixed) of method ipl\Stdlib\Contract\Translator::translate().

Check failure on line 225 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #1 $message (string) of method ipl\I18n\GettextTranslator::translate() is not contravariant with parameter #1 $message (mixed) of method ipl\Stdlib\Contract\Translator::translate().

Check failure on line 225 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #2 $context (string|null) of method ipl\I18n\GettextTranslator::translate() is not contravariant with parameter #2 $context (mixed) of method ipl\Stdlib\Contract\Translator::translate().

Check failure on line 225 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #1 $message (string) of method ipl\I18n\GettextTranslator::translate() is not contravariant with parameter #1 $message (mixed) of method ipl\Stdlib\Contract\Translator::translate().
{
if ($context !== null) {
$messageForGettext = $this->encodeMessageWithContext($message, $context);
Expand All @@ -239,7 +239,7 @@
return $translation;
}

public function translateInDomain($domain, $message, $context = null)
public function translateInDomain(string $domain, string $message, ?string $context = null): string

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #3 $context (string|null) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #3 $context (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #2 $message (string) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #2 $message (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #1 $domain (string) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #1 $domain (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #3 $context (string|null) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #3 $context (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #2 $message (string) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #2 $message (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #1 $domain (string) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #1 $domain (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #3 $context (string|null) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #3 $context (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #2 $message (string) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #2 $message (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #1 $domain (string) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #1 $domain (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #3 $context (string|null) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #3 $context (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #2 $message (string) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #2 $message (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().

Check failure on line 242 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #1 $domain (string) of method ipl\I18n\GettextTranslator::translateInDomain() is not contravariant with parameter #1 $domain (mixed) of method ipl\Stdlib\Contract\Translator::translateInDomain().
{
if ($context !== null) {
$messageForGettext = $this->encodeMessageWithContext($message, $context);
Expand All @@ -266,7 +266,7 @@
return $translation;
}

public function translatePlural($singular, $plural, $number, $context = null)
public function translatePlural(string $singular, string $plural, int $number, ?string $context = null): string

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #4 $context (string|null) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #4 $context (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #3 $number (int) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #3 $number (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #2 $plural (string) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #2 $plural (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #1 $singular (string) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #1 $singular (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #4 $context (string|null) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #4 $context (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #3 $number (int) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #3 $number (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #2 $plural (string) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #2 $plural (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #1 $singular (string) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #1 $singular (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #4 $context (string|null) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #4 $context (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #3 $number (int) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #3 $number (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #2 $plural (string) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #2 $plural (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #1 $singular (string) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #1 $singular (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #4 $context (string|null) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #4 $context (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #3 $number (int) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #3 $number (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #2 $plural (string) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #2 $plural (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().

Check failure on line 269 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #1 $singular (string) of method ipl\I18n\GettextTranslator::translatePlural() is not contravariant with parameter #1 $singular (mixed) of method ipl\Stdlib\Contract\Translator::translatePlural().
{
if ($context !== null) {
$singularForGettext = $this->encodeMessageWithContext($singular, $context);
Expand All @@ -288,8 +288,13 @@
return $translation;
}

public function translatePluralInDomain($domain, $singular, $plural, $number, $context = null)
{
public function translatePluralInDomain(

Check failure on line 291 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.2) / PHPStan 8.2

Parameter #1 $domain (string) of method ipl\I18n\GettextTranslator::translatePluralInDomain() is not contravariant with parameter #1 $domain (mixed) of method ipl\Stdlib\Contract\Translator::translatePluralInDomain().

Check failure on line 291 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.3) / PHPStan 8.3

Parameter #1 $domain (string) of method ipl\I18n\GettextTranslator::translatePluralInDomain() is not contravariant with parameter #1 $domain (mixed) of method ipl\Stdlib\Contract\Translator::translatePluralInDomain().

Check failure on line 291 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.5) / PHPStan 8.5

Parameter #1 $domain (string) of method ipl\I18n\GettextTranslator::translatePluralInDomain() is not contravariant with parameter #1 $domain (mixed) of method ipl\Stdlib\Contract\Translator::translatePluralInDomain().

Check failure on line 291 in src/GettextTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Static analysis (8.4) / PHPStan 8.4

Parameter #1 $domain (string) of method ipl\I18n\GettextTranslator::translatePluralInDomain() is not contravariant with parameter #1 $domain (mixed) of method ipl\Stdlib\Contract\Translator::translatePluralInDomain().
string $domain,
string $singular,
string $plural,
int $number,
?string $context = null
): string {
if ($context !== null) {
$singularForGettext = $this->encodeMessageWithContext($singular, $context);
} else {
Expand Down Expand Up @@ -326,7 +331,7 @@
*
* @return string[] Array of available locale codes
*/
public function listLocales()
public function listLocales(): array
{
$locales = [];

Expand Down
10 changes: 5 additions & 5 deletions src/Locale.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
class Locale
{
/** @var string Default locale code */
protected $defaultLocale = 'en_US';
protected string $defaultLocale = 'en_US';

/**
* Get the default locale
*
* @return string
*/
public function getDefaultLocale()
public function getDefaultLocale(): string
{
return $this->defaultLocale;
}
Expand All @@ -27,7 +27,7 @@ public function getDefaultLocale()
*
* @return $this
*/
public function setDefaultLocale($defaultLocale)
public function setDefaultLocale(string $defaultLocale): static
{
$this->defaultLocale = $defaultLocale;

Expand All @@ -42,7 +42,7 @@ public function setDefaultLocale($defaultLocale)
*
* @return string The browser's preferred locale code
*/
public function getPreferred($header, array $available)
public function getPreferred(string $header, array $available): string
{
$headerValues = Str::trimSplit($header, ',');
for ($i = 0; $i < count($headerValues); $i++) {
Expand Down Expand Up @@ -120,7 +120,7 @@ function ($a, $b) {
*
* @return stdClass Output of {@link \Locale::parseLocale()} converted to an object
*/
public function parseLocale($locale)
public function parseLocale(string $locale): stdClass
{
return (object) \Locale::parseLocale($locale);
}
Expand Down
15 changes: 10 additions & 5 deletions src/NoopTranslator.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,28 @@
*/
class NoopTranslator implements Translator
{
public function translate($message, $context = null)
public function translate(string $message, ?string $context = null): string

Check failure on line 12 in src/NoopTranslator.php

View workflow job for this annotation

GitHub Actions / PHP / Test (8.2) / PHPUnit 8.2

Declaration of ipl\I18n\NoopTranslator::translate(string $message, ?string $context = null): string must be compatible with ipl\Stdlib\Contract\Translator::translate($message, $context = null)
{
return $message;
}

public function translateInDomain($domain, $message, $context = null)
public function translateInDomain(string $domain, string $message, ?string $context = null): string
{
return $message;
}

public function translatePlural($singular, $plural, $number, $context = null)
public function translatePlural(string $singular, string $plural, int $number, ?string $context = null): string
{
return $number === 1 ? $singular : $plural;
}

public function translatePluralInDomain($domain, $singular, $plural, $number, $context = null)
{
public function translatePluralInDomain(
string $domain,
string $singular,
string $plural,
int $number,
?string $context = null
): string {
return $number === 1 ? $singular : $plural;
}
}
2 changes: 1 addition & 1 deletion src/StaticTranslator.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
class StaticTranslator
{
/** @var Translator */
public static $instance;
public static Translator $instance;
}
27 changes: 16 additions & 11 deletions src/Translation.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@ trait Translation
* default translation domain. (It's still being used as a fallback if your domain doesn't provide a
* particular message.)
*
* @var string
* @var ?string
*/
protected $translationDomain;
protected ?string $translationDomain = null;

/**
* Translate a message
*
* @param string $message
* @param string $context Message context
* @param ?string $context Message context
*
* @return string Translated message or original message if no translation is found
*/
public function translate($message, $context = null)
public function translate(string $message, ?string $context = null): string
{
return $this->translationDomain === null
? StaticTranslator::$instance->translate($message, $context)
Expand All @@ -37,11 +37,11 @@ public function translate($message, $context = null)
*
* @param string $domain
* @param string $message
* @param string $context Message context
* @param ?string $context Message context
*
* @return string Translated message or original message if no translation is found
*/
public function translateInDomain($domain, $message, $context = null)
public function translateInDomain(string $domain, string $message, ?string $context = null): string
{
return StaticTranslator::$instance->translateInDomain($domain, $message, $context);
}
Expand All @@ -55,11 +55,11 @@ public function translateInDomain($domain, $message, $context = null)
* @param string $singular Singular message
* @param string $plural Plural message
* @param ?int $number Number to decide between the returned singular and plural forms
* @param string $context Message context
* @param ?string $context Message context
*
* @return string Translated message or original message if no translation is found
*/
public function translatePlural($singular, $plural, $number, $context = null)
public function translatePlural(string $singular, string $plural, ?int $number, ?string $context = null): string
{
return $this->translationDomain === null
? StaticTranslator::$instance->translatePlural($singular, $plural, $number ?? 0, $context)
Expand All @@ -84,12 +84,17 @@ public function translatePlural($singular, $plural, $number, $context = null)
* @param string $singular Singular message
* @param string $plural Plural message
* @param ?int $number Number to decide between the returned singular and plural forms
* @param string $context Message context
* @param ?string $context Message context
*
* @return string Translated message or original message if no translation is found
*/
public function translatePluralInDomain($domain, $singular, $plural, $number, $context = null)
{
public function translatePluralInDomain(
string $domain,
string $singular,
string $plural,
?int $number,
?string $context = null
): string {
return StaticTranslator::$instance->translatePluralInDomain(
$domain,
$singular,
Expand Down
16 changes: 8 additions & 8 deletions src/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
/**
* Translate a message
*
* @param string $message
* @param string $context Message context
* @param string $message
* @param ?string $context Message context
*
* @return string Translated message or original message if no translation is found
*/
function t($message, $context = null)
function t(string $message, ?string $context = null): string
{
return StaticTranslator::$instance->translate($message, $context);
}
Expand All @@ -21,14 +21,14 @@ function t($message, $context = null)
* The returned message is based on the given number to decide between the singular and plural forms.
* That is also the case if no translation is found.
*
* @param string $singular Singular message
* @param string $plural Plural message
* @param int $number Number to decide between the returned singular and plural forms
* @param string $context Message context
* @param string $singular Singular message
* @param string $plural Plural message
* @param int $number Number to decide between the returned singular and plural forms
* @param ?string $context Message context
*
* @return string Translated message or original message if no translation is found
*/
function tp($singular, $plural, $number, $context = null)
function tp(string $singular, string $plural, int $number, ?string $context = null): string
{
return StaticTranslator::$instance->translatePlural($singular, $plural, $number, $context);
}
Loading