Search code examples
laminas

adding i18n functionality in laminas


New to Laminas, I am following the tutorial "Getting started: A skeleton application".

Close to the end, I am figuring out that I probably answered "no" to the install question about i18n and here I am with a Fatal error: Uncaught Laminas\I18n\Exception\ExtensionNotLoadedException...

The issue should be solved with [Github]https://github.com/laminas/laminas-mvc-i18n and with the component installer. But I still have the error, even after restarting Apache.

Looking back at the installation of the laminas component installer and laminas-mvc-i18n everything looks to be fine. So what?

EDIT 1 Maybe I did not read properly? Here is the full error:

Fatal error: Uncaught Laminas\I18n\Exception\ExtensionNotLoadedException: Laminas\I18n\Translator component requires the intl PHP extension in C:\xampp\htdocs\laminas-mvc-skeleton\vendor\laminas\laminas-i18n\src\Translator\Translator.php:258 Stack trace: #0 C:\xampp\htdocs\laminas-mvc-skeleton\vendor\laminas\laminas-i18n\src\Translator\Translator.php(354): Laminas\I18n\Translator\Translator->getLocale() #1 C:\xampp\htdocs\laminas-mvc-skeleton\vendor\laminas\laminas-mvc-i18n\src\Translator.php(71): Laminas\I18n\Translator\Translator->translate('Laminas MVC Ske...', 'default', NULL) #2 C:\xampp\htdocs\laminas-mvc-skeleton\vendor\laminas\laminas-view\src\Helper\HeadTitle.php(163): Laminas\Mvc\I18n\Translator->translate('Laminas MVC Ske...', 'default') #3 C:\xampp\htdocs\laminas-mvc-skeleton\vendor\laminas\laminas-view\src\Helper\HeadTitle.php(86): Laminas\View\Helper\HeadTitle->Laminas\View\Helper{closure}('Laminas MVC Ske...') #4 C:\xampp\htdocs\laminas-mvc-skeleton\vendor\laminas\laminas-view\src\Helper\HeadTitle.php(70): in C:\xampp\htdocs\laminas-mvc-skeleton\vendor\laminas\laminas-i18n\src\Translator\Translator.php on line 258

So the problem lies in the translator. Which translator? I only use English.

EDIT 2

So I tried again using a new install from scratch. This time I confirmed yes to all options i.e. I replied positively when asked to install i18n and all other options.

And I tested with the Built-in PHP web Server instead of Apache.

The result is the same error!

EDIT 3

List of extensions I have in composer.json

    "laminas/laminas-component-installer": "^1.0 || ^2.1",
    "laminas/laminas-development-mode": "^3.2",
    "laminas/laminas-mvc": "^3.1.1",
    "laminas/laminas-cache": "^2.9.0",
    "laminas/laminas-db": "^2.10.0",
    "laminas/laminas-mvc-form": "^1.0",
    "laminas/laminas-json": "^3.1.2",
    "laminas/laminas-log": "^2.11",
    "laminas/laminas-mvc-console": "^1.2.0",
    "laminas/laminas-mvc-i18n": "^1.1.1",
    "laminas/laminas-mvc-plugins": "^1.0.1",
    "laminas/laminas-psr7bridge": "^1.2.0",
    "laminas/laminas-session": "^2.9.1",
    "laminas/laminas-di": "^3.1.1"

Solution

  • As the error says:

    Fatal error: Uncaught Laminas\I18n\Exception\ExtensionNotLoadedException: Laminas\I18n\Translator component requires the intl PHP extension

    you are lacking INTL PHP extension in you xampp installation. Refer to manual of xampp to install missing extension.

    It is true that I can't see i18n when running php -info. Should be there ?

    Yes indeed.