From 0bebd4e542010ba5388dfbd1eca7703cdfc74fc4 Mon Sep 17 00:00:00 2001 From: tianma-if Date: Mon, 19 Oct 2026 11:34:31 +0800 Subject: [PATCH] fix: unify font loading and fallback messages --- .../EdgeEver/Features/Workspace/MemoDetailView.swift | 10 +++++----- apps/mobile/src/screens/WorkspaceMemoDetail.tsx | 8 ++++---- packages/shared/src/i18n/en-US.ts | 2 +- packages/shared/src/i18n/ja.ts | 2 +- packages/shared/src/i18n/pl.ts | 2 +- packages/shared/src/i18n/zh-CN.ts | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/apps/ios/EdgeEver/Features/Workspace/MemoDetailView.swift b/apps/ios/EdgeEver/Features/Workspace/MemoDetailView.swift index 5f21c26d..076a6146 100644 --- a/apps/ios/EdgeEver/Features/Workspace/MemoDetailView.swift +++ b/apps/ios/EdgeEver/Features/Workspace/MemoDetailView.swift @@ -298,7 +298,7 @@ struct MemoDetailView: View { .overlay(alignment: .bottom) { if imageExporting && imageExportPreviewPayload == nil { ProgressView(imageFontStatus == "loading" - ? env.preferences.t("模板字体加载中…", en: "Loading template fonts…", ja: "テンプレートのフォントを読み込み中…", pl: "Ładowanie czcionek szablonu…") + ? env.preferences.t("字体加载中…", en: "Loading font…", ja: "フォントを読み込み中…", pl: "Ładowanie czcionki…") : env.preferences.t("正在生成图片…", en: "Generating image…", ja: "画像を生成中…", pl: "Generowanie obrazu…")) .padding().background(.regularMaterial, in: RoundedRectangle(cornerRadius: 12)).padding() } @@ -1454,12 +1454,12 @@ private struct MemoImageExportPreviewView: View { } if payload.fontFallback || isLoadingFonts { if isLoadingFonts { - ProgressView(isPolish ? "Ładowanie czcionek szablonu…" : (isEnglish ? "Loading template fonts…" : "模板字体加载中…")) + ProgressView(isPolish ? "Ładowanie czcionki…" : (isEnglish ? "Loading font…" : "字体加载中…")) } else { warning(isPolish - ? "Używane są wbudowane czcionki zastępcze. Krój i podział wierszy mogą się różnić. Ponów próbę, aby przywrócić czcionki szablonu." - : (isEnglish ? "Using built-in substitute fonts. Typography and line breaks may differ. Retry to restore the template fonts." : "当前使用内置替代字体,字形和换行可能不同。可重试恢复模板原字体。")) - Button(isPolish ? "Ponów ładowanie czcionek" : (isEnglish ? "Retry fonts" : "重试加载字体"), action: onRetryFonts) + ? "Tymczasowo używane są czcionki zastępcze. Po załadowaniu oryginalne czcionki zostaną przywrócone automatycznie." + : (isEnglish ? "Temporarily using substitute fonts. The original fonts will be restored automatically when loaded." : "暂时使用替代字体,加载成功后将自动恢复")) + Button(isPolish ? "Ponów próbę" : (isEnglish ? "Retry" : "重试"), action: onRetryFonts) } } if payload.failedImages > 0 { diff --git a/apps/mobile/src/screens/WorkspaceMemoDetail.tsx b/apps/mobile/src/screens/WorkspaceMemoDetail.tsx index b6335dfc..df45ffd6 100644 --- a/apps/mobile/src/screens/WorkspaceMemoDetail.tsx +++ b/apps/mobile/src/screens/WorkspaceMemoDetail.tsx @@ -1648,10 +1648,10 @@ export const MemoDetailModal = ({ {preparedNoteImage.fontFallback || isExportingImage ? ( {resolvedLocale === "zh-CN" - ? isExportingImage ? "正在加载模板字体,完成后将更新预览…" : "当前使用内置替代字体,字形和换行可能不同。可重试恢复模板原字体。" - : isExportingImage ? "Loading template fonts. The preview will update when ready…" : "Using built-in substitute fonts. Typography and line breaks may differ. Retry to restore the template fonts."} + ? isExportingImage ? "字体加载中…" : "暂时使用替代字体,加载成功后将自动恢复" + : isExportingImage ? "Loading font…" : "Temporarily using substitute fonts. The original fonts will be restored automatically when loaded."} {!isExportingImage ? imageFontRecoveryRef.current?.retry()} style={imageShareStyles.previewSecondaryButton}> - {resolvedLocale === "zh-CN" ? "重试加载字体" : "Retry fonts"} + {resolvedLocale === "zh-CN" ? "重试" : "Retry"} : null} ) : null} @@ -1849,7 +1849,7 @@ export const MemoDetailModal = ({ {isExportingImage ? : } {isExportingImage - ? (imageFontStatus === "loading" ? (resolvedLocale === "zh-CN" ? "模板字体加载中…" : "Loading template fonts…") : imageExportStage === "render" + ? (imageFontStatus === "loading" ? (resolvedLocale === "zh-CN" ? "字体加载中…" : "Loading font…") : imageExportStage === "render" ? (resolvedLocale !== "zh-CN" ? "Rendering image…" : "正在渲染图片…") : imageExportStage === "transfer" ? (resolvedLocale !== "zh-CN" ? "Saving preview…" : "正在保存预览…") diff --git a/packages/shared/src/i18n/en-US.ts b/packages/shared/src/i18n/en-US.ts index 4727d2c5..b228d133 100644 --- a/packages/shared/src/i18n/en-US.ts +++ b/packages/shared/src/i18n/en-US.ts @@ -2,7 +2,7 @@ import { memoTemplateSeedTranslations } from "../memo-template-seeds"; // Shared by the PWA and native mobile clients. export const enUS = { - fontLoad: {"templateLoading": "Loading template fonts… The original typography will appear when ready.", "templateFallback": "Using built-in substitute fonts because the template fonts could not load. Typography and line breaks may differ. Retry to restore the original fonts.", "loading": "Loading font…", "ready": "Font ready", "error": "Font could not load", "retry": "Retry"}, + fontLoad: {"templateLoading": "Loading font…", "templateFallback": "Temporarily using substitute fonts. The original fonts will be restored automatically when loaded.", "loading": "Loading font…", "ready": "Font ready", "error": "Font could not load", "retry": "Retry"}, noteProperties: {"heading": "Note properties", "source": "Show YAML source", "name": "Property name", "type": "Property type", "add": "Add property", "remove": "Remove {{name}}", "invalidName": "Use a unique name that is not a system property.", "invalidYaml": "Properties need attention:", "invalidNumber": "Enter a valid number.", "listHint": "One value per line", "text": "Text", "list": "List", "number": "Number", "checkbox": "Checkbox", "date": "Date"}, poster: { design: { diff --git a/packages/shared/src/i18n/ja.ts b/packages/shared/src/i18n/ja.ts index 9ea8b985..436c2a46 100644 --- a/packages/shared/src/i18n/ja.ts +++ b/packages/shared/src/i18n/ja.ts @@ -2,7 +2,7 @@ import { memoTemplateSeedTranslations } from "../memo-template-seeds"; // Shared by the PWA and native mobile clients. export const ja = { - fontLoad: {"templateLoading": "テンプレートのフォントを読み込み中です。完了すると元のフォントに戻ります。", "templateFallback": "テンプレートのフォントを読み込めないため、内蔵の代替フォントを使用しています。字形や改行が異なる場合があります。再試行で元のフォントに戻せます。", "loading": "フォントを読み込み中…", "ready": "フォントの準備完了", "error": "フォントを読み込めませんでした", "retry": "再試行"}, + fontLoad: {"templateLoading": "フォントを読み込み中…", "templateFallback": "一時的に代替フォントを使用しています。読み込みが完了すると自動的に元に戻ります。", "loading": "フォントを読み込み中…", "ready": "フォントの準備完了", "error": "フォントを読み込めませんでした", "retry": "再試行"}, noteProperties: {"heading": "ノートのプロパティ", "source": "YAML ソースを表示", "name": "プロパティ名", "type": "プロパティの種類", "add": "プロパティを追加", "remove": "{{name}} を削除", "invalidName": "重複しない、システム予約名以外の名前を入力してください。", "invalidYaml": "プロパティを確認してください:", "invalidNumber": "有効な数値を入力してください。", "listHint": "1 行に 1 つの値", "text": "テキスト", "list": "リスト", "number": "数値", "checkbox": "チェックボックス", "date": "日付"}, poster: { design: { diff --git a/packages/shared/src/i18n/pl.ts b/packages/shared/src/i18n/pl.ts index 4a1fc8fd..bef4a6f3 100644 --- a/packages/shared/src/i18n/pl.ts +++ b/packages/shared/src/i18n/pl.ts @@ -2,7 +2,7 @@ import { memoTemplateSeedTranslations } from "../memo-template-seeds"; // Shared by the PWA and native mobile clients. export const pl = { - fontLoad: {"templateLoading": "Ładowanie czcionek szablonu… Po zakończeniu zostaną przywrócone oryginalne czcionki.", "templateFallback": "Używane są wbudowane czcionki zastępcze, ponieważ nie udało się załadować czcionek szablonu. Krój i podział wierszy mogą się różnić. Ponów próbę, aby przywrócić oryginalne czcionki.", "loading": "Ładowanie czcionki…", "ready": "Czcionka gotowa", "error": "Nie udało się załadować czcionki", "retry": "Ponów próbę"}, + fontLoad: {"templateLoading": "Ładowanie czcionki…", "templateFallback": "Tymczasowo używane są czcionki zastępcze. Po załadowaniu oryginalne czcionki zostaną przywrócone automatycznie.", "loading": "Ładowanie czcionki…", "ready": "Czcionka gotowa", "error": "Nie udało się załadować czcionki", "retry": "Ponów próbę"}, noteProperties: {"heading": "Właściwości notatki", "source": "Pokaż źródło YAML", "name": "Nazwa właściwości", "type": "Typ właściwości", "add": "Dodaj właściwość", "remove": "Usuń {{name}}", "invalidName": "Użyj unikalnej nazwy, która nie jest właściwością systemową.", "invalidYaml": "Sprawdź właściwości:", "invalidNumber": "Wprowadź poprawną liczbę.", "listHint": "Jedna wartość w wierszu", "text": "Tekst", "list": "Lista", "number": "Liczba", "checkbox": "Pole wyboru", "date": "Data"}, poster: { design: { diff --git a/packages/shared/src/i18n/zh-CN.ts b/packages/shared/src/i18n/zh-CN.ts index 14a4c80e..77a1a65d 100644 --- a/packages/shared/src/i18n/zh-CN.ts +++ b/packages/shared/src/i18n/zh-CN.ts @@ -2,7 +2,7 @@ import { memoTemplateSeedTranslations } from "../memo-template-seeds"; // Shared by the PWA and native mobile clients. export const zhCN = { - fontLoad: {"templateLoading": "模板字体加载中,完成后将恢复原本的字体。", "templateFallback": "模板字体暂未加载成功,当前使用内置替代字体,字形和换行可能不同。可重试恢复原字体。", "loading": "字体加载中…", "ready": "字体已就绪", "error": "字体加载失败", "retry": "重试"}, + fontLoad: {"templateLoading": "字体加载中…", "templateFallback": "暂时使用替代字体,加载成功后将自动恢复", "loading": "字体加载中…", "ready": "字体已就绪", "error": "字体加载失败", "retry": "重试"}, noteProperties: {"heading": "笔记属性", "source": "显示 YAML 源码", "name": "属性名称", "type": "属性类型", "add": "添加属性", "remove": "删除 {{name}}", "invalidName": "请输入不重复且非系统保留的属性名称。", "invalidYaml": "请检查笔记属性:", "invalidNumber": "请输入有效数字。", "listHint": "每行一个值", "text": "文本", "list": "列表", "number": "数字", "checkbox": "复选框", "date": "日期"}, poster: { design: {