Я следую этот учебник по Баелдунгу, и хотя языки меняются правильно, всякий раз, когда я пытаюсь перейти на кириллический язык (болгарский, русский), символы представляют собой просто вопросительные знаки. Я размещаю свое приложение на Heroku.
Я попытался выполнить heroku config:add LANG=en_US.UTF-8
в интерфейсе командной строки Heroku, но это не дало никакого эффекта.
Это код для моих LocaleResolver
,ReloadableResourceBundleMessageSource
,LocaleChangeInterceptor
и переопределенного метода addInterceptors
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.US);
return slr;
}
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
Я ожидаю получить "Добре дошъл" (Добро пожаловать на болгарском языке), однако я просто получаю ??????? вместо.
РЕДАКТИРОВАТЬ 1 После добавления Пакет сборки Heroku Locale я получаю следующую ошибку, когда пытаюсь развернуть свое приложение в Heroku:
-----> Locale app detected
cat: /tmp/build_1406e9f58f41cacf3931deb52b55d687/.locales: No such file or
directory
! Push rejected, failed to compile Locale app.
! Push failed
Да, ошибка в Edit 1 возникает после того, как я добавляю файл .locales
в корень моего приложения и отправляю его на Github. Я настроил свое приложение Heroku для сборки ветки git.
Если вы установили пакет сборки локали, удалите созданный вами файл .locales
и пакет сборки, перейдя в настройки приложения Heroku.
Я исправил проблему, применив следующие настройки в моем файле application.properties
:
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
Кроме того, обратите внимание, что первая сборка после применения этих настроек может быть очень медленной — если вы создаете в Eclipse и привыкли собирать приложение Heroku примерно за 1 минуту, имейте в виду, что сборка может занять более 5 минут.
Вы создали файл
.locales
в своем репозитории и добавили его в Git?