젠드 프레임 워크 3을 처음 사용하고 경로를 번역하려고했는데 부분적으로 성공했습니다. 주요 경로를 번역하고 필요한 위치로 리디렉션 할 수 있지만 자식 경로는 번역이 작동하지만 리디렉션은 작동하지 않습니다. 제발 도와주세요, 제 코드는 아래에 있습니다.젠드 프레임 워크가 번역 된 하위 경로를 라우팅 할 수 없습니다.
module.config.php
'router' => [
'router_class' => TranslatorAwareTreeRouteStack::class,
'routes' => [
'setting' => [
'type' => Segment::class,
'options' => [
'route' => '/{locale}/{setting}',
'defaults' => [
'locale' => 'de',
'controller' => Controller\SettingController::class,
'action' => 'index',
],
],
'may_terminate'=>true,
'child_routes' =>[
'add' =>[
'type' =>'Segment',
'options' =>[
'route' =>'/{add}',
'defaults'=> [
'controller' => Controller\SettingController::class,
'action' => 'add',
],
],
],
],
],
],
],
Module.php
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
$language_session = new Container('language');
if(!$language_session->offsetExists('lang')){
$language = 'de_DE';
} else{
$language = $language_session->lang.'_'.strtoupper($language_session->lang);
}
$translator = $e->getApplication()->getServiceManager()->get('translator');
$translator->setLocale($language);
$translator->addTranslationFile('phparray', __DIR__.'/language/'.$language.'.php', 'default',$language);
$app = $e->getTarget();
$app->getEventManager()->attach('route', array($this, 'onPreRoute'), 100);
}
public function onPreRoute($e)
{
$app = $e->getTarget();
$serviceManager = $app->getServiceManager();
$serviceManager->get('router')->setTranslator($serviceManager->get('translator'));
}
그리고 내 언어 파일 de_De.php
return array(
'locale' => 'de',
'setting' => 'Einstellung',
'add' => 'hinzufügen',
);
내 위의 코드에 따라 경찰 난 리디렉션 할 수 있어요 설정 컨트롤러에 "language.devgrafioffshore.com/de/Einstellung "조치를 추가하는 저를 리디렉션하지만 난
요청 된 URL
을 받아야하는 language.devgrafioffshore.com/de/Einstellung/hinzufügen로 리디렉션 할 수하지만은 라우팅과 일치 할 수 없습니다.
미리 감사드립니다. 안녕!
설명서에 따르면 우리가 찾을 수있는 것은 (일부 코드는 정확히 동일합니다), 괜찮아 보입니다. 이 질문을 올린 후 잘못 된 것을 발견 했습니까? –
@AlFonce 예 "hinzufügen"이 작동하지 않지만 "hinzufugen"이 작동하고 URL 번역을 해결할 수있는 더 나은 방법을 찾았 으면 알려주세요. 감사!! – khukuri