diff --git a/src/dictionaries/index.ts b/src/dictionaries/index.ts index 8fab0144..07f635f0 100644 --- a/src/dictionaries/index.ts +++ b/src/dictionaries/index.ts @@ -1,4 +1,3 @@ -import { assign, cloneDeep, merge } from "lodash-es"; import "server-only"; export const defaultLocale = "zh-Hans"; @@ -29,18 +28,29 @@ export const getMetaDataAlternates = (suffix: string, lang: Locale) => { }; }; -export const getDictionary = async (locale: Locale = "zh-Hans") => { - const zhHans = await dictionaries["zh-Hans"](); - const result = await dictionaries[locale](); +const defaultsConfig = ( + de: Record, + target: Record, +) => { + for (const key in de) { + if (target[key] === undefined) { + target[key] = de[key]; + } else if (typeof de[key] === "object") { + defaultsConfig( + de[key] as Record, + target[key] as Record, + ); + } + } - const targetLocale = cloneDeep(zhHans); - const keys = Object.keys(zhHans) as (keyof typeof zhHans)[]; + return target; +}; - for (const key of keys) { - // targetLocale[key] = result[key] || zhHans[key]; - } +export const getDictionary = async (locale: Locale = "zh-Hans") => { + const zhHans = await dictionaries["zh-Hans"](); + const targetLocale = await dictionaries[locale](); - return merge(result, zhHans); + return defaultsConfig(zhHans, targetLocale) as typeof zhHans; }; export type Dictionary = Awaited>; diff --git a/src/dictionaries/ko.json b/src/dictionaries/ko.json index 359a18f2..4d9a2390 100644 --- a/src/dictionaries/ko.json +++ b/src/dictionaries/ko.json @@ -1,5 +1,6 @@ { "title": "중국 시 학습 웹사이트", + "description": "aspoem.com은 다양한 시인들의 정규 시, 사파, 그리고 작품을 빠르게 검색할 수 있는 포괄적인 사이트 검색 기능을 제공하는 중국 시 학습 웹사이트입니다. 또한, 우리는 발음 주석, 주석, 그리고 구어 중국어의 표시를 최적화하여 시를 더 쉽게 읽을 수 있도록 하였습니다. 게다가, 고전 시를 더 잘 공부할 수 있도록 도와주는 시 인쇄 도구도 제공합니다. 저희 웹사이트의 매력을 경험해보세요!", "menu": { "poem": "시", "author": "시인",