fix: unify font loading and fallback messages

This commit is contained in:
tianma-if committed 2026-10-19 11:34:31 +08:00
1 parent 83fac43d4e
commit 0bebd4e542
6 files changed
+13 -13

No files matched your search

@@ -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 {
@@ -1648,10 +1648,10 @@ export const MemoDetailModal = ({
{preparedNoteImage.fontFallback || isExportingImage ? (
<View accessibilityLiveRegion="polite">
<Text style={imageShareStyles.previewWarning}>{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."}</Text>
? isExportingImage ? "字体加载中…" : "暂时使用替代字体,加载成功后将自动恢复"
: isExportingImage ? "Loading font…" : "Temporarily using substitute fonts. The original fonts will be restored automatically when loaded."}</Text>
{!isExportingImage ? <Pressable accessibilityRole="button" onPress={() => imageFontRecoveryRef.current?.retry()} style={imageShareStyles.previewSecondaryButton}>
<Text>{resolvedLocale === "zh-CN" ? "重试加载字体" : "Retry fonts"}</Text>
<Text>{resolvedLocale === "zh-CN" ? "重试" : "Retry"}</Text>
</Pressable> : null}
</View>
) : null}
@@ -1849,7 +1849,7 @@ export const MemoDetailModal = ({
{isExportingImage ? <ActivityIndicator color="#ffffff" size="small" /> : <Share2 color="#ffffff" size={18} />}
<Text style={imageShareStyles.shareButtonText}>
{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…" : "正在保存预览…")
+1 -1
View File
@@ -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: {
+1 -1
View File
@@ -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: {
+1 -1
View File
@@ -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: {
+1 -1
View File
@@ -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: {