i18n
라이브러리를 사용하였다.internationalization을 i18n으로 나타낸 것이며, 웹사이트를 구축할 때 다국어처리에 자주 쓰이는 라이브러리라고 한다~~~
npm install i18next --save //i18next
npm install react-i18next i18next --save //react용 i18next
npm install i18next-browser-languagedetector //브라우저에서 사용자 언어를 감지
나머지는 구글링과 해당 공식문서를 보면서 쭉쭉 진행했다.
구글링을 해보고 여러 가지 시도를 해보다가 아래 글의 블로그를 발견!
json 파일의 객체 안의 값들을 접근하려면
keySeparator
옵션 값을 변경해야 된다!!!
keySeparator: false
-> `keySeparator: '.'으로 바꾸니 에러 해결i18n
파일 수정 전 (keySeparator: false
)
i18n
파일 수정 후 (keySeparator: '.'
)
아래 사진처럼 띄어쓰기할 부분을 \n
을 넣는다.
split('\n')
을 하여 map
을 돌리면 제대로 출력이 된다.
다른 부분을 map을 돌리다가 아래처럼 수정을 하였다. 공식 문서에서는 map
을 돌릴 때 {returnObject: true}
를 넣어야 된다는 글을 보고 수정하였다. (근데 위에 사진처럼 리턴이 없을 때도 잘 돌아간다?ㅎㅎㅎ)
이 에러 잡는데 너무 힘들었다... 위에 띄어쓰기 때와 똑같이 map을 돌렸는데 자꾸 저 에러가 뜬다..
다양한 방법으로 map을 수정해 보고 공식 문서, 블로그, stackoverflow도 참고해 보았지만 전혀 먹히지 않았다🤮 이때 멘탈나감 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
'translationListKo'
의 객체를 map으로 돌리고 'translationListKo'
의 CardNubmer
를 접근하기 위해 'translationListKo.CardNumber'
로 map을 돌린 것이 문제였다.json 파일로 변경 전
ProjectsList.jsx
파일을 똑같이map
을 돌릴 때 아래처럼 하였는데 왜 json 파일을 map 돌릴 때 실수를 했는가🤣
제대로 출력된 것을 보고 신났지만 .........
resources
의 ko
에는 about
과 projectList
json 파일
을 두개로 나눠서 작업하였다.ko
json 파일이 두 개여서 문제였던 것 같다. 두 개여도 하는 방법이 있는 것 같은데 나는 json 파일을 하나로 합쳤다.json
을 하나에 합치니 제대로 작동한다!