diff --git a/README.zh.md b/README.zh.md index 0a8c939..dee0538 100644 --- a/README.zh.md +++ b/README.zh.md @@ -4,7 +4,7 @@ [![GitHub Repo stars](https://img.shields.io/github/stars/SneakRead/sneakread?style=flat&logo=github)](https://github.com/SneakRead/sneakread) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) · [sneakread.com](https://sneakread.com) · 纯前端、无后端、无账号 · [English](README.md) -粘贴任意公开网址,SneakRead 通过阅读器把它抓成正文,然后**全屏渲染成一个真实的桌面软件** —— VS Code、Claude Code、Word、WPS、Google Docs、Notion、Slack、飞书、钉钉、企业微信、Teams、Gmail、Excel 或 Outlook —— 让「看网页」看起来像「在工作」。品牌:全球叫 **SneakRead**,中文叫 **摸鱼**。 +粘贴任意公开网址,SneakRead 通过阅读器把它抓成正文,然后**全屏渲染成一个真实的桌面软件** —— VS Code、Claude Code、Word、WPS、Google 文档、Notion、Slack、飞书、钉钉、企业微信、Teams、Gmail、Excel 或 Outlook —— 让「看网页」看起来像「在工作」。品牌:全球叫 **SneakRead**,中文叫 **摸鱼**。 ![BBC 世界杯首页,此刻是一份 Word 文档——真功能区、真字数统计、真状态栏](docs/screenshots/zh-word.jpg) @@ -25,7 +25,7 @@ | Word | 标题栏、Colorful 功能区、标尺、画布上的纸张、状态栏 | 干净的文章 | | VS Code | 完整工作台:活动栏、资源管理器、**真 Monaco 编辑器**、终端、minimap | 源码 markdown | | Claude Code | 跑着 AI 编码助手的 macOS 终端:工具调用、流式回答、context 余量 | 文章当成 AI 的回答 | -| Google Docs | 文档顶栏、菜单、药丸工具栏、页面 | 干净的文章 | +| Google 文档 | 文档顶栏、菜单、药丸工具栏、页面 | 干净的文章 | | Notion | 侧栏、List view 数据库、右侧 peek 面板与属性区 | 文章当成一个页面 | | 飞书文档 | 面包屑、目录栏、AI 速览、分享按钮、可选署名水印 | 干净的云文档 | | Slack | 深紫侧栏、频道列表、消息流、输入框 | 文章拆成一串消息 | diff --git a/src/core/types.ts b/src/core/types.ts index 338ed06..7e98a30 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -50,9 +50,8 @@ export type DocumentRecord = ReaderDoc & { lastSyncedAt: string } -// A locale override for a skin's user-facing name. Only Feishu/Lark needs this -// (飞书/飞书文档 in zh, Lark/Lark Docs in en) — every other app is named the -// same worldwide, so `i18nNames` stays undefined for them. +// A locale override for a skin's user-facing name. Most brands stay unchanged; +// use this for product names that have a real regional name, such as Google 文档. export type SkinLocaleName = { label: string; appName: string } export type Skin = { diff --git a/src/skins/docs/index.tsx b/src/skins/docs/index.tsx index 3597440..7a979ec 100644 --- a/src/skins/docs/index.tsx +++ b/src/skins/docs/index.tsx @@ -157,6 +157,9 @@ const docs: SkinDefinition = { fileExtension: 'gdoc', accent: '#4285f4', faviconGlyph: 'D', + i18nNames: { + zh: { label: 'Google 文档', appName: 'Google 文档' }, + }, Surface: DocsSkin, } export default docs diff --git a/src/skins/labels.ts b/src/skins/labels.ts index e26740b..727a322 100644 --- a/src/skins/labels.ts +++ b/src/skins/labels.ts @@ -1,7 +1,7 @@ -// Resolve a skin's user-facing name for the current language. Only Feishu/Lark -// carries locale overrides (飞书/飞书文档 ⇄ Lark/Lark Docs); every other skin -// returns its single worldwide name. Leaf module — imports only types, so both -// the app shell and the shared skin chrome can use it without import cycles. +// Resolve a skin's user-facing name for the current language. Most skins use +// one worldwide name; `i18nNames` overrides it where a product has a real +// regional name (飞书, Google 文档, 钉钉, …). Leaf module — imports only types, +// so both the app shell and the shared skin chrome can use it without cycles. import type { Skin } from '../core/types' import type { Lang } from '../i18n' diff --git a/src/skins/types.ts b/src/skins/types.ts index ef4c48f..f1f4470 100644 --- a/src/skins/types.ts +++ b/src/skins/types.ts @@ -18,11 +18,7 @@ export type SkinDefinition = { accent: string /** 1–2 char glyph for the favicon tile. Defaults to the first letter of `label`. */ faviconGlyph?: string - /** - * Locale overrides for `label`/`appName`. Only Feishu/Lark needs it — the app is - * literally rebranded by region (飞书/飞书文档 in zh, Lark/Lark Docs in en). Every - * other disguise is named the same worldwide, so leave this undefined. - */ + /** Locale overrides for product names that differ by region. */ i18nNames?: Partial> /** The disguise. Receives the document to render as that app. */ Surface: ComponentType<{ doc: DocumentRecord }>