i got website, several locales. ex:
- fr_fr => https://mywebsite.fr
- en_fr => https://en.mywebsite.fr
- de_de => https://mywebsite.de
- es_es => http://mywebsite.es
i use jmsi18nroutingbundle that. here config:
jms_i18n_routing: locales: - fr_fr - en_fr - de_de - es_es hosts: fr_fr: mywebsite.fr en_fr: en.mywebsite.fr es_es: mywebsite.es de_de: mywebsite.de some of locales in https, others no, es_es in example.
in https://mywebsite.fr, want generate link es_es website, or inverse, generate https link fr_fr in es_es website.
actually, have nosql database redis, hash foreach locale, value 'https' true or false, , rewrite geturl method routingextension check https:
public function geturl($name, $parameters = array(), $schemerelative = false) { $url = $this->container->get('router')->generate($name, $parameters, $schemerelative ? urlgeneratorinterface::network_path : urlgeneratorinterface::absolute_url); if (isset($parameters['_locale'])) { $locale = $parameters['_locale']; } else { $locale = $this->container->get('request')->getlocale(); } // (localeget value of 'https' in redis locale) if (false === $this->localeget('https', $locale)) { $url = str_replace('https://', 'http://', $url); } else { $url = str_replace('http://', 'https://', $url); } return $url; } is way it, or have better idea ? seems ugly...
Comments
Post a Comment