Skip to content
Closed
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
30 changes: 30 additions & 0 deletions config/scripts/locale-ko-key-overrides.json
Original file line number Diff line number Diff line change
Expand Up @@ -1868,6 +1868,9 @@
"auto.components.right.sidebar.SourceControl.3a231c845b": {
"ko": "알 수 없음"
},
"auto.components.right.sidebar.SourceControl.6d7f2a47e5": {
"ko": "폴더의 변경 사항 취소"
},
"auto.components.right.sidebar.SourceControl.812cb992ee": {
"ko": "{{value0}}에서 열기"
},
Expand All @@ -1880,6 +1883,9 @@
"auto.components.right.sidebar.SourceControl.9bb062a886": {
"ko": "commit 되지 않음"
},
"auto.components.right.sidebar.SourceControl.a5e5a11090": {
"ko": "모든 변경 사항 취소 실패 — 취소 전에 파일의 스테이징을 해제하지 못했습니다."
},
"auto.components.right.sidebar.SourceControl.aaf1451654": {
"ko": "초안 {{value0}} 만들기"
},
Expand Down Expand Up @@ -1994,6 +2000,9 @@
"auto.components.right.sidebar.source.control.discard.confirmation.2ae5a785b3": {
"ko": "스테이징되지 않은 변경 사항을 모두 삭제하시겠습니까?"
},
"auto.components.right.sidebar.source.control.discard.confirmation.40e9357b2a": {
"ko": "이렇게 하면 HEAD에서 파일을 복원하고 파일 삭제를 취소합니다. 이 작업은 취소할 수 없습니다."
},
"auto.components.right.sidebar.source.control.discard.confirmation.5ddd8cac7f": {
"ko": "스테이징된 변경 사항을 모두 삭제하시겠습니까?"
},
Expand All @@ -2015,6 +2024,9 @@
"auto.components.right.sidebar.source.control.primary.action.1d47e850cf": {
"ko": "연결된 리뷰 브랜치에 업데이트 푸시"
},
"auto.components.right.sidebar.source.control.primary.action.5a477d80cb": {
"ko": "모든 변경 사항 스테이징"
},
"auto.components.right.sidebar.source.control.primary.action.a5d1f7b036": {
"ko": "{{value0}}을(를) 만들기 전에 commits을 게시하세요."
},
Expand Down Expand Up @@ -2162,6 +2174,9 @@
"auto.components.settings.AutoRenameBranchFromWorkSetting.a4fa380b67": {
"ko": "{assistantMessage}"
},
"auto.components.settings.AutoRenameBranchFromWorkSetting.d9b65054ef": {
"ko": ") 작업을 요약하는 짧은 이름으로 변경됩니다. Orca가 직접 이름 붙인 브랜치만 이름을 바꾸며, 푸시된 후에는 이름을 바꾸지 않습니다."
},
"auto.components.settings.AutoRenameBranchPromptEditor.ebb942a2ec": {
"ko": "fix-login-flow"
},
Expand Down Expand Up @@ -2228,6 +2243,9 @@
"auto.components.settings.DefaultWindowsProjectRuntimeSetting.wslUnavailable": {
"ko": "WSL을 사용할 수 없습니다. WSL을 상속하는 프로젝트는 복구가 필요합니다."
},
"auto.components.settings.DevToolsPane.orcaCloudDescription": {
"ko": "자사 클라우드 로그인의 개발자 전용 미리보기. 프로덕션에서는 숨겨집니다. 개발 환경에서는 ORCA_CLOUD_API_URL과 ORCA_CLOUD_CLIENT_ID가 설정되면 사이드바 계정 전환기에도 표시됩니다."
},
"auto.components.settings.DeveloperPermissionsPane.16381e040a": {
"ko": "마이크"
},
Expand Down Expand Up @@ -2258,6 +2276,15 @@
"auto.components.settings.ExperimentalPane.newWorktreeCardStyle.description": {
"ko": "업데이트된 워크트리 카드 레이아웃, 메타데이터 배치, 카드 표시 메뉴 옵션 및 상태 표시를 미리 봅니다."
},
"auto.components.settings.EphemeralVmsPane.recipes": {
"ko": "레시피"
},
"auto.components.settings.EphemeralVmsPane.skillTitle": {
"ko": "워크스페이스별 환경 스킬"
},
"auto.components.settings.EphemeralVmsPane.whatTitle": {
"ko": "이 스킬로 함께 하는 작업"
},
"auto.components.settings.GeneralEditorSettingsSection.45c6e85c4d": {
"ko": "편집기"
},
Expand Down Expand Up @@ -3713,6 +3740,9 @@
"auto.components.settings.ssh.search.f9493b80c0": {
"ko": "서버"
},
"auto.components.settings.source.control.action.recipe.options.commitMessage": {
"ko": "스테이징된 변경 사항에서 commit 메시지를 생성합니다."
},
"auto.components.settings.task.tracker.integration.cards.1a12e33fe5": {
"ko": "Linear 액세스 추가"
},
Expand Down
53 changes: 53 additions & 0 deletions src/renderer/src/i18n/ko-ui-semantic-mistranslations.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import fs from 'node:fs'

