Files
web-temp/i18n/locales/en.ts

36 lines
1.1 KiB
TypeScript

import fallback from './fallback/en'
export default defineI18nLocale(async (locale: string) => {
const runtimeConfig = useRuntimeConfig()
const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string
const multilingualFileName = 'STOVE_PUBTEMPLATE_common_translations.json'
try {
const resultGetMultilingual = await useGetMultilingual({
baseApiUrl: dataResourcesUrl,
fileName: multilingualFileName,
})
// multilingual 객체에서 현재 locale에 해당하는 데이터 추출
const multilingualData = resultGetMultilingual?.value?.multilingual
if (multilingualData && typeof multilingualData === 'object') {
// locale이 'en'이므로 'en' 키의 데이터를 반환
const localeData =
multilingualData[locale] || multilingualData['en'] || fallback
// localeData가 유효한 객체인지 확인
if (
localeData &&
typeof localeData === 'object' &&
!Array.isArray(localeData)
) {
return localeData
}
}
return fallback
} catch (e) {
console.error('[Exception] en.defineI18nLocale: ', e)
return fallback
}
})