在 laminas 中添加 i18n 功能
adding i18n functionality in laminas
Laminas 新手,我正在学习教程"Getting started: A skeleton application"。
接近尾声时,我发现我可能回答了 "no" 关于 i18n 的安装问题,这里我遇到了一个致命错误:未捕获 Laminas\I18n\Exception\ExtensionNotLoadedException...
问题应该通过 [Github]https://github.com/laminas/laminas-mvc-i18n 和组件安装程序解决。但我仍然有错误,即使在重新启动 Apache 之后。
回顾 laminas 组件安装程序和 laminas-mvc-i18n 的安装,一切看起来都很好。那又怎样?
编辑 1
也许我没有正确阅读?
这是完整的错误:
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
所以问题出在翻译器上。哪个译者?我只会英文。
编辑 2
所以我再次尝试使用从头开始的新安装。这次我确认所有选项都是肯定的,即当被要求安装 i18n 和所有其他选项时,我肯定地回答了。
并且我使用内置 PHP 网络服务器而不是 Apache 进行了测试。
结果还是一样的错误!
编辑 3
我在 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"
如错误所述:
Fatal error: Uncaught Laminas\I18n\Exception\ExtensionNotLoadedException: Laminas\I18n\Translator component requires the intl PHP extension
您 xampp 安装中缺少 INTL PHP 扩展。请参阅 xampp 的手册以安装缺少的扩展。
It is true that I can't see i18n when running php -info. Should be there ?
确实是。
Laminas 新手,我正在学习教程"Getting started: A skeleton application"。
接近尾声时,我发现我可能回答了 "no" 关于 i18n 的安装问题,这里我遇到了一个致命错误:未捕获 Laminas\I18n\Exception\ExtensionNotLoadedException...
问题应该通过 [Github]https://github.com/laminas/laminas-mvc-i18n 和组件安装程序解决。但我仍然有错误,即使在重新启动 Apache 之后。
回顾 laminas 组件安装程序和 laminas-mvc-i18n 的安装,一切看起来都很好。那又怎样?
编辑 1 也许我没有正确阅读? 这是完整的错误:
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
所以问题出在翻译器上。哪个译者?我只会英文。
编辑 2
所以我再次尝试使用从头开始的新安装。这次我确认所有选项都是肯定的,即当被要求安装 i18n 和所有其他选项时,我肯定地回答了。
并且我使用内置 PHP 网络服务器而不是 Apache 进行了测试。
结果还是一样的错误!
编辑 3
我在 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"
如错误所述:
Fatal error: Uncaught Laminas\I18n\Exception\ExtensionNotLoadedException: Laminas\I18n\Translator component requires the intl PHP extension
您 xampp 安装中缺少 INTL PHP 扩展。请参阅 xampp 的手册以安装缺少的扩展。
It is true that I can't see i18n when running php -info. Should be there ?
确实是。