diff --git a/i18n/locales/de.ts b/i18n/locales/de.ts index e7f3c28..ae011fa 100644 --- a/i18n/locales/de.ts +++ b/i18n/locales/de.ts @@ -1,29 +1,27 @@ +import fallback from './fallback/de' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const { data } = await useFetch(translationApi, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, }) - // API 데이터에서 locale에 맞는 데이터를 추출 - const apiData = data.value?.[locale] || {} // locale에 맞는 데이터가 없으면 빈 객체 반환 - - // API 데이터와 common.json 데이터를 병합 (common.json이 우선순위) - const finalResult = { ...apiData } - - return finalResult - } catch (error) { - console.error('Error fetching translation data:', error) - // 에러 발생 시 common.json 데이터라도 반환 - return commonData[locale] || {} + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['de'] || {} + return localeData + } + + return {} + } catch (e) { + console.error('[Exception] ko.defineI18nLocale: ', e) + return fallback } }) + diff --git a/i18n/locales/en.ts b/i18n/locales/en.ts index e7f3c28..c575f26 100644 --- a/i18n/locales/en.ts +++ b/i18n/locales/en.ts @@ -1,29 +1,27 @@ +import fallback from './fallback/en' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const { data } = await useFetch(translationApi, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, }) - // API 데이터에서 locale에 맞는 데이터를 추출 - const apiData = data.value?.[locale] || {} // locale에 맞는 데이터가 없으면 빈 객체 반환 - - // API 데이터와 common.json 데이터를 병합 (common.json이 우선순위) - const finalResult = { ...apiData } - - return finalResult - } catch (error) { - console.error('Error fetching translation data:', error) - // 에러 발생 시 common.json 데이터라도 반환 - return commonData[locale] || {} + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['en'] || {} + return localeData + } + + return {} + } catch (e) { + console.error('[Exception] ko.defineI18nLocale: ', e) + return fallback } }) + diff --git a/i18n/locales/es.ts b/i18n/locales/es.ts index e7f3c28..af54510 100644 --- a/i18n/locales/es.ts +++ b/i18n/locales/es.ts @@ -1,29 +1,27 @@ +import fallback from './fallback/es' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const { data } = await useFetch(translationApi, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, }) - // API 데이터에서 locale에 맞는 데이터를 추출 - const apiData = data.value?.[locale] || {} // locale에 맞는 데이터가 없으면 빈 객체 반환 - - // API 데이터와 common.json 데이터를 병합 (common.json이 우선순위) - const finalResult = { ...apiData } - - return finalResult - } catch (error) { - console.error('Error fetching translation data:', error) - // 에러 발생 시 common.json 데이터라도 반환 - return commonData[locale] || {} + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['es'] || {} + return localeData + } + + return {} + } catch (e) { + console.error('[Exception] ko.defineI18nLocale: ', e) + return fallback } }) + diff --git a/i18n/locales/fr.ts b/i18n/locales/fr.ts index e7f3c28..1d9e195 100644 --- a/i18n/locales/fr.ts +++ b/i18n/locales/fr.ts @@ -1,29 +1,27 @@ +import fallback from './fallback/fr' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const { data } = await useFetch(translationApi, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, }) - // API 데이터에서 locale에 맞는 데이터를 추출 - const apiData = data.value?.[locale] || {} // locale에 맞는 데이터가 없으면 빈 객체 반환 - - // API 데이터와 common.json 데이터를 병합 (common.json이 우선순위) - const finalResult = { ...apiData } - - return finalResult - } catch (error) { - console.error('Error fetching translation data:', error) - // 에러 발생 시 common.json 데이터라도 반환 - return commonData[locale] || {} + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['fr'] || {} + return localeData + } + + return {} + } catch (e) { + console.error('[Exception] ko.defineI18nLocale: ', e) + return fallback } }) + diff --git a/i18n/locales/ja.ts b/i18n/locales/ja.ts index e7f3c28..5f22c6b 100644 --- a/i18n/locales/ja.ts +++ b/i18n/locales/ja.ts @@ -1,29 +1,27 @@ +import fallback from './fallback/ja' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const { data } = await useFetch(translationApi, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, }) - // API 데이터에서 locale에 맞는 데이터를 추출 - const apiData = data.value?.[locale] || {} // locale에 맞는 데이터가 없으면 빈 객체 반환 - - // API 데이터와 common.json 데이터를 병합 (common.json이 우선순위) - const finalResult = { ...apiData } - - return finalResult - } catch (error) { - console.error('Error fetching translation data:', error) - // 에러 발생 시 common.json 데이터라도 반환 - return commonData[locale] || {} + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['ja'] || {} + return localeData + } + + return {} + } catch (e) { + console.error('[Exception] ko.defineI18nLocale: ', e) + return fallback } }) + diff --git a/i18n/locales/ko.ts b/i18n/locales/ko.ts index 9f08531..c73dcde 100644 --- a/i18n/locales/ko.ts +++ b/i18n/locales/ko.ts @@ -1,17 +1,24 @@ +import fallback from './fallback/ko' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const result = (await commonFetch('GET', `${translationApi}`)) as any - if(import.meta.client) { - console.log("🚀 ~ result:", result[locale]) + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, + }) + + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['ko'] || {} + return localeData } - return result[locale] + + return {} } catch (e) { console.error('[Exception] ko.defineI18nLocale: ', e) return fallback diff --git a/i18n/locales/pt.ts b/i18n/locales/pt.ts index e7f3c28..0d969ce 100644 --- a/i18n/locales/pt.ts +++ b/i18n/locales/pt.ts @@ -1,29 +1,27 @@ +import fallback from './fallback/pt' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const { data } = await useFetch(translationApi, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, }) - // API 데이터에서 locale에 맞는 데이터를 추출 - const apiData = data.value?.[locale] || {} // locale에 맞는 데이터가 없으면 빈 객체 반환 - - // API 데이터와 common.json 데이터를 병합 (common.json이 우선순위) - const finalResult = { ...apiData } - - return finalResult - } catch (error) { - console.error('Error fetching translation data:', error) - // 에러 발생 시 common.json 데이터라도 반환 - return commonData[locale] || {} + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['pt'] || {} + return localeData + } + + return {} + } catch (e) { + console.error('[Exception] ko.defineI18nLocale: ', e) + return fallback } }) + diff --git a/i18n/locales/th.ts b/i18n/locales/th.ts index e7f3c28..fa815ee 100644 --- a/i18n/locales/th.ts +++ b/i18n/locales/th.ts @@ -1,29 +1,27 @@ +import fallback from './fallback/th' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const { data } = await useFetch(translationApi, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, }) - // API 데이터에서 locale에 맞는 데이터를 추출 - const apiData = data.value?.[locale] || {} // locale에 맞는 데이터가 없으면 빈 객체 반환 - - // API 데이터와 common.json 데이터를 병합 (common.json이 우선순위) - const finalResult = { ...apiData } - - return finalResult - } catch (error) { - console.error('Error fetching translation data:', error) - // 에러 발생 시 common.json 데이터라도 반환 - return commonData[locale] || {} + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['th'] || {} + return localeData + } + + return {} + } catch (e) { + console.error('[Exception] ko.defineI18nLocale: ', e) + return fallback } }) + diff --git a/i18n/locales/zh-cn.ts b/i18n/locales/zh-cn.ts index 1f3ef75..67ff6a9 100644 --- a/i18n/locales/zh-cn.ts +++ b/i18n/locales/zh-cn.ts @@ -1,34 +1,27 @@ +import fallback from './fallback/zh-cn' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const { data } = await useFetch(translationApi, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, }) - - if(locale === 'zh-cn') { - locale = 'zh-CN' + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['zh-cn'] || {} + return localeData } - - // API 데이터에서 locale에 맞는 데이터를 추출 - const apiData = data.value?.[locale] || {} // locale에 맞는 데이터가 없으면 빈 객체 반환 - - // API 데이터와 common.json 데이터를 병합 (common.json이 우선순위) - const finalResult = { ...apiData } - - return finalResult - } catch (error) { - console.error('Error fetching translation data:', error) - // 에러 발생 시 common.json 데이터라도 반환 - return commonData[locale] || {} + + return {} + } catch (e) { + console.error('[Exception] ko.defineI18nLocale: ', e) + return fallback } }) + diff --git a/i18n/locales/zh-tw.ts b/i18n/locales/zh-tw.ts index 9f08531..1a9c011 100644 --- a/i18n/locales/zh-tw.ts +++ b/i18n/locales/zh-tw.ts @@ -1,17 +1,24 @@ +import fallback from './fallback/zh-tw' + export default defineI18nLocale(async (locale: string) => { - //https://static-pubcomm.gate8.com/dev/test/multilingual/test_common_template.json?20251021185116 - const config = useRuntimeConfig() - const rootPath = config.public.staticUrl - const runType = config.public.runType - - const translationApi = `${rootPath}/${runType}/test/multilingual/test_common_template.json` - + const runtimeConfig = useRuntimeConfig() + const dataResourcesUrl = runtimeConfig.public.dataResourcesUrl as string + const multilingualFileName = 'test_common_template.json' try { - const result = (await commonFetch('GET', `${translationApi}`)) as any - if(import.meta.client) { - console.log("🚀 ~ result:", result[locale]) + const resultGetMultilingual = await useGetMultilingual({ + baseApiUrl: dataResourcesUrl, + fileName: multilingualFileName, + }) + + // multilingual 객체에서 현재 locale에 해당하는 데이터 추출 + const multilingualData = resultGetMultilingual?.value?.multilingual + if (multilingualData && typeof multilingualData === 'object') { + // locale이 'ko'이므로 'ko' 키의 데이터를 반환 + const localeData = multilingualData[locale] || multilingualData['zh-tw'] || {} + return localeData } - return result[locale] + + return {} } catch (e) { console.error('[Exception] ko.defineI18nLocale: ', e) return fallback diff --git a/layers/components/layouts/Footer.vue b/layers/components/layouts/Footer.vue index 936d456..b87b21a 100644 --- a/layers/components/layouts/Footer.vue +++ b/layers/components/layouts/Footer.vue @@ -1,20 +1,20 @@ @@ -141,20 +138,20 @@