Solución:
Instale la extensión PHP intl
En primer lugar, necesitará la extensión PHP intl, ya que la extensión Twig está construida sobre eso. La extensión Twig Intl arrojará una excepción si la extensión PHP intl no está habilitada. Las instrucciones de instalación se pueden encontrar en la documentación oficial de PHP.
En máquinas Ubuntu / Debian, esto es tan fácil como ejecutar el siguiente comando:
sudo apt install php-intl
En máquinas con Windows, probablemente deba descomentar la siguiente línea en php.ini:
extension=php_intl.dll
Para CentOS u otras arquitecturas, siga las instrucciones aquí. Tenga en cuenta que CentOS requiere que estén instalados tanto PECL como el compilador GCC C ++: yum install php-pear
y yum install gcc-c++
.
Una vez que se agrega la extensión a php.ini, reinicie el servidor web.
Instale las extensiones Twig
A continuación, necesitará el paquete Twig Extensions (que contiene la extensión Intl, entre otros), que se puede instalar usando Composer. Ejecute este comando en la línea de comandos:
composer require twig/extensions
Esto agregará la dependencia a su composer.json
y descárgalo.
Nota la localizednumber
y localizedcurrency
Los filtros se introdujeron en la versión 1.2.0, por lo que necesita al menos esa versión si desea utilizarlos.
Agregar la extensión a Twig
Si está utilizando Twig directamente (es decir, no en un proyecto Symfony), agregue la extensión al entorno Twig manualmente:
<?php
use TwigEnvironment;
use TwigExtensionsIntlExtension;
$twig = new Environment($loader);
$twig->addExtension(new IntlExtension());
Agregar la extensión a Twig (en Symfony)
Si está utilizando una aplicación Symfony, puede agregar la extensión a Twig creando un servicio y etiquetándolo como una extensión Twig en config/services.yml
:
services:
twig.extension.intl:
class: TwigExtensionsIntlExtension
tags:
- { name: twig.extension }
Configuración de la configuración regional predeterminada
<?php
Locale::setDefault('nl-NL');
Establecer la configuración regional predeterminada en Symfony
En config/framework.yaml
, descomenta el default_locale
configuración:
framework:
default_locale: en