import { describe, expect, it } from 'vitest'
import ko from './locales/ko.json'

const correctedValues = {
'auto.components.settings.AutoRenameBranchFromWorkSetting.d9b65054ef':
') 작업을 요약하는 짧은 이름으로 변경됩니다. Orca가 직접 이름 붙인 브랜치만 이름을 바꾸며, 푸시된 후에는 이름을 바꾸지 않습니다.',
'auto.components.settings.source.control.action.recipe.options.commitMessage':
'스테이징된 변경 사항에서 commit 메시지를 생성합니다.',
'auto.components.settings.DevToolsPane.orcaCloudDescription':
'자사 클라우드 로그인의 개발자 전용 미리보기. 프로덕션에서는 숨겨집니다. 개발 환경에서는 ORCA_CLOUD_API_URL과 ORCA_CLOUD_CLIENT_ID가 설정되면 사이드바 계정 전환기에도 표시됩니다.',
'auto.components.settings.EphemeralVmsPane.skillTitle': '워크스페이스별 환경 스킬',
'auto.components.settings.EphemeralVmsPane.whatTitle': '이 스킬로 함께 하는 작업',
'auto.components.settings.EphemeralVmsPane.recipes': '레시피',
'auto.components.right.sidebar.SourceControl.a5e5a11090':
'모든 변경 사항 취소 실패 — 취소 전에 파일의 스테이징을 해제하지 못했습니다.',
'auto.components.right.sidebar.SourceControl.6d7f2a47e5': '폴더의 변경 사항 취소',
'auto.components.right.sidebar.source.control.discard.confirmation.40e9357b2a':
'이렇게 하면 HEAD에서 파일을 복원하고 파일 삭제를 취소합니다. 이 작업은 취소할 수 없습니다.',
'auto.components.right.sidebar.source.control.primary.action.5a477d80cb':
'모든 변경 사항 스테이징'
} as const

function getLocaleValue(path: string): unknown {
return path.split('.').reduce<unknown>((node, segment) => {
if (!node || typeof node !== 'object' || Array.isArray(node)) {
return undefined
}
return (node as Record<string, unknown>)[segment]
}, ko)
}

