Метод getAlpha3Code
Метод getAlpha3Code принадлежит классу Languages
и возвращает трёхбуквенный код языка (ISO 639-2)
по его двухбуквенному коду (ISO 639-1).
Первым параметром передаётся двухбуквенный код языка.
Метод возвращает строку с трёхбуквенным кодом
или бросает исключение InvalidArgumentException,
если передан неизвестный код.
Синтаксис
$languages->getAlpha3Code($alpha2);
Пример
Давайте получим трёхбуквенный код для английского языка:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Intl\Languages;
class LanguageController extends AbstractController
{
public function index(): Response
{
$res = Languages::getAlpha3Code('en');
return new Response($res);
}
}
?>
Результат выполнения кода:
"eng"
Пример
Давайте получим трёхбуквенные коды для нескольких языков:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Intl\Languages;
class LanguageController extends AbstractController
{
public function index(): Response
{
$codes = ['ru', 'de', 'fr', 'es'];
$res = [];
foreach ($codes as $code) {
$res[] = Languages::getAlpha3Code($code);
}
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
["rus", "deu", "fra", "spa"]
Пример
Давайте обработаем исключение при передаче неизвестного кода:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Intl\Languages;
use Symfony\Component\Intl\Exception\InvalidArgumentException;
class LanguageController extends AbstractController
{
public function index(): Response
{
try {
$res = Languages::getAlpha3Code('abcde');
} catch (InvalidArgumentException $e) {
$res = 'unknown language';
}
return new Response($res);
}
}
?>
Результат выполнения кода:
"unknown language"