Merge branch 'main' of https://gitea.bpsoft.co.kr/nicepayments/nice-app-web
This commit is contained in:
@@ -1,10 +1,39 @@
|
||||
import i18n from 'i18next';
|
||||
import { initReactI18next } from 'react-i18next';
|
||||
import LanguageDetector from 'i18next-browser-languagedetector';
|
||||
import appBridge from '@/utils/appBridge';
|
||||
|
||||
import ko from './ko.json';
|
||||
import en from './en.json';
|
||||
|
||||
// 초기 언어 설정
|
||||
let initialLanguage = 'ko';
|
||||
|
||||
// 네이티브 환경이 아닐 때는 localStorage에서 확인
|
||||
if (!appBridge.isNativeEnvironment()) {
|
||||
const storedLanguage = localStorage.getItem('i18nextLng');
|
||||
if (storedLanguage && (storedLanguage === 'ko' || storedLanguage === 'en')) {
|
||||
initialLanguage = storedLanguage;
|
||||
}
|
||||
} else {
|
||||
// 네이티브 환경에서는 네이티브 언어를 가져와 localStorage에 설정
|
||||
try {
|
||||
appBridge.getLanguage().then((language) => {
|
||||
if (language && typeof language === 'string' && (language === 'ko' || language === 'en')) {
|
||||
localStorage.setItem('i18nextLng', language);
|
||||
// i18n이 이미 초기화된 경우 언어 변경
|
||||
if (i18n.isInitialized && i18n.language !== language) {
|
||||
i18n.changeLanguage(language);
|
||||
}
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.warn('Failed to get native language during init:', error);
|
||||
});
|
||||
} catch (error) {
|
||||
console.warn('Failed to get native language:', error);
|
||||
}
|
||||
}
|
||||
|
||||
i18n
|
||||
.use(LanguageDetector)
|
||||
.use(initReactI18next)
|
||||
@@ -13,7 +42,7 @@ i18n
|
||||
en: {translation: en},
|
||||
ko: {translation: ko},
|
||||
},
|
||||
lng: 'ko',
|
||||
lng: initialLanguage,
|
||||
fallbackLng: 'ko',
|
||||
debug: true,
|
||||
interpolation: {
|
||||
|
||||
@@ -87,6 +87,7 @@ export const SettingPage = () => {
|
||||
// i18n 언어도 동기화
|
||||
if (i18n.language !== language) {
|
||||
i18n.changeLanguage(language);
|
||||
localStorage.setItem('i18nextLng', language);
|
||||
}
|
||||
});
|
||||
}, [getLanguage, i18n]);
|
||||
|
||||
Reference in New Issue
Block a user