Skip to content

Commit

Permalink
lang
Browse files Browse the repository at this point in the history
  • Loading branch information
meetqy committed Apr 5, 2024
1 parent 542f536 commit cda3450
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 10 deletions.
30 changes: 20 additions & 10 deletions src/dictionaries/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { assign, cloneDeep, merge } from "lodash-es";
import "server-only";

export const defaultLocale = "zh-Hans";
Expand Down Expand Up @@ -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<string, string | object>,
target: Record<string, string | object | undefined>,
) => {
for (const key in de) {
if (target[key] === undefined) {
target[key] = de[key];
} else if (typeof de[key] === "object") {
defaultsConfig(
de[key] as Record<string, string | object>,
target[key] as Record<string, string | object>,
);
}
}

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<ReturnType<typeof getDictionary>>;
Expand Down
1 change: 1 addition & 0 deletions src/dictionaries/ko.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"title": "중국 시 학습 웹사이트",
"description": "aspoem.com은 다양한 시인들의 정규 시, 사파, 그리고 작품을 빠르게 검색할 수 있는 포괄적인 사이트 검색 기능을 제공하는 중국 시 학습 웹사이트입니다. 또한, 우리는 발음 주석, 주석, 그리고 구어 중국어의 표시를 최적화하여 시를 더 쉽게 읽을 수 있도록 하였습니다. 게다가, 고전 시를 더 잘 공부할 수 있도록 도와주는 시 인쇄 도구도 제공합니다. 저희 웹사이트의 매력을 경험해보세요!",
"menu": {
"poem": "",
"author": "시인",
Expand Down

0 comments on commit cda3450

Please sign in to comment.