translateInDomain($domain, $text, $context); } /** * Translate a plural string * * Falls back to the default domain in case the string cannot be translated using the given domain * * @param string $textSingular The string in singular form to translate * @param string $textPlural The string in plural form to translate * @param integer $number The amount to determine from whether to return singular or plural * @param string $domain The primary domain to use * @param string|null $context Optional parameter for context based translation * * @return string The translated string */ public static function translatePlural($textSingular, $textPlural, $number, $domain, $context = null) { return StaticTranslator::$instance->translatePluralInDomain( $domain, $textSingular, $textPlural, $number, $context ); } /** * Emulated pgettext() * * @link http://php.net/manual/de/book.gettext.php#89975 * * @param $text * @param $domain * @param $context * * @return string */ public static function pgettext($text, $domain, $context) { return StaticTranslator::$instance->translateInDomain($domain, $text, $context); } /** * Emulated pngettext() * * @link http://php.net/manual/de/book.gettext.php#89975 * * @param $textSingular * @param $textPlural * @param $number * @param $domain * @param $context * * @return string */ public static function pngettext($textSingular, $textPlural, $number, $domain, $context) { return StaticTranslator::$instance->translatePluralInDomain( $domain, $textSingular, $textPlural, $number, $context ); } /** * Register a new gettext domain * * @param string $name The name of the domain to register * @param string $directory The directory where message catalogs can be found * * @return void */ public static function registerDomain($name, $directory) { /** @var GettextTranslator $translator */ $translator = StaticTranslator::$instance; $translator->addTranslationDirectory($directory, $name); } /** * Set the locale to use * * @param string $localeName The name of the locale to use * * @return void */ public static function setupLocale($localeName) { /** @var GettextTranslator $translator */ $translator = StaticTranslator::$instance; $translator->setLocale($localeName); } /** * Split and return the language code and country code of the given locale or the current locale * * @param string $locale The locale code to split, or null to split the current locale * * @return object An object with a 'language' and 'country' attribute */ public static function splitLocaleCode($locale = null) { /** @var GettextTranslator $translator */ $translator = StaticTranslator::$instance; if ($locale === null) { $locale = $translator->getLocale(); } return (new Locale())->parseLocale($locale); } /** * Return a list of all locale codes currently available in the known domains * * @return array */ public static function getAvailableLocaleCodes() { /** @var GettextTranslator $translator */ $translator = StaticTranslator::$instance; return $translator->listLocales(); } /** * Return the preferred locale based on the given HTTP header and the available translations * * @param string $header The HTTP "Accept-Language" header * * @return string The browser's preferred locale code */ public static function getPreferredLocaleCode($header) { /** @var GettextTranslator $translator */ $translator = StaticTranslator::$instance; return (new Locale())->getPreferred($header, $translator->listLocales()); } }