Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions config/scripts/locale-key-overrides.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ const BASE_LOCALE_KEY_OVERRIDES = {
},
'auto.components.tab.bar.TabBarCreateEntry.b27864279e': {
ko: '에이전트 실행',
zh: '启动代理',
zh: '启动智能体',
ja: 'Agent を起動'
},
'auto.components.sidebar.SidebarNav.c39ab10000': {
Expand Down Expand Up @@ -427,12 +427,12 @@ const BASE_LOCALE_KEY_OVERRIDES = {
},
'auto.components.settings.AgentsPane.9bccf48906': {
ko: '에이전트 위치',
zh: '代理位置',
zh: '智能体位置',
ja: 'Agent の場所'
},
'auto.components.sidebar.SidebarNav.e518f544b1': {
ko: '감지된 에이전트 없음',
zh: '未检测到代理',
zh: '未检测到智能体',
ja: 'Agent が検出されません'
},
'auto.components.onboarding.OnboardingFlow.04ae28d8ca': {
Expand Down Expand Up @@ -467,7 +467,7 @@ const BASE_LOCALE_KEY_OVERRIDES = {
},
'auto.components.settings.ExperimentalPane.0277901cf7': {
ko: '완료된 에이전트, 차단 질문, 읽지 않은 상태 및 작업 트리 생성 이벤트에 대한 스레드 작업 트리 피드가 있는 에이전트 항목을 왼쪽 사이드바에 추가합니다. 실험적 — 이벤트 모델과 UI가 변경될 수 있습니다.',
zh: '将代理条目添加到左侧边栏,其中包含已完成代理、阻塞待办、未读状态和工作树创建事件的线程工作树提要。实验性——事件模型和 UI 可能会改变。',
zh: '将智能体条目添加到左侧边栏,其中包含已完成智能体、阻塞待办、未读状态和工作树创建事件的线程工作树提要。实验性——事件模型和 UI 可能会改变。',
ja: '完了した Agent、ブロック中の質問、未読状態、ワークツリー作成イベントのスレッドワークツリーフィード付き Agent 項目を左サイドバーに追加します。実験的 — イベントモデルと UI は変更される場合があります。'
},
'auto.lib.fix.checks.agent.launch.9f00d7df0c': {
Expand Down
4 changes: 2 additions & 2 deletions config/scripts/locale-macos-tcc-key-overrides.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ export const MACOS_TCC_KEY_OVERRIDES = {
es: 'Los mensajes de permisos de macOS pueden aparecer cuando un agente o una herramienta de terminal que se ejecuta en Orca intenta acceder a archivos protegidos. Concede acceso total al disco en Ajustes para reducir estos avisos.',
ja: 'Orca で実行中のエージェントやターミナルツールが保護されたファイルにアクセスしようとすると、macOS の権限メッセージが表示されることがあります。これらの確認を減らすには、設定でフルディスクアクセスを許可してください。',
ko: 'Orca에서 실행 중인 에이전트나 터미널 도구가 보호된 파일에 접근하려고 하면 macOS 권한 메시지가 표시될 수 있습니다. 이러한 요청을 줄이려면 설정에서 전체 디스크 접근 권한을 허용하세요.',
zh: '当 Orca 中运行的代理或终端工具尝试访问受保护的文件时,macOS 可能会显示权限信息。请在“设置”中授予“完全磁盘访问权限”,以减少此类提示。'
zh: '当 Orca 中运行的智能体或终端工具尝试访问受保护的文件时,macOS 可能会显示权限信息。请在“设置”中授予“完全磁盘访问权限”,以减少此类提示。'
},
'auto.components.settings.DeveloperPermissionsPane.7ca17b62c8': {
es: 'Cuando los agentes que ejecuta Orca leen datos de otras apps, macOS muestra el nombre de Orca porque es el proceso responsable de los comandos de terminal. Concede este permiso a Orca para reducir esos avisos. Después, cierra y vuelve a abrir Orca.',
ja: 'Orca が実行するエージェントがほかのアプリのデータを読み取ると、ターミナルコマンドの実行元プロセスである Orca の名前が macOS に表示されます。これらの確認を減らすには、Orca にこの権限を許可してください。その後、Orca を終了して再度開いてください。',
ko: 'Orca가 실행하는 에이전트가 다른 앱의 데이터를 읽으면, macOS는 터미널 명령을 실행하는 프로세스인 Orca를 표시합니다. 이러한 요청을 줄이려면 Orca에 이 권한을 허용하세요. 그런 다음 Orca를 종료했다가 다시 여세요.',
zh: '当 Orca 运行的代理读取其他应用的数据时,macOS 会显示 Orca,因为 Orca 是执行终端命令的进程。请为 Orca 授予此权限,以减少此类提示。然后退出并重新打开 Orca。'
zh: '当 Orca 运行的智能体读取其他应用的数据时,macOS 会显示 Orca,因为 Orca 是执行终端命令的进程。请为 Orca 授予此权限,以减少此类提示。然后退出并重新打开 Orca。'
},
'auto.components.settings.DeveloperPermissionsPane.c566bca278': {
ko: '전체 디스크 접근 권한',
Expand Down
63 changes: 57 additions & 6 deletions config/scripts/locale-phrase-fixes.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -131,15 +131,32 @@ export const LOCALE_PHRASE_FIXES = {
...KO_PHRASE_FIXES_ROUND4
],
zh: [
{ pattern: /客服人员/g, replacement: '代理', whenEnIncludes: 'agent' },
{
pattern: /客服人员/g,
replacement: '智能体',
whenEnMatches: /(?<!user[- ])\bagents?\b/i
},
{ pattern: /会议/g, replacement: '会话', whenEnIncludes: 'session' },
{ pattern: /港口/g, replacement: '端口', whenEnIncludes: 'ort' },
{ pattern: /公关/g, replacement: 'PR', whenEnIncludes: 'PR' },
{ pattern: /虎鲸:\/\//g, replacement: 'orca://', whenEnIncludes: 'orca://' },
{ pattern: /代理商/g, replacement: '代理', whenEnIncludes: 'agent' },
{ pattern: /智能体/g, replacement: '代理', whenEnIncludes: 'agent' },
{
pattern: /代理商/g,
replacement: '智能体',
whenEnMatches: /(?<!user[- ])\bagents?\b/i
},
// Why: 代理 remains correct for network proxies, so only agent-token source copy uses 智能体.
{
pattern: /代理/g,
replacement: '智能体',
whenEnMatches: /(?<!user[- ])\bagents?\b/i
},
{ pattern: /分支机构/g, replacement: '分支', whenEnIncludes: 'ranch' },
{ pattern: /座席/g, replacement: '代理', whenEnIncludes: 'agent' },
{
pattern: /座席/g,
replacement: '智能体',
whenEnMatches: /(?<!user[- ])\bagents?\b/i
},
{ pattern: /汽车/g, replacement: '自动', whenEnIncludes: 'Auto' },
{ pattern: /清爽/g, replacement: '刷新中', whenEnIncludes: 'Refreshing' },
{ pattern: /瓦斯尔/g, replacement: 'WSL', whenEnIncludes: 'wsl' },
Expand All @@ -157,11 +174,20 @@ export const LOCALE_PHRASE_FIXES = {
{ pattern: /电脑使用/g, replacement: '计算机控制', whenEnIncludes: 'Computer Use' },
{ pattern: /快捷方式/g, replacement: '快捷键', whenEnIncludes: 'Shortcuts' },
{ pattern: /入职清单/g, replacement: '入门清单', whenEnIncludes: 'Onboarding checklist' },
{ pattern: /发射代理/g, replacement: '启动代理', whenEnIncludes: 'Launch agent' },
{
pattern: /发射(?:代理|智能体)/g,
replacement: '启动智能体',
whenEnMatches: /\bLaunch agent\b/i
},
{ pattern: /地位/g, replacement: '状态', whenEnIncludes: 'Status' },
{ pattern: /受让人/g, replacement: '负责人', whenEnIncludes: 'assignee' },
{ pattern: /开放工作区/g, replacement: '打开工作区', whenEnIncludes: 'Open workspace' },
{ pattern: /工作空间/g, replacement: '工作区', whenEnIncludes: 'Workspace' },
{ pattern: /工作空间/g, replacement: '工作区', whenEnMatches: /\bworkspaces?\b/i },
{
pattern: /存储库/g,
replacement: '仓库',
whenEnMatches: /\b(?:repos?|repositories?)\b/i
},
{ pattern: /丢失的/g, replacement: '缺失', whenEnIncludes: 'Missing' },
{
pattern: /聆听捷径/g,
Expand Down Expand Up @@ -323,6 +349,31 @@ export const LOCALE_PHRASE_FIXES = {
{ pattern: /新特征/g, replacement: '新功能', whenEnIncludes: 'New features' },
{ pattern: /审稿人/g, replacement: '评审人', whenEnIncludes: 'reviewer' },
{ pattern: /审阅者/g, replacement: '评审人', whenEnIncludes: 'reviewer' },
{ pattern: /评论主题/g, replacement: '评审线程', whenEnMatches: /\breview threads?\b/i },
{
pattern: /(?<!评审)评论/g,
replacement: '评审评论',
whenEnMatches: /\breview comments?\b/i
},
{
pattern: /(?:评论|复习)笔记|评论注释/g,
replacement: '评审笔记',
whenEnMatches: /\breview notes?\b/i
},
{ pattern: /托管评论/g, replacement: '托管评审', whenEnMatches: /\bhosted reviews?\b/i },
{ pattern: /审查详情/g, replacement: '评审详情', whenEnMatches: /\breview details\b/i },
{
pattern: /正在创建审查/g,
replacement: '正在创建评审',
whenEnMatches: /\bcreating review\b/i
},
{ pattern: /审查页面/g, replacement: '评审页面', whenEnMatches: /\breview page\b/i },
{ pattern: /需审核/g, replacement: '待评审', whenEnMatches: /\bneeds review\b/i },
{
pattern: /检查和审核/g,
replacement: '检查和评审',
whenEnMatches: /\bchecks and review\b/i
},
{ pattern: /电话/g, replacement: '手机', whenEnIncludes: 'phone' },
{ pattern: /发射器/g, replacement: '启动器', whenEnIncludes: 'launcher' },
{ pattern: /发射/g, replacement: '启动', whenEnIncludes: 'launch' },
Expand Down
4 changes: 2 additions & 2 deletions config/scripts/locale-search-keyword-overrides.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ export const SEARCH_KEYWORD_OVERRIDES = {
language: '语言',
locale: '区域设置',
translation: '翻译',
agent: '代理',
agents: '代理',
agent: '智能体',
agents: '智能体',
default: '默认',
command: '命令',
override: '覆盖',
Expand Down
4 changes: 2 additions & 2 deletions config/scripts/locale-translation-policy.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -267,15 +267,15 @@ describe('locale-translation-policy', () => {
localeValue: '未已检测代理',
locale: 'zh'
})
).toBe('未检测到代理')
).toBe('未检测到智能体')
expect(
repairTranslatedValue({
key: 'auto.components.skills.SkillsPage.38e0951c3a',
enValue: 'Agent Skills',
localeValue: '代理技巧',
locale: 'zh'
})
).toBe('代理技能')
).toBe('智能体技能')
expect(
repairTranslatedValue({
key: 'auto.components.settings.appearance.search.9ae151b26b',
Expand Down
40 changes: 36 additions & 4 deletions config/scripts/locale-translation-policy.zh-round5.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,30 @@ import { describe, expect, it } from 'vitest'
import { repairTranslatedValue } from './locale-translation-policy.mjs'

describe('locale-translation-policy zh round 5', () => {
it('standardizes the accepted product glossary', () => {
const cases = [
['Agent', '代理', '智能体'],
['Terminal', '端子', '终端'],
['Repo', '存储库', '仓库'],
['Review', '审查', '评审'],
['Issue', '问题', '议题'],
['Close as duplicate', '标记为重复', '作为重复议题关闭'],
['Worktree', '工作分支', '工作树'],
['Workspace', '工作空间', '工作区']
]

for (const [enValue, localeValue, expected] of cases) {
expect(
repairTranslatedValue({
key: 'auto.components.glossary.test',
enValue,
localeValue,
locale: 'zh'
})
).toBe(expected)
}
})

it('fixes brand spacing, hosted review, and Orca Mobile regressions', () => {
expect(
repairTranslatedValue({
Expand Down Expand Up @@ -140,15 +164,15 @@ describe('locale-translation-policy zh round 5', () => {
localeValue: '代理',
locale: 'zh'
})
).toBe('代理')
).toBe('智能体')
expect(
repairTranslatedValue({
key: 'auto.components.GitHubItemDialog.28986b3747',
enValue: 'Started an AI agent for the broken checks.',
localeValue: '已启动 AI 代理处理失败的检查。',
locale: 'zh'
})
).toBe('已启动 AI 代理处理失败的检查。')
).toBe('已启动 AI 智能体处理失败的检查。')
expect(
repairTranslatedValue({
key: 'auto.components.LinearIssueMarkdownDescriptionEditor.d9c47069ef',
Expand Down Expand Up @@ -203,6 +227,14 @@ describe('locale-translation-policy zh round 5', () => {
locale: 'zh'
})
).toBe('留空以使用系统代理设置和继承的代理环境变量。')
expect(
repairTranslatedValue({
key: 'auto.components.settings.BrowserProfileRow.b5c0479e21',
enValue: 'Unmodified user agent',
localeValue: '未经修改的用户代理',
locale: 'zh'
})
).toBe('未经修改的用户代理')
expect(
repairTranslatedValue({
key: 'auto.components.settings.general.search.91a46caafc',
Expand All @@ -213,15 +245,15 @@ describe('locale-translation-policy zh round 5', () => {
).toBe('no_proxy')
})

it('keeps repo terminology in English', () => {
it('standardizes repository terminology', () => {
expect(
repairTranslatedValue({
key: 'auto.components.workspace.cleanup.WorkspaceCleanupDialog.0b1766738a',
enValue: 'Repo',
localeValue: '回购协议',
locale: 'zh'
})
).toBe('Repo')
).toBe('仓库')
expect(
repairTranslatedValue({
key: 'auto.components.sidebar.add.repo.local.start.actions.fb4fc5380e',
Expand Down
26 changes: 13 additions & 13 deletions config/scripts/locale-value-overrides.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,8 @@ export const LOCALE_VALUE_OVERRIDES = {
Back: '返回',
Reopen: '重新打开',
Closed: '已关闭',
Agents: '代理',
agents: '代理',
Agents: '智能体',
agents: '智能体',
orchestration: '编排',
conflict: '冲突',
Disconnect: '断开连接',
Expand All @@ -197,7 +197,7 @@ export const LOCALE_VALUE_OVERRIDES = {
Optional: '可选',
Ports: '端口',
Active: '当前',
'Dismiss agent': '关闭代理',
'Dismiss agent': '关闭智能体',
'Codex Usage': 'Codex 使用情况',
'Claude Usage': 'Claude 使用情况',
'Gemini Usage': 'Gemini 使用情况',
Expand All @@ -208,7 +208,7 @@ export const LOCALE_VALUE_OVERRIDES = {
'Grok Usage': 'Grok 使用情况',
'Grok (xAI) Usage': 'Grok (xAI) 使用情况',
'Force Delete Branch': '强制删除分支',
'Time agents worked': '代理工作时间',
'Time agents worked': '智能体工作时间',
PR: 'PR',
linear: 'Linear',
jira: 'Jira',
Expand Down Expand Up @@ -277,7 +277,7 @@ export const LOCALE_VALUE_OVERRIDES = {
'Open workspace': '打开工作区',
'Search Linear issues...': '搜索 Linear 议题...',
'Search Linear projects...': '搜索 Linear 项目...',
'Launch agent': '启动代理',
'Launch agent': '启动智能体',
'Git AI Author': 'Git AI Author',
'Copy reference ID': '复制参考 ID',
'Try Again': '重试',
Expand Down Expand Up @@ -315,29 +315,29 @@ export const LOCALE_VALUE_OVERRIDES = {
// so a single value-wide mapping is wrong for half the call sites. Per-key catalog values decide.
'Join Discord': '加入 Discord',
'Pull request merged': '拉取请求已合并',
'Agent Skills': '代理技能',
'Agent skills': '代理技能',
'Agent skill': '代理技能',
'Agent Skills': '智能体技能',
'Agent skills': '智能体技能',
'Agent skill': '智能体技能',
'Browser Use skill': '浏览器使用技能',
'Install Browser Use Skill': '安装浏览器使用技能',
'Scanning skills': '正在扫描技能',
'Agent location': '代理位置',
'Agent location': '智能体位置',
Location: '位置',
'Account Location': '账户位置',
'Run location': '运行位置',
'more locations': '更多位置',
'No agents detected': '未检测到代理',
'No agents detected': '未检测到智能体',
'No external ports detected': '未检测到外部端口',
'No workspace ports detected': '未检测到工作区端口',
'No local ports detected': '未检测到本地端口',
'No ports detected': '未检测到端口',
'No speech detected.': '未检测到语音。',
'No enabled AI agent was detected on this workspace host.':
'此工作区主机上未检测到已启用的 AI 代理。',
'此工作区主机上未检测到已启用的 AI 智能体。',
'The selected agent was not detected on this workspace host.':
'此工作区主机上未检测到所选代理。',
'此工作区主机上未检测到所选智能体。',
'No agents detected on your PATH. Pick one to install later, or continue with a blank terminal.':
'PATH 中未检测到代理。可选择一个稍后安装,或使用空白终端继续。',
'PATH 中未检测到智能体。可选择一个稍后安装,或使用空白终端继续。',
'Jira issue': 'Jira 议题',
'New Jira issue': '新建 Jira 议题',
'Open in Jira': '在 Jira 中打开',
Expand Down
Loading
Loading