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 |
Tags
- mySQL_Replication
- transfer
- listener 1883
- DataGridView 직접 입력
- setInterval 정지
- AntDesign
- pm2 설치
- timepicker
- invalid data
- Replication
- setInterval 외부 정지
- setInterval 중지
- pm2 상태 확인
- html #select #option #multiple
- 1883
- mosquitto
- pm2 시작
- 맥 어드레스
- 공인IP
- c# datagridview 데이터 넣기
- datagridview 직접입력
- pm2 확인
- mosquitto.conf
- setInterval clear
- 서버동기화
- DatePicker
- pm2
- map이 undefined가 뜰 때
- 데이터테이블 데이터 넣기
- allow_anonymouse
Archives
- Today
- Total
개발 노트
Next.js 구글번역을 이용한 웹페이지 번역 본문
쿠키관련 사용부분 업데이트
//언어설정값에 따라 useState 변경
const handleChange = (value: string) => {
const lang = "/auto/" + value;
setLangCookie(lang);
};
앞쪽에 auto를 붙여서 사용하는 코드로 변경
//langCookie값 변화에 따라 실행시키는 이벤트 (언어감지)
useEffect(() => {
const splitLangCookie = langCookie.split("/")[2];
if (splitLangCookie === "ko") {
resetGoogleTranslate();
} else {
const element = document.querySelector<HTMLSelectElement>(".goog-te-combo");
if (element) {
element.value = splitLangCookie;
element.dispatchEvent(new Event("change"));
}
}
}, [langCookie]);
사용시에는 split으로 잘라서 사용
<div>
<div id="google_translate_element" style={{ visibility: "hidden", width: "1px", height: "1px" }}></div>
<LanguageSelector onChange={handleChange} value={langCookie.split("/")[2]} />
{langCookie.split("/")[2] !== 'ko' &&
<Script
src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"
strategy="afterInteractive"
/>
}
</div>
return부분도 잘라서 사용하는 코드로 변경
export default function LanguageSelector({ onChange, value }: LanguageSelectorProps) {
return (
<Select
className='w-[70px] py-0.5'
onChange={onChange}
value={value ? value : 'ko'}
>
{languages.map(lang => (
<Option key={lang.value} value={lang.value}>
<p className='flex flex-row items-center'>
<img src={lang.src} alt={lang.label} className="w-6 h-4" />
{/* {lang.label} */}
</p>
</Option>
))}
</Select>
);
}
LanguageSelector에서 값이 없을 시 'ko'로 처리하도록 변경
import { cookies } from 'next/headers';
export const getPrefLangCookie = () => {
return cookies().get("googtrans")?.value ?? "ko";
};
return(
<Layout settingData={parsedSettingData} langCookie={langCookie}>{children}</Layout>
)
서버컴포넌트 내에서 쿠키값 가져온 뒤 prop으로 전달
'React' 카테고리의 다른 글
next-auth (2) | 2024.10.31 |
---|---|
CMAN BUILD (0) | 2024.09.02 |
next.js에 구글 번역 적용하기 (0) | 2024.07.26 |
다국어 지원 관련 방법 2 (0) | 2024.07.25 |
국제화 관련 사이트 (0) | 2024.07.25 |