+
{t("templates.unavailable")}
)}
diff --git a/apps/web/src/lib/app-helpers.ts b/apps/web/src/lib/app-helpers.ts
index 14c2a48b..e2683d3a 100644
--- a/apps/web/src/lib/app-helpers.ts
+++ b/apps/web/src/lib/app-helpers.ts
@@ -38,6 +38,14 @@ export type MemoTemplate = {
description: string;
contentMarkdown: string;
tags: string[];
+ iconName?: "zap" | "calendar" | "checklist" | "book" | "sun" | "file";
+ themeColor?: {
+ iconBg: string;
+ iconText: string;
+ badgeBg: string;
+ badgeText: string;
+ accentBorder: string;
+ };
};
export const getMemoTemplates = (t: TFunction): MemoTemplate[] => [
@@ -47,6 +55,14 @@ export const getMemoTemplates = (t: TFunction): MemoTemplate[] => [
description: t("templates.items.quickNote.description"),
contentMarkdown: t("templates.items.quickNote.contentMarkdown"),
tags: ["template", "quick-note"],
+ iconName: "zap",
+ themeColor: {
+ iconBg: "bg-amber-100/80 text-amber-700",
+ iconText: "text-amber-700",
+ badgeBg: "bg-amber-50 text-amber-800 border-amber-200/60",
+ badgeText: "text-amber-800",
+ accentBorder: "hover:border-amber-300/80",
+ },
},
{
id: "meeting",
@@ -54,6 +70,14 @@ export const getMemoTemplates = (t: TFunction): MemoTemplate[] => [
description: t("templates.items.meeting.description"),
contentMarkdown: t("templates.items.meeting.contentMarkdown"),
tags: ["template", "meeting"],
+ iconName: "calendar",
+ themeColor: {
+ iconBg: "bg-blue-100/80 text-blue-700",
+ iconText: "text-blue-700",
+ badgeBg: "bg-blue-50 text-blue-800 border-blue-200/60",
+ badgeText: "text-blue-800",
+ accentBorder: "hover:border-blue-300/80",
+ },
},
{
id: "checklist",
@@ -61,6 +85,14 @@ export const getMemoTemplates = (t: TFunction): MemoTemplate[] => [
description: t("templates.items.checklist.description"),
contentMarkdown: t("templates.items.checklist.contentMarkdown"),
tags: ["template", "checklist"],
+ iconName: "checklist",
+ themeColor: {
+ iconBg: "bg-emerald-100/80 text-emerald-700",
+ iconText: "text-emerald-700",
+ badgeBg: "bg-emerald-50 text-emerald-800 border-emerald-200/60",
+ badgeText: "text-emerald-800",
+ accentBorder: "hover:border-emerald-300/80",
+ },
},
{
id: "reading",
@@ -68,6 +100,14 @@ export const getMemoTemplates = (t: TFunction): MemoTemplate[] => [
description: t("templates.items.reading.description"),
contentMarkdown: t("templates.items.reading.contentMarkdown"),
tags: ["template", "reading"],
+ iconName: "book",
+ themeColor: {
+ iconBg: "bg-purple-100/80 text-purple-700",
+ iconText: "text-purple-700",
+ badgeBg: "bg-purple-50 text-purple-800 border-purple-200/60",
+ badgeText: "text-purple-800",
+ accentBorder: "hover:border-purple-300/80",
+ },
},
{
id: "daily",
@@ -75,6 +115,14 @@ export const getMemoTemplates = (t: TFunction): MemoTemplate[] => [
description: t("templates.items.daily.description"),
contentMarkdown: t("templates.items.daily.contentMarkdown"),
tags: ["template", "daily"],
+ iconName: "sun",
+ themeColor: {
+ iconBg: "bg-rose-100/80 text-rose-700",
+ iconText: "text-rose-700",
+ badgeBg: "bg-rose-50 text-rose-800 border-rose-200/60",
+ badgeText: "text-rose-800",
+ accentBorder: "hover:border-rose-300/80",
+ },
},
];
diff --git a/packages/shared/src/i18n/en-US.ts b/packages/shared/src/i18n/en-US.ts
index 48b51ee7..ddcf76f0 100644
--- a/packages/shared/src/i18n/en-US.ts
+++ b/packages/shared/src/i18n/en-US.ts
@@ -798,26 +798,47 @@ export const enUS = {
},
},
templates: {
- title: "Templates",
- description: "Choose a template to create a note instantly.",
- create: "New template",
+ title: "Template Center",
+ description: "Start notes instantly with preset structures or customize your reusable templates.",
+ create: "New Custom Template",
useTemplate: "New note from template",
+ useThisTemplate: "Use Template",
+ previewTemplate: "Preview",
+ previewTitle: "Template Preview",
createDescription: "Create a reusable template from scratch.",
- myTemplates: "My templates",
- builtIn: "Built-in templates",
- savedDescription: "A custom template saved from a note.",
+ myTemplates: "My Custom Templates",
+ myTemplatesSubtitle: "Saved personal templates ready to reuse and edit anytime",
+ builtIn: "Recommended Templates",
+ builtInSubtitle: "Ready-to-use standard structures to jumpstart your writing",
+ savedDescription: "Custom template saved from a note.",
+ emptyMyTemplates: "No custom templates yet",
+ emptyMyTemplatesHint: "Click \"New Custom Template\" above or save any note as a template directly in the editor.",
delete: "Delete template",
+ deleteConfirmTitle: "Delete template \"{{name}}\"",
+ deleteConfirmDescription: "Are you sure you want to delete this template? This operation cannot be undone.",
saveAsTemplate: "Save as template",
+ saveAsTemplateSuccess: "Saved as custom template",
edit: "Edit template",
+ editTemplateTitle: "Edit Custom Template",
+ createTemplateTitle: "Create Custom Template",
name: "Template name",
+ namePlaceholder: "e.g., Weekly Summary / Reading Card",
descriptionField: "Template description",
- noteTitle: "New note title",
- tags: "Tags (comma-separated)",
- content: "Template content",
+ descriptionPlaceholder: "Briefly describe when and how to use this template",
+ noteTitle: "Default note title",
+ noteTitlePlaceholder: "e.g., [Weekly] Untitled Note (leave blank to use template name)",
+ tags: "Preset tags",
+ tagsPlaceholder: "e.g., work, summary (comma separated)",
+ content: "Template Markdown content",
+ contentPlaceholder: "Enter preset Markdown content here...",
+ rawEditor: "Markdown Source",
+ previewEditor: "Preview",
templateNamePrompt: "Enter a template name",
templateSaved: "Template saved",
templateCreated: "Template created",
unavailable: "Select an available notebook before creating a note.",
+ badgeBuiltIn: "Built-in",
+ badgeCustom: "Custom",
items: {
quickNote: {
title: "Quick note",
diff --git a/packages/shared/src/i18n/zh-CN.ts b/packages/shared/src/i18n/zh-CN.ts
index ba149a47..9fbadf6e 100644
--- a/packages/shared/src/i18n/zh-CN.ts
+++ b/packages/shared/src/i18n/zh-CN.ts
@@ -798,26 +798,47 @@ export const zhCN = {
},
},
templates: {
- title: "模板",
- description: "选择一个模板,直接创建新笔记。",
- create: "新建模板",
+ title: "模板中心",
+ description: "选择预设结构快捷创建笔记,或打造你的专属自定义模板。",
+ create: "新建自定义模板",
useTemplate: "从模板新建笔记",
+ useThisTemplate: "使用此模板新建",
+ previewTemplate: "预览",
+ previewTitle: "模板结构预览",
createDescription: "从零开始创建一个可重复使用的模板。",
- myTemplates: "我的模板",
- builtIn: "内置模板",
+ myTemplates: "我的自定义模板",
+ myTemplatesSubtitle: "已保存的专属笔记模板,可随时复用与修改",
+ builtIn: "内置推荐模板",
+ builtInSubtitle: "开箱即用的标准笔记结构,点击即可快捷生成",
savedDescription: "基于已保存笔记的自定义模板。",
+ emptyMyTemplates: "暂无自定义模板",
+ emptyMyTemplatesHint: "你可以点击上方「新建自定义模板」,或在笔记编辑器中将常用笔记另存为模板。",
delete: "删除模板",
+ deleteConfirmTitle: "删除模板「{{name}}」",
+ deleteConfirmDescription: "确定要删除该模板吗?此操作不可恢复。",
saveAsTemplate: "另存为模板",
+ saveAsTemplateSuccess: "已成功保存为自定义模板",
edit: "编辑模板",
+ editTemplateTitle: "编辑自定义模板",
+ createTemplateTitle: "新建自定义模板",
name: "模板名称",
+ namePlaceholder: "例如:每周工作总结 / 论文阅读卡片",
descriptionField: "模板说明",
- noteTitle: "新笔记标题",
- tags: "标签(逗号分隔)",
- content: "模板正文",
+ descriptionPlaceholder: "简要描述该模板的使用场景与用途",
+ noteTitle: "生成笔记时的默认标题",
+ noteTitlePlaceholder: "例如:【周报】未命名笔记(留空则跟随模板名)",
+ tags: "预设标签",
+ tagsPlaceholder: "例如:工作, 总结 (多个用逗号隔开)",
+ content: "模板预设正文 (Markdown)",
+ contentPlaceholder: "在此输入 Markdown 结构的预设正文...",
+ rawEditor: "源码编辑",
+ previewEditor: "效果预览",
templateNamePrompt: "请输入模板名称",
templateSaved: "模板已保存",
templateCreated: "模板已创建",
unavailable: "当前无法创建笔记,请先选择可用笔记本。",
+ badgeBuiltIn: "内置预设",
+ badgeCustom: "自定义",
items: {
quickNote: {
title: "速记",