36 lines
1.1 KiB
TypeScript
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
|
|
}
|
|
})
|