/** * index * * @param IlluminateConfig $config laravel config * @param MenuRetrieveHandler $menuHandler menu handler * @param MenuCacheHandler $cacheHandler menu cache handler * @param SiteHandler $siteHandler site handler * * @return RendererInterface */ public function index(IlluminateConfig $config, MenuRetrieveHandler $menuHandler, MenuCacheHandler $cacheHandler, SiteHandler $siteHandler) { $siteKey = $siteHandler->getCurrentSiteKey(); $menus = $menuHandler->getAllMenu($siteKey); $homeMenuId = $siteHandler->getHomeInstanceId(); $menuMaxDepth = $config->get('xe.menu.maxDepth'); $transKey = []; foreach ($menus as $menu) { $transKey = array_merge($transKey, $cacheHandler->getMenuItemKeys($menu)); } // 메뉴 어드민 트리 뷰에서 필요한 고유 다국어 FrontEnd::translation(['xe::addItem', 'xe::goLink', 'xe::setHome']); // 메뉴 타이틀 user 다국어 Frontend::translation($transKey); return Presenter::make('menu.index', ['siteKey' => $siteKey, 'menus' => $menus, 'home' => $homeMenuId, 'maxDepth' => $menuMaxDepth]); }
{{ App::setLocale('ko') }} {{ XeLang::trans('lang::message', ['name' => '준호']) }}<br/> {{ XeLang::transChoice('lang::bananas', 1) }}<br/> {{ XeLang::transChoice('lang::bananas', 2) }} => 복수지만 locale이 ko라서 첫번째 문장이 선택됨<br/> {{ XeLang::transChoice('lang::apples', 0) }} => 0<br/> {{ XeLang::transChoice('lang::apples', 1) }} => 1<br/> {{ XeLang::transChoice('lang::apples', 19) }} => 19<br/> {{ XeLang::transChoice('lang::apples', 20) }} => 20<br/> {{ App::setLocale('en') }} <br/> <h4>프론트엔드 다국어</h4> <span> <?php FrontEnd::translation('lang::message'); Frontend::translation('lang::bananas'); Frontend::translation('lang::next'); Frontend::translation(['lang::week.mon', 'lang::week.tue']); Frontend::translation('lang::nothing'); ?> <script> document.write(XE.Lang.trans('lang::message', {'name': '준호'}) + "<br/>"); document.write(XE.Lang.transChoice('lang::bananas', 1) + "<br/>"); document.write(XE.Lang.transChoice('lang::bananas', 2) + "<br/>"); document.write(XE.Lang.trans('lang::next') + "<br/>"); document.write(XE.Lang.trans('lang::previous') + " => 존재하는 key이지만 load를 안한경우<br/>"); document.write(XE.Lang.trans('lang::week.mon') + "<br/>"); document.write(XE.Lang.trans('lang::week.tue') + "<br/>"); document.write(XE.Lang.trans('lang::nothing') + " => 존재하지 않는 key는 head의 다국어 script에 set 되지도 않게 함<br/>"); </script>