Replies (30)
-
@killy, Используемый i18n — это часть Pebble
Возможно, pebble-spring4:2.4.0 не дружит с Pebble 5.
И ещё это до кучи:
github.com
Коммиты мержатся иногда, вроде, но не более того. -
@killy, Реализация github.com прямиком из stackoverflow.com
Но почему-то у меня это не работает как задумано — видимо UTF8Control не вызывается, и создаётся стандартный ResourceBundle с его latin-1. Но раньше то почему работало?
И ещё прекрасное:
Переход на utf-8 для ResourceBundle произошёл только в Java 9 (2017/09/21 General Availability).
openjdk.java.net
Кстати, пойти обновить что ли? -
@killy, Обновился с 1.8.0_131-1-ojdkbuild на 1.8.0_151-1-ojdkbuild. Без изменений.
После холодный старта — показывает крякозябры. Когда Spring решает сделать live reload — показывает нормальный русский язык. Так же было и в /5
Тут ещё забавно, что я не знаю, по какому принципу он решает делать live reload — корреляции с редактированием файлов не вижу./22 · Reply -
@vt, нагуглил какое-то васянство — github.com — почему не нормальный jdk?
-
@killy, Нашёл. Мне нужны были локализованные строки в Messages.java.
И я написал
ResourceBundle messagesBundle = ResourceBundle.getBundle("messages", locale);
вместо
ResourceBundle messagesBundle = ResourceBundle.getBundle("messages", locale, new UTF8Control());
Дальше из-за какой-то магии вообще все обращения к тому же бандлу происходили без UTF8Control. И начинали работать все вместе после живой перезагрузки.../28 · Reply -
@killy, А. Загруженные бандлы кешируются, но Control не используется при создании CacheKey.
Используется getLoader(Reflection.getCallerClass()), и он, получается, совпал для вызовов из i18nFunction.java и Messages.java.
Глядя на функцию getLoader, остаётся предположить, что это был RBClassLoader.INSTANCE.