Nextjs

nextjs 13에서 다국어 지원하기 - next-intl

manyYun 2024. 9. 2. 08:58

https://surviveasdev.tistory.com/entry/Nextjs%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%8B%A4%EA%B5%AD%EC%96%B4-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-next-intl-next-app-router

 

Next.js를 사용해서 다국어 지원하는 방법 - next-intl, next app router

Nextjs 13/14에서 다국어(localization)를 지원 할 수 있도록 설치 부터 어떻게 다른 언어를 사용 할 수 있는지 알아보겠습니다. 예시에서 사용될 next.js에 버전은 13/14이고 여기서 app 라우팅을 사용해서

surviveasdev.tistory.com

 

+) 지역에 따른 locale 설정 : HTTP헤더의 accept-language를 따라간다. 따라서 브라우저의 언어 설정을 지정해주면 거기에 맞춰 language가 선택된다.

나의 경우 middleware.js에서 defaultLocale을 en으로 해놨고 navigation.js에서 지원 언어를 [en, ko]로 설정해놨다.

크롬 언어 설정을 바꾸면서 시험해봤는데, 이렇게하면

 

1순위 언어가 영어일때는 - /en

한국어 - /ko

그 외 언어 - /en

 

으로 자동 접속되는걸 확인했다.

https://developer-syubrofo.tistory.com/72

 

Spring으로 다국어 페이지 만들기

회사 홈페이지를 다국어로 퍼블리싱을 해야 한다는 이야기를 듣고 나서 Spring을 이용한 다국어 페이지 만드는 방법을 여러가지 검색을 해보면서 구현을 해봤다. 나는 메세지 번들까지는 사용하

developer-syubrofo.tistory.com

 

++)  next-intl에서 router.push()로 언어를 바꾸고 이전에 방문한 페이지를 들어가면 그 페이지에서 마지막으로 쓰였던 locale로 바뀌는 오류

무슨말이냐면

 

/en/하위페이지1 로 들어간다.

-> /en/하위페이지2 로 넘어간다.

-> language 전환 버튼을 눌러 /ko/하위페이지2로 변경 후 뒤로가기 or /하위페이지1로 접속

-> /ko/하위페이지1이 아닌 /en/하위페이지1로 자동접속됨

 

이게 이전에 한번씩 방문했던 페이지가 계속 그랬다. 새로 접속하는 페이지에서는 전환한 language로 잘 나왔다. => 이것도 다시한번 전환 후 접속하면 오류 발생

 

뭔가 기록이 남아서 자동으로 바뀌는거같은데, 공식 홈페이지를 보면 계속 유지돼야하는게 맞는거같은데.. 시간이 지나서 잘 모르겠다. 어쨋든 해결방법은 그냥 이동메뉴 link 앞에 

/${locale === "ko" ? "ko" : "en"}

 넣어주기