Я использую эту простую конфигурациюSpring локаль распознаватель - текущая локаль в URL
<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<beans:property name="basename" value="classpath:localization/messages" />
<beans:property name="defaultEncoding" value="UTF-8" />
</beans:bean>
<interceptors>
<beans:bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<beans:property name="paramName" value="lang" />
</beans:bean>
</interceptors>
<beans:bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<beans:property name="defaultLocale" value="en" />
<beans:property name="cookieMaxAge" value="100000" />
</beans:bean>
работает хорошо, но что, если кто-то отправит URL кому-то другому? Это работает только с клиентским браузером. Если пользователь меняет локализацию, он установит файл cookie. Я видел много веб-сайтов, что у них есть локализация после первой косой черты в URL (например, nette.org/en/about
). Когда кто-то отправит эту ссылку, она разрешит локализацию в зависимости от url. Существует ли какое-либо простое решение для этого в весеннем контексте? Как-то отобразить это место в URL-адресе?
И в чем разница? Может быть, не ясно из моего поста, какова моя цель. Кто-то просматривает мою страницу в «de» locale, и он хочет отправить URL-адрес кому-то другому, но страница будет отображаться в локали по умолчанию (ru) кому-то, кто открыл этот URL-адрес, и это то, чего я не хочу. Я хочу открыть страницу в том же языке (de). Ваше решение не разрешает это. –
Единственное решение для этого - получить локаль в URL-адресе, и мой вопрос состоял в том, что это можно сделать просто с весны, я имею в виду некоторый перехватчик, который добавляет текущий язык во все URL-адреса. –
Это определенно делает это ... Я использую то же самое в своем проекте. –