Метод setFallbackLocales
Метод setFallbackLocales класса Translator
задаёт список резервных локалей. Первым параметром передаётся массив локалей,
которые Symfony будет использовать по очереди, если перевод для текущей локали не найден.
Синтаксис
public function setFallbackLocales(array $locales): void
Пример
Давайте создадим переводчик и зададим ему резервные локали 'en' и 'de':
<?php
namespace App\Service;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Loader\ArrayLoader;
class TranslationService
{
public function translate(): string
{
$translator = new Translator('fr');
$translator->addLoader('array', new ArrayLoader());
$translator->addResource('array', [
'hello' => 'bonjour',
], 'fr');
$translator->addResource('array', [
'hello' => 'hello',
], 'en');
$translator->setFallbackLocales(['en', 'de']);
return $translator->trans('hello');
}
}
?>
Результат выполнения кода:
"bonjour"
Пример
Давайте проверим работу резервной локали, когда перевод для текущей локали отсутствует:
<?php
namespace App\Service;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Loader\ArrayLoader;
class TranslationService
{
public function translate(): string
{
$translator = new Translator('fr');
$translator->addLoader('array', new ArrayLoader());
$translator->addResource('array', [
'hello' => 'hello',
], 'en');
$translator->setFallbackLocales(['en', 'de']);
return $translator->trans('hello');
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте получим список резервных локалей через метод getFallbackLocales:
<?php
namespace App\Service;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Loader\ArrayLoader;
class TranslationService
{
public function getLocales(): array
{
$translator = new Translator('fr');
$translator->addLoader('array', new ArrayLoader());
$translator->setFallbackLocales(['en', 'de']);
return $translator->getFallbackLocales();
}
}
?>
Результат выполнения кода:
["en", "de"]
Смотрите также
-
класс
Translator,
который управляет переводами в приложении -
метод
trans,
который переводит сообщение по ключу -
метод
setLocale,
который задаёт текущую локаль -
метод
getFallbackLocales,
который возвращает список резервных локалей