Example #1
0
 /**
  * {@inheritdoc}
  *
  * @return ClientView
  */
 public function render(Request $request, array $routeParams = [])
 {
     $actor = app('flarum.actor');
     $assets = $this->getAssets();
     $locale = $this->getLocale($actor, $request);
     $localeCompiler = $this->getLocaleCompiler($locale);
     $view = new ClientView($this->apiClient, $request, $actor, $assets, $localeCompiler, $this->layout);
     $view->setVariable('locales', $this->locales->getLocales());
     $view->setVariable('locale', $locale);
     // Now that we've set up the ClientView instance, we can fire an event
     // to give extensions the opportunity to add their own assets and
     // translations. We will pass an array to the event which specifies
     // which translations should be included in the locale file. Afterwards,
     // we will filter all of the translations for the actor's locale and
     // compile only the ones we need.
     $translations = $this->locales->getTranslations($locale);
     $keys = $this->translationKeys;
     event(new BuildClientView($this, $view, $keys));
     $translations = $this->filterTranslations($translations, $keys);
     $localeCompiler->setTranslations($translations);
     return $view;
 }