Я использую плагин OctoberCMS Translate (https://octobercms.com/plugin/rainlab-translate) и он работает в соответствии с моими ожиданиями.
Однако у меня есть одно пользовательское требование, в котором я генерирую га sh в URL (то есть http://localhost/ibis/whats-on/details#2020 -sydney-international-whitewater-event - # 2020-sydney-international-whitewater-event ).
Теперь дело в том, , когда я должен перенаправить, используя приведенный ниже код,
{% for code, name in locales %}
<a class="dropdown-item" href="#" data-request="onSwitchLocale" data-request-data="locale: '{{ code }}'">
{{ name |upper }}
</a>
Я могу перенаправить, однако мой URL теряет свой тег ha sh, и он становится чем-то вроде http://localhost/ibis/fr/whats-on/details ( fr - мой выбранный французский язык).
Здесь ниже мой код перезаписи на вкладке кода макета в onSwitchLocale
метод, который предоставляется Перевести плагин .
use RainLab\Translate\Models\Locale as LocaleModel;
use RainLab\Translate\Classes\Translator;
use October\Rain\Router\Router as RainRouter;
function onSwitchLocale()
{
$this->translator = Translator::instance();
$locale = post('locale');
if (!$locale = post('locale')) {
return;
}
$this->translator->setLocale($locale);
$pageUrl = $this->translator->withPreservedQueryString($this->translator->makeLocaleUrlFromPage($locale), $locale);
if ($this->property('forceUrl')) {
return Redirect::to($this->translator->getPathInLocale($pageUrl, $locale));
}
return Redirect::to($pageUrl);
}
Как вы видите, я пытается выполнить sh перенаправление URL с ha sh, но я получаю здесь ошибку, говоря:
вызов неопределенного метода RainLab \ Translate \ Classes \ Translator :: withPreservedQueryString ()
И не удалось выполнить этот запрос. Я продолжил исследования и обнаружил, что withPreservedQueryString
имеет защищенный метод, и я пытался различными способами выполнить этот метод, но не смог этого сделать.
Итак, сначала мне нужно выполнить sh, а затем я хочу добавить тег hash
в свой URL.
Может ли кто-нибудь подсказать мне, как мне этого добиться?
Спасибо