describe('Korean UI semantic mistranslation fixes', () => {
it('keeps the corrected values in the Korean catalog', () => {
for (const [path, expected] of Object.entries(correctedValues)) {
expect(getLocaleValue(path), path).toBe(expected)
}
})

it('keeps the corrected values in the translation overrides', () => {
const overrides = JSON.parse(
fs.readFileSync(
new URL('../../../../config/scripts/locale-ko-key-overrides.json', import.meta.url),
'utf8'
)
) as Record<string, { ko?: string }>

for (const [path, expected] of Object.entries(correctedValues)) {
expect(overrides[path]?.ko, path).toBe(expected)
}
})
})
20 changes: 10 additions & 10 deletions src/renderer/src/i18n/locales/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -5330,7 +5330,7 @@
"9241b59bf5": "사용",
"a869d0edd8": "브랜치 이름 명령 템플릿",
"e784ea62dc": "고급",
"d9b65054ef": ") 작업을 요약하는 짧은 이름으로 변경됩니다. Orca 라는 이름의 브랜치만 이름이 변경되며 푸시된 후에는 이름이 변경되지 않습니다.",
"d9b65054ef": ") 작업을 요약하는 짧은 이름으로 변경됩니다. Orca가 직접 이름 붙인 브랜치만 이름을 바꾸며, 푸시된 후에는 이름을 바꾸지 않습니다.",
"12ea4a408d": "agent가 새 워크스페이스에서 작업을 시작하면 Orca는 자동 생성된 브랜치의 이름을 바꿉니다(예:",
"ef787db0e3": "브랜치 자동 이름 바꾸기",
"6a051586d2": "agent가 시작되면 작업을 기반으로 자동 생성된 브랜치의 이름을 바꿉니다.",
Expand Down Expand Up @@ -8894,7 +8894,7 @@
"action": {
"recipe": {
"options": {
"commitMessage": "단계적 변경에서 commit 메시지를 생성합니다.",
"commitMessage": "스테이징된 변경 사항에서 commit 메시지를 생성합니다.",
"pullRequest": "호스팅된 리뷰 제목 및 설명을 생성합니다.",
"branchName": "초기 agent 작업에서 Orca가 생성한 브랜치의 이름을 바꿉니다.",
"fixCommitFailure": "commit 후크 또는 git commit이 실패하면 agent를 시작합니다.",
Expand Down Expand Up @@ -9282,7 +9282,7 @@
"notificationPlaygroundDescription": "토스트 레이아웃, 복구 액션, 긴 텍스트 줄바꿈을 확인하기 위한 개발 전용 트리거입니다.",
"devOnly": "Dev only",
"orcaCloud": "Orca Cloud",
"orcaCloudDescription": "1方클라우드 로그인의 개발자 전용 미리보기. 프로덕션에서는 숨겨집니다. 개발 환경에서는 ORCA_CLOUD_API_URL과 ORCA_CLOUD_CLIENT_ID가 설정되면 사이드바 계정 전환기에도 표시됩니다.",
"orcaCloudDescription": "자사 클라우드 로그인의 개발자 전용 미리보기. 프로덕션에서는 숨겨집니다. 개발 환경에서는 ORCA_CLOUD_API_URL과 ORCA_CLOUD_CLIENT_ID가 설정되면 사이드바 계정 전환기에도 표시됩니다.",
"orcaCloudStatus": "상태",
"orcaCloudSignOut": "로그아웃",
"orcaCloudConnect": "프로필 연결",
Expand Down Expand Up @@ -9323,16 +9323,16 @@
"EphemeralVmsPane": {
"loadError": "레시피를 로드할 수 없습니다.",
"copyError": "프롬프트를 복사할 수 없습니다.",
"skillTitle": "워크스페이스별 환경 기술",
"skillTitle": "워크스페이스별 환경 스킬",
"skillDescription": "repo 소유 환경 레시피를 설정, 빌드, 인증 및 검증합니다.",
"whatTitle": "당신과 함께 기술이 하는 일",
"whatTitle": "이 스킬로 함께 하는 작업",
"whatScaffold": "Orca 서버 또는 SSH를 통해 연결된 공급자를 위한 레시피 및 스크립트를 작성합니다.",
"whatBuild": "재사용 가능한 기본 이미지를 구축하고 agent에 로그인합니다.",
"whatValidate": "워크스페이스를 생성할 수 있도록 유효성을 검사합니다.",
"promptHint": "어떤 워크스페이스에서든 agent에게 다음과 같이 질문하세요.",
"copy": "복사",
"copied": "복사됨",
"recipes": "조리법",
"recipes": "레시피",
"recipesHelp": "agent가 orca.yaml에 추가하는 레시피가 여기에 표시되어 워크스페이스를 시작할 준비가 됩니다.",
"refresh": "임시 VM 레시피 새로 고침",
"checking": "레시피 확인 중...",
Expand Down Expand Up @@ -10140,7 +10140,7 @@
"c07b236287": "변경사항을 보려면 워크스페이스를 선택하세요.",
"dc5a6465fc": "{{value0}}(예: {{value1}}{{value2}})",
"8eb3782a0c": "{{value0}} 파일{{value1}}을(를) 삭제하지 못했습니다.",
"a5e5a11090": "모두 삭제 실패 - 삭제하기 전에 파일을 스테이지 해제할 수 없습니다.",
"a5e5a11090": "모든 변경 사항 취소 실패 — 취소 전에 파일의 스테이징을 해제하지 못했습니다.",
"8a5ba6a988": "commit 차이점을 로드하지 못했습니다.",
"fe5bd1a610": "{{value0}} 생성 중...",
"812cb992ee": "{{value0}}에서 열기",
Expand All @@ -10158,7 +10158,7 @@
"d62bc0c7d8": "추적되지 않은",
"ab31221779": "언스테이지 폴더",
"bfe9011a0e": "스테이지 폴더",
"6d7f2a47e5": "폴더 삭제",
"6d7f2a47e5": "폴더의 변경 사항 취소",
"9b367363b6": "추적되지 않은 폴더 삭제",
"540ca8f78c": "병합 중단",
"425f138269": "리베이스 중단",
Expand Down Expand Up @@ -10701,7 +10701,7 @@
"5ddd8cac7f": "스테이징된 변경 사항을 모두 삭제하시겠습니까?",
"1426c2efff": "그러면 이 파일의 모든 변경 사항이 되돌려집니다. 이 작업은 취소할 수 없습니다.",
"d4df3a61df": "'{{value0}}' 변경사항을 취소하시겠습니까?",
"40e9357b2a": "이렇게 하면 HEAD에서 파일이 복원되고 삭제 내용이 삭제됩니다. 이 작업은 취소할 수 없습니다.",
"40e9357b2a": "이렇게 하면 HEAD에서 파일을 복원하고 파일 삭제를 취소합니다. 이 작업은 취소할 수 없습니다.",
"5c0bdbc4cb": "'{{value0}}'을(를) 복원하시겠습니까?",
"d97bf697c9": "이 파일이 영구적으로 삭제됩니다. 이 작업은 취소할 수 없습니다.",
"96c772bee9": "'{{value0}}'을 삭제하시겠습니까?"
Expand Down Expand Up @@ -10742,7 +10742,7 @@
"41d4bcf157": "PR 상태 확인 중…",
"acce237921": "commit 할 것이 없습니다. 브랜치에 게시할 변경 사항이 없습니다.",
"fa3bd4f40c": "commit 할 파일을 하나 이상 스테이지하세요",
"5a477d80cb": "모든 변경 사항을 준비합니다.",
"5a477d80cb": "모든 변경 사항 스테이징",
"18a0fca877": "모두 스테이지",
"f01f16d77f": "commit 하려면 commit 메시지를 입력하세요.",
"ab41fb926b": "스테이지된 변경 사항 Commit",
Expand Down
Loading