설정한 멀티랭귀지가 사용자가 설정한 브라우저 기본 언어에 맞춰서 언어를 뿌려주는데
ex) 한국어 -> 한국어, 영어 -> 영어 ...
로컬 스토리지에 언어에 대한 값을 저장을 하고 사용하니
문제점을 발견하였다.
언어 설정을 변경할 수 있는 셀렉트 박스를 하나 주었는데,
기본 브라우저 언어 설정이 한국어인 사람이 영어를 고르면 영어페이지가 보여지지만
브라우저를 종료하고 다시 사이트에 접속을 할시에 로컬 스토리지에 저장한 언어에 대한 정보가 남아있어서 계속 영어로 표시가 되었다.
원하는 시나리오는 브라우저를 종료하고 다시 사이트에 접속할 때, 브라우저 기본 언어로 보여주고, select 박스로 바꾼 언어가 있을 시 페이지 새로고침을 해도 셀렉박스 기준으로 언어를 보여주며 페이지를 이동해도 언어가 유지되어야한다.
이떄, 브라우저 종료하고 다시 들어오면 다시 브라우저 기본 언어로 표시.
spa같은 경우에는 싱글페이지여서 전역 변수만을 이용해서 설정해주면,
브라우저를 종료시에 전역변수가 초기화 되면서 원하는 시나리오 대로 굴러갈 것 같았지만
spa가 아니라서 전역 변수는 쓰지 못하였다.
로컬 스토리지는 브라우저를 종료해도 값이 날아가지가 않아서
세션으로 바꾸고 문제를 해결하였다.
로컬 스토리지는 브라우저를 종료해도 값이 남아있는 반면
세션의 경우 새로고침을 하면 유지하지만 브라우저를 종료하면 날아가기 때문에
딱 원하는 시나리오 대로 구성할 수 있다.
출처