Files
web-temp/i18n/locales/de.ts
2025-12-19 17:50:31 +09:00

37 lines
1.4 KiB
TypeScript

import fallback from './fallback/de'
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이 'de'이므로 'de' 키의 데이터를 반환
const localeData = multilingualData[locale] || multilingualData['de']
// localeData가 유효한 객체인지 확인
if (
localeData &&
typeof localeData === 'object' &&
!Array.isArray(localeData) &&
Object.keys(localeData).length > 0
) {
return localeData
}
}
// fallback이 빈 객체인 경우를 대비하여 최소한의 기본값 반환
return Object.keys(fallback).length > 0 ? fallback : { _placeholder: '' }
} catch (e) {
console.error('[Exception] de.defineI18nLocale: ', e)
return Object.keys(fallback).length > 0 ? fallback : { _placeholder: '' }
}
})