我需要实现一个多语言的网站。然后我需要使用i18n和翻译器,但我在路由翻译器上有一些问题
这是我的module.config.php
{
return [
'router' => [
'router' => [
'router_class' => TranslatorAwareTreeRouteStack::class,
],
'routes' => [
'home' => [
'type' => Literal::class,
'options' => [
'route' => '/',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
'application' => [
'type' => Segment::class,
'options' => [
'route' => '/{contact}',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
],
]};
}这是我的Module.php类
public function onBootstrap(MvcEvent $e)
{
/** @var \Zend\Mvc\I18n\Translator $translator */
$translator = $e->getApplication()->getServiceManager()->get('MvcTranslator');
$translator->addTranslationFilePattern(
'phpArray',
Resources::getBasePath(),
Resources::getPatternForValidator()
);
AbstractValidator::setDefaultTranslator($translator);
} 当我启动应用程序时,我得到了这个错误
Zend\Router\Exception\RuntimeException: No translator provided in ..vendor\zendframework\zend-router\src\Http\Segment.php on line 372 如何将translator传递给segment类?我需要使用不同的类进行翻译吗?
发布于 2018-10-28 18:35:23
问题出在配置上。我提议这样做
'router' => [
'router_class' => \Zend\Mvc\I18n\Router\TranslatorAwareTreeRouteStack::class,
'routes' => [
],
],在全局配置中,一切工作正常。
https://stackoverflow.com/questions/52920013
复制相似问题