Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- datagridview 직접입력
- html #select #option #multiple
- 서버동기화
- pm2 설치
- c# datagridview 데이터 넣기
- DataGridView 직접 입력
- 공인IP
- setInterval 중지
- 1883
- DatePicker
- map이 undefined가 뜰 때
- AntDesign
- listener 1883
- timepicker
- mosquitto
- mySQL_Replication
- 맥 어드레스
- 데이터테이블 데이터 넣기
- setInterval 정지
- invalid data
- pm2 시작
- transfer
- setInterval clear
- allow_anonymouse
- pm2 상태 확인
- setInterval 외부 정지
- pm2
- mosquitto.conf
- pm2 확인
- Replication
Archives
- Today
- Total
개발 노트
Next.js 13 이상 localization 적용하기 본문
localization 이란?
국제화( i18n)을 통해 감지한 언어로 번역 및 언어를 교체 해줍니다.
적용하기
1. app/[lang]/dictionaries.js 만들어 번역하는 모듈을 적용시켜 줍니다.
import 'server-only'
const dictionaries = {
en: () => import('../../public/dictionaries/en.json').then((module) => module.default),
ko: () => import('../../public/dictionaries/ko.json').then((module) => module.default),
}
export const getDictionary = async (locale) => await dictionaries[locale]()
2. 정적으로 렌더링 해주기위해 public하위에 dictionaries폴더 구성 후 ko.json/en.json 등 각자 필요한 언어에 맞는 json파일을 생성해 줍니다.
{
"title": "아기소닷컴",
"more": "+ 더보기",
"home": {
"video": "영상",
"notice": "공고",
"news": "뉴스"
},
"video":{
"links":"관련 비디오 링크"
}
}
3. app의 최상단 page.js에 적용시켜줍니다.
import Heading from "@/component/Heading";
import VideoPlayer from "@/component/VideoPlayer";
import Post from "@/component/Post";
// dictionaries로 부터 getDictionary가지고 오기
import { getDictionary } from "./dictionaries";
// async함수로 변환 후 await으로 dict값 가지고오기
export default async function Home({ params: { lang } }) {
const dict = await getDictionary(lang);
// json파일의 경로대로 입력해주기
return (
<main className="flex flex-col gap-y-20 max-w-[1024px] mx-auto">
<Heading content={dict.home.video} link={`/video`} >
<VideoPlayer />
</Heading>
<Heading content={dict.home.notice} link={`/notice`} >
<Post />
<Post />
</Heading>
<Heading content={dict.home.news} link={`/news`} >
<Post />
<Post />
<Post />
</Heading>
</main>
);
}
참고: https://nextjs.org/docs/app/building-your-application/routing/internationalization#localization
'React' 카테고리의 다른 글
[Next.js] web worker을 이용한 mqtt와 웹소켓 적용하기 (0) | 2024.02.06 |
---|---|
webWorker관련 참고자료 (0) | 2024.02.05 |
Next.js 13 이상 국제화(i18n) 적용 (0) | 2024.01.19 |
next.js 언어모듈 참고 (0) | 2024.01.18 |
npm Cannot read properties of undefined (reading 'stdin') error (0) | 2024.01.17 |