Skip to content

feat(core,ui): add zh/en i18n support - #59

Merged
Transparent-fish merged 1 commit into
mainfrom
feat/add-i18n
Aug 9, 2026
Merged

feat(core,ui): add zh/en i18n support#59
Transparent-fish merged 1 commit into
mainfrom
feat/add-i18n

Conversation

@Transparent-fish

Copy link
Copy Markdown
Owner

关联 Issue

#46

变更概述

为扩展宿主与 WebView 增加 zh/en 国际化支持,跟随 VS Code 界面语言(vscode.env.language)自动切换,无需手动配置。

  • 宿主侧:新增轻量字典 tools/i18n/(init() + t(key, params),不依赖 vscode,保证 node 单测可运行),替换所有用户可见字符串(错误类、状态消息、对话框、Markdown 导出、命令等),activate() 时初始化语言,WebView 注入 ATCODER_LOCALE
  • WebView 侧:新增 i18n/ Provider + useI18n()(含 nodes() 富文本插值),替换 4 个 App 全部 UI 文本与翻译 payload key
  • manifest:命令标题改为英文默认值,新增 package.nls.zh-cn.jso

变更类型

  • fix Bug
  • Feature
  • UI / Style
  • Refactor
  • Documentation

涉及文件

  • 前端
packages/webview/src/i18n/zh.ts            # 新增,中文 UI 字典
packages/webview/src/i18n/en.ts            # 新增,英文 UI 字典
packages/webview/src/i18n/index.tsx        # 新增,I18nProvider + useI18n + nodes()
packages/webview/src/index.tsx             # 入口包裹 I18nProvider
packages/webview/src/types.ts              # 声明 __ATCODER_LOCALE__
packages/webview/src/WebviewApp.tsx        # 编辑器视图文本替换
packages/webview/src/SidebarApp.tsx        # 侧边栏视图文本替换
packages/webview/src/ContestApp.tsx        # 比赛面板文本替换
packages/webview/src/SubmissionDetailApp.tsx # 提交详情视图文本替换
  • 后端
apps/vscode-extension/src/tools/i18n/zh.ts      # 新增,中文宿主字典
apps/vscode-extension/src/tools/i18n/en.ts      # 新增,英文宿主字典
apps/vscode-extension/src/tools/i18n/index.ts   # 新增,init()/t() 实现
apps/vscode-extension/src/extension.ts          # init(vscode.env.language) + 消息/对话框本地化
apps/vscode-extension/src/tools/webview.ts      # 注入 __ATCODER_LOCALE__
apps/vscode-extension/src/tools/handle.ts       # 状态/错误消息本地化
apps/vscode-extension/src/tools/fetch.ts        # CfError/ProxyError/LoginRequiredError 等本地化
apps/vscode-extension/src/tools/deepl.ts        # 翻译错误消息本地化
apps/vscode-extension/src/tools/submit.ts       # 提交错误消息本地化
apps/vscode-extension/src/tools/SignUpContest.ts# 报名消息本地化
apps/vscode-extension/src/tools/copy.ts         # Markdown 标题本地化
apps/vscode-extension/src/tools/cph.ts          # CPH 错误消息本地化
apps/vscode-extension/src/tools/standings.ts    # 排行榜解析错误本地化
apps/vscode-extension/src/tools/command.ts      # 命令消息本地化
apps/vscode-extension/package.json              # 命令标题改英文默认值
apps/vscode-extension/package.nls.zh-cn.json    # 新增,manifest 中文翻译

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

PR 审查报告

检查结果

检查项 状态
pnpm build
pnpm lint
pnpm test
函数 <= 130 行

未通过的检查

全部通过,无需修改。


自动生成 by PR Review workflow

@Transparent-fish

Copy link
Copy Markdown
Owner Author

测试通过

@Transparent-fish
Transparent-fish merged commit 839d14a into main Aug 9, 2026
1 check passed
@Transparent-fish
Transparent-fish deleted the feat/add-i18n branch August 11, 2026 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant