Próbuję osiągnąć podobny efekt, który występuje na stronie IMDB http://www.imdb.com/title/tt1825683/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=740b2354-425b-4cd3-947b-7f9cb4349875&pf_rd_r=0M2W76DFP151J7EMM4FD&pf_rd_s=right-7&pf_rd_t=15061&pf_rd_i=homepage&ref_=hm_cht_t1. Otóż po wejściu na stronę ukazuje nam się tytuł po polsku i data premiery spersonalizowana dla polski, mimo, że reszta strony jest po angielsku. Zaciekawiło mnie to, więc postanowiłem wykorzystać podobny zabieg u mnie w aplikacji, lecz nie mogę za bardzo go osiągnąć.

Jestem pewny, że nie personalizują treści w języku użytkownika poprzez identyfikację języka w nagłówku. Ponieważ po zmienia języka przeglądarki na jakikolwiek inny tytuł na IMDB wciąż jest po polsku. Ustawiłem dla przeglądarki język japoński https://zapodaj.net/6457edf4d8958.png.html. Następnie wszedłem na IMDB, uruchomiłem zakładkę Network i jest pokazane, że w Accept-Language jest ja https://zapodaj.net/c0cd17b8ee5ea.png.html. Jednak IMDB dalej identyfikuje nas z kraju Polska. Co ciekawe np. Google w ty momencie zmienia swój język na japoński https://zapodaj.net/15455f4e3ce2e.png.html.

Nie wiedząc jak robi to IMDB, próbowałem to zrobić na swój sposób z mizernym skutkiem. Utworzyłem interceptor, który pobierał nagłówek języka i ustawiał jako lokalny

        String userLocale = request.getHeader("Accept-Language");
        Locale.setDefault(new Locale(userLocale.substring(0, 2), userLocale.substring(3, 5)));

wtedy mogłem sobie wyświetlić również datę premiery spersonalizowaną dla danego kraju

movieEntity.getReleaseDates().stream()
                .map(ServiceUtils::toReleaseDateDto)
                .filter(rd -> rd.getCountry().getCode().equals(Locale.getDefault().getCountry()))
                .findFirst();

Jednak jak się okazało działało to tylko dla krajów, gdzie urzędowy jest język angielski np. USA I Kanada.
Kod zwracający używany język

        request.getHeader("Accept-Language");

zwracał dla USA en-US,en;q=0.9,pl;q=0.8,ja;q=0.7,en-CA;q=0.6,fr;q=0.5,pl-PL;q=0.4, a dla Kanady en-CA,en-US;q=0.9,en;q=0.8,pl;q=0.7,ja;q=0.6,fr;q=0.5,pl-PL;q=0.4. W przypadku np. tych dwóch państw zwracany jest dla mnie prawidłowy nagłówek, gdzie mogę sobie wydzielić język i kraj np. lang: en, country: US.

Natomiast gdy ustawię dla przeglądarki język, gdzie urzędowym nie jest angielski np. Polska, Japonia, Francja to kod wygląda m.in. tak dla Polski pl,en-CA;q=0.9,en-US;q=0.8,en;q=0.7,ja;q=0.6,fr;q=0.5,pl-PL;q=0.4. Jak widać początek nagłówka nie składa już się z język-KRAJ, tylko podany jest sam język.

Koniec końców wracam do punktu wejścia i dalej nie wiem jak zrobiono to w serwisie IMDB, bo na pewno nie tak jak ja to próbowałem zrobić.