728x90
React Native에서 Next.js로 웹뷰 이동을 할 때,
React Native에 미리 세팅된 언어를 Next.js에도 똑같이 적용을 하고 싶다.
1) localStorage에 저장해서 클라이언트 렌더링 때 context 등의 전역변수로 관리한다.
- 클라이언트 렌더링 할 때서야 언어를 감지하므로 UX 상 좋지 않다.
2) Next.js는 서버사이드 렌더링이기 때문에 서버에서 미리 유저의 언어를 알아낸다.
- 이거다! HTTP Aceept-Language 헤더에 기반해 사용자의 local을 감지하면 된다.
// RN 코드
import WebView from "react-native-webview";
<WebView
...
source={{
uri: "이동할 URL",
headers: {
'Accept-Language': `${사용자 언어}`, // ex) "ko", "en"
},
}}
/>
// next.js 코드
// next-18next.config.js
/** @type {import('next-i18next').UserConfig} */
module.exports = {
i18n: {
defaultLocale: "en",
locales: ["en", "ko", "es"], // 영어, 한국어, 스페인어 지원
localeDetection: true, // 디폴트 값. 이것이 true여야 'Accept-Language'에 있는 locale을 감지한다.
},
};
이것이 SSR이로구나 👀 👀 👀
참고
https://jake-seo-dev.tistory.com/483
https://nextjs.org/docs/pages/building-your-application/routing/internationalization
'Development > React Native' 카테고리의 다른 글
WebP 적용하기 (1) | 2023.10.27 |
---|---|
React Native Flipper 사용 시, Android 에뮬레이터 인식하지 못할 때 (0) | 2023.09.14 |
[React Native] 기기에 맞게 폰트 사이즈 대응하는 방법! (0) | 2023.07.20 |
[React Native] react native typescript 환경에서 env 파일 사용하기 (0) | 2023.07.16 |
[React Native] 렌더링 수 줄이기 대작전 🔥 : apollo client - useMutation 에 ignoreResults 옵션 사용하기. (0) | 2023.07.12 |