fix. 에러 수정, ip 필터 테스트코드
This commit is contained in:
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'de'이므로 'de' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['de'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['de'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] de.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'en'이므로 'en' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['en'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['en'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] en.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'es'이므로 'es' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['es'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['es'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] es.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'fr'이므로 'fr' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['fr'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['fr'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] fr.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'ja'이므로 'ja' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['ja'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['ja'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] ja.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -14,14 +14,22 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['ko'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['ko'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] ko.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'pt'이므로 'pt' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['pt'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['pt'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] pt.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'th'이므로 'th' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['th'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['th'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] th.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'zh-cn'이므로 'zh-cn' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['zh-cn'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['zh-cn'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] zh-cn.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,23 @@ export default defineI18nLocale(async (locale: string) => {
|
|||||||
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
|
||||||
const multilingualData = resultGetMultilingual?.value?.multilingual
|
const multilingualData = resultGetMultilingual?.value?.multilingual
|
||||||
if (multilingualData && typeof multilingualData === 'object') {
|
if (multilingualData && typeof multilingualData === 'object') {
|
||||||
// locale이 'ko'이므로 'ko' 키의 데이터를 반환
|
// locale이 'zh-tw'이므로 'zh-tw' 키의 데이터를 반환
|
||||||
const localeData = multilingualData[locale] || multilingualData['zh-tw'] || {}
|
const localeData =
|
||||||
|
multilingualData[locale] || multilingualData['zh-tw'] || fallback
|
||||||
|
|
||||||
|
// localeData가 유효한 객체인지 확인
|
||||||
|
if (
|
||||||
|
localeData &&
|
||||||
|
typeof localeData === 'object' &&
|
||||||
|
!Array.isArray(localeData)
|
||||||
|
) {
|
||||||
return localeData
|
return localeData
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {}
|
return fallback
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Exception] ko.defineI18nLocale: ', e)
|
console.error('[Exception] zh-tw.defineI18nLocale: ', e)
|
||||||
return fallback
|
return fallback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -10,5 +10,7 @@ const localePath = useLocalePath()
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<NuxtLink :to="localePath(props.to)"><slot /></NuxtLink>
|
<NuxtLink :to="localePath(props.to)">
|
||||||
|
<slot />
|
||||||
|
</NuxtLink>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -186,6 +186,18 @@ export default defineEventHandler(async event => {
|
|||||||
event.context.googleAnalyticsId = gameDataValue?.ga_code
|
event.context.googleAnalyticsId = gameDataValue?.ga_code
|
||||||
console.log('🚀 ~ gameData response:', event.context.gameData)
|
console.log('🚀 ~ gameData response:', event.context.gameData)
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV !== 'live') {
|
||||||
|
// 테스트용
|
||||||
|
setCookie(
|
||||||
|
event,
|
||||||
|
'DEBUG_INFO',
|
||||||
|
JSON.stringify({
|
||||||
|
clientIP: getTrueClientIp(event.node.req as any),
|
||||||
|
}),
|
||||||
|
{ maxAge: 60 }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------
|
||||||
// [Inspection Middleware]
|
// [Inspection Middleware]
|
||||||
// -------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user