-
-
Notifications
You must be signed in to change notification settings - Fork 367
feat(i18n): add Korean (ko) locale #175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
rofeels
wants to merge
1
commit into
webadderall:main
Choose a base branch
from
rofeels:feat/i18n-ko
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| { | ||
| "app": { | ||
| "name": "Recordly", | ||
| "editorTitle": "Recordly 편집기", | ||
| "subtitle": "화면 녹화 및 편집", | ||
| "language": "언어", | ||
| "manageRecordings": "녹화 폴더 열기" | ||
| }, | ||
| "actions": { | ||
| "cancel": "취소", | ||
| "close": "닫기", | ||
| "export": "내보내기", | ||
| "load": "불러오기", | ||
| "redo": "다시 실행", | ||
| "reset": "초기화", | ||
| "save": "저장", | ||
| "undo": "실행 취소", | ||
| "delete": "삭제", | ||
| "done": "완료" | ||
| }, | ||
| "errors": { | ||
| "invalidFileType": "잘못된 파일 형식입니다", | ||
| "failedToUploadImage": "이미지 업로드에 실패했습니다", | ||
| "fileReadError": "파일을 읽는 중 오류가 발생했습니다." | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| { | ||
| "export": { | ||
| "pleaseTryAgain": "다시 시도해 주세요", | ||
| "compilingGifProgress": "GIF를 만드는 중... {{progress}}%", | ||
| "compilingGifWait": "GIF를 만드는 중입니다... 잠시 시간이 걸릴 수 있습니다", | ||
| "takeMoment": "잠시만 기다려 주세요...", | ||
| "exportFailed": "내보내기 실패", | ||
| "compilingGifTitle": "GIF 생성 중", | ||
| "exportingFormat": "{{format}} 내보내는 중", | ||
| "exportComplete": "내보내기 완료", | ||
| "formatReady": "{{format}} 파일이 준비되었습니다", | ||
| "showInFolder": "폴더에서 보기", | ||
| "compiling": "생성 중", | ||
| "renderingFrames": "프레임 렌더링 중", | ||
| "processing": "처리 중...", | ||
| "status": "상태", | ||
| "format": "형식", | ||
| "compilingStatus": "생성 중...", | ||
| "frames": "프레임", | ||
| "cancelExport": "내보내기 취소", | ||
| "reopenSaveDialog": "저장 대화상자 다시 열기", | ||
| "savedSuccess": "{{format}} 파일을 저장했습니다!" | ||
| }, | ||
| "addFont": { | ||
| "title": "Google 폰트 추가", | ||
| "heading": "Google 폰트 추가", | ||
| "description": "주석에 사용할 Google Fonts의 사용자 지정 글꼴을 추가합니다.", | ||
| "urlLabel": "Google Fonts 가져오기 URL", | ||
| "urlPlaceholder": "https://fonts.googleapis.com/css2?family=Roboto&display=swap", | ||
| "urlHelp": "Google Fonts에서 가져오세요: 글꼴 선택 → \"Get font\" 클릭 → @import URL 복사", | ||
| "nameLabel": "표시 이름", | ||
| "namePlaceholder": "내 사용자 지정 글꼴", | ||
| "nameHelp": "글꼴 선택기에서 표시될 이름입니다", | ||
| "adding": "추가 중...", | ||
| "addFont": "글꼴 추가", | ||
| "enterUrl": "Google Fonts 가져오기 URL을 입력해 주세요", | ||
| "invalidUrl": "올바른 Google Fonts URL을 입력해 주세요", | ||
| "enterName": "글꼴 이름을 입력해 주세요", | ||
| "extractFailed": "URL에서 글꼴 패밀리를 추출할 수 없습니다", | ||
| "addSuccess": "글꼴 \"{{name}}\"을(를) 추가했습니다", | ||
| "addFailed": "글꼴 추가에 실패했습니다", | ||
| "loadTimeout": "글꼴을 불러오는 데 너무 오래 걸립니다. URL을 확인한 뒤 다시 시도해 주세요.", | ||
| "loadFailed": "글꼴을 불러올 수 없습니다. Google Fonts URL이 올바른지 확인해 주세요." | ||
| }, | ||
| "shortcutsConfig": { | ||
| "title": "키보드 단축키", | ||
| "configurable": "변경 가능", | ||
| "fixed": "고정", | ||
| "pressEscToCancel": "Esc를 눌러 취소", | ||
| "clickToChange": "클릭해서 변경", | ||
| "pressAKey": "키를 누르세요…", | ||
| "alreadyUsedBy": "이미 <strong>{{action}}</strong>에서 사용 중입니다", | ||
| "swap": "바꾸기", | ||
| "reserved": "이 단축키는 \"{{label}}\"에 예약되어 있어 다시 지정할 수 없습니다.", | ||
| "saved": "키보드 단축키를 저장했습니다", | ||
| "resetNotice": "기본 단축키로 초기화했습니다 — 적용하려면 저장을 클릭하세요", | ||
| "instructions": "단축키를 클릭한 다음 새 키 조합을 누르세요. 취소하려면 Esc를 누르세요.", | ||
| "resetToDefaults": "기본값으로 초기화", | ||
| "cancel": "취소", | ||
| "save": "저장" | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,118 @@ | ||
| { | ||
| "playback": { | ||
| "play": "재생", | ||
| "pause": "일시 정지" | ||
| }, | ||
| "annotations": { | ||
| "settings": "주석 설정", | ||
| "active": "활성", | ||
| "text": "텍스트", | ||
| "image": "이미지", | ||
| "arrow": "화살표", | ||
| "textContent": "텍스트 내용", | ||
| "textPlaceholder": "텍스트를 입력하세요...", | ||
| "fontStyle": "글꼴 스타일", | ||
| "selectStyle": "스타일 선택", | ||
| "size": "크기", | ||
| "toggleBold": "굵게 전환", | ||
| "toggleItalic": "기울임꼴 전환", | ||
| "toggleUnderline": "밑줄 전환", | ||
| "alignLeft": "왼쪽 정렬", | ||
| "alignCenter": "가운데 정렬", | ||
| "alignRight": "오른쪽 정렬", | ||
| "textColor": "텍스트 색상", | ||
| "background": "배경", | ||
| "none": "없음", | ||
| "clearBackground": "배경 지우기", | ||
| "uploadImage": "이미지 업로드", | ||
| "supportedFormats": "지원 형식: JPG, PNG, GIF, WebP", | ||
| "arrowDirection": "화살표 방향", | ||
| "strokeWidth": "선 두께: {{width}}px", | ||
| "arrowColor": "화살표 색상", | ||
| "deleteAnnotation": "주석 삭제", | ||
| "shortcutsAndTips": "단축키 및 팁", | ||
| "tipSelectAnnotation": "재생 헤드를 겹치는 주석 구간으로 이동한 뒤 항목을 선택하세요.", | ||
| "tipCycleForward": "Tab 키로 겹치는 항목을 순환할 수 있습니다.", | ||
| "tipCycleBackward": "Shift+Tab으로 이전 항목으로 이동할 수 있습니다.", | ||
| "imageUploadSuccess": "이미지를 업로드했습니다!", | ||
| "imageUploadError": "JPG, PNG, GIF 또는 WebP 이미지 파일을 업로드해 주세요." | ||
| }, | ||
| "fontStyles": { | ||
| "classic": "클래식", | ||
| "editor": "에디터", | ||
| "strong": "강조", | ||
| "typewriter": "타자기", | ||
| "deco": "장식", | ||
| "simple": "심플", | ||
| "modern": "모던", | ||
| "clean": "클린" | ||
| }, | ||
| "format": { | ||
| "mp4Video": "MP4 비디오", | ||
| "mp4Description": "고화질 비디오 파일", | ||
| "gifAnimation": "GIF 애니메이션", | ||
| "gifDescription": "공유용 애니메이션 이미지" | ||
| }, | ||
| "gifOptions": { | ||
| "frameRate": "프레임 속도", | ||
| "outputSize": "출력 크기", | ||
| "outputDimensions": "출력: {{width}} × {{height}}px", | ||
| "loopAnimation": "반복 재생", | ||
| "loopDescription": "GIF가 계속 반복 재생됩니다" | ||
| }, | ||
| "tutorial": { | ||
| "howTrimmingWorks": "트림 사용법", | ||
| "title": "트림 작동 방식", | ||
| "understanding": "비디오에서 원하지 않는 부분을 잘라내는 방법을 알아보세요.", | ||
| "descriptionP1": "트림 도구는 제거하고 싶은 구간을", | ||
| "descriptionRemove": "삭제", | ||
| "descriptionP2": "하도록 설정합니다.", | ||
| "descriptionP3": "타임라인에서 빨간 트림 구간으로 덮인 부분은 내보낼 때 잘려 나갑니다.", | ||
| "visualExample": "예시 보기", | ||
| "removed": "제거됨", | ||
| "kept": "유지됨", | ||
| "finalVideo": "최종 비디오", | ||
| "part": "파트 {{number}}", | ||
| "addTrimStep": "1. 트림 추가", | ||
| "addTrimDesc": "T 키를 누르거나 가위 아이콘을 클릭해 제거할 구간을 표시하세요.", | ||
| "adjustStep": "2. 조정", | ||
| "adjustDesc": "빨간 구간의 가장자리를 드래그해 정확히 잘라낼 범위를 지정하세요." | ||
| }, | ||
| "feedback": { | ||
| "trigger": "피드백", | ||
| "title": "피드백 및 문의", | ||
| "description": "문제가 있거나 빠진 기능이 있으면 직접 연락하거나 이슈를 등록해 주세요.", | ||
| "emailLabel": "이메일", | ||
| "xLabel": "X", | ||
| "reportIssue": "이슈 등록 / 피드백 보내기", | ||
| "openFailed": "링크를 열지 못했습니다." | ||
| }, | ||
| "keyboardShortcuts": { | ||
| "trigger": "단축키", | ||
| "title": "키보드 단축키", | ||
| "description": "타임라인과 편집기 컨트롤에 대한 빠른 참고입니다.", | ||
| "customizeTooltip": "단축키 사용자 지정", | ||
| "customize": "사용자 지정", | ||
| "panTimeline": "타임라인 이동", | ||
| "zoomTimeline": "타임라인 확대/축소", | ||
| "cycleAnnotations": "주석 순환", | ||
| "tab": "Tab" | ||
| }, | ||
| "actions": { | ||
| "saveAgain": "다시 저장", | ||
| "showInFolder": "폴더에서 보기" | ||
| }, | ||
| "project": { | ||
| "untitled": "제목 없음" | ||
| }, | ||
| "exportStatus": { | ||
| "exporting": "내보내는 중", | ||
| "renderingFile": "파일을 렌더링하고 있습니다.", | ||
| "preparing": "내보내기를 준비하는 중...", | ||
| "completePercent": "{{percent}}% 완료", | ||
| "issue": "내보내기 오류", | ||
| "complete": "내보내기 완료", | ||
| "savedSuccessfully": "파일이 성공적으로 저장되었습니다." | ||
| }, | ||
| "openRecordingsFolder": "녹화 폴더 열기" | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| { | ||
| "recording": { | ||
| "disableSystemAudio": "시스템 오디오 끄기", | ||
| "enableSystemAudio": "시스템 오디오 켜기", | ||
| "disableMicrophone": "마이크 끄기", | ||
| "enableMicrophone": "마이크 켜기", | ||
| "disableWebcam": "웹캠 오버레이 끄기", | ||
| "enableWebcam": "웹캠 오버레이 켜기", | ||
| "countdownDelay": "카운트다운 지연", | ||
| "noDelay": "지연 없음", | ||
| "record": "녹화", | ||
| "recordingFolder": "녹화 폴더: {{path}}", | ||
| "chooseRecordingsFolder": "녹화 폴더 선택", | ||
| "folderPath": "경로: /{{name}}/", | ||
| "openVideoFile": "비디오 파일 열기", | ||
| "openProject": "프로젝트 열기", | ||
| "hideHudFromVideo": "녹화에서 HUD 숨기기", | ||
| "showHudInVideo": "녹화에 HUD 표시", | ||
| "hideHud": "HUD 숨기기", | ||
| "closeApp": "앱 닫기", | ||
| "screens": "화면", | ||
| "windows": "창", | ||
| "noSourcesFound": "사용 가능한 소스를 찾을 수 없습니다", | ||
| "microphone": "마이크", | ||
| "turnOffMicrophone": "마이크 끄기", | ||
| "selectMicToEnable": "사용할 마이크를 선택하세요", | ||
| "noMicrophonesFound": "마이크를 찾을 수 없습니다", | ||
| "webcam": "웹캠", | ||
| "turnOffWebcam": "웹캠 끄기", | ||
| "selectWebcamToEnable": "사용할 웹캠을 선택하세요", | ||
| "noWebcamsFound": "웹캠을 찾을 수 없습니다", | ||
| "recordingsFolder": "녹화 폴더", | ||
| "language": "언어", | ||
| "paused": "일시 정지", | ||
| "rec": "녹화 중", | ||
| "resume": "계속", | ||
| "pause": "일시 정지", | ||
| "stop": "중지", | ||
| "cancel": "취소", | ||
| "more": "더 보기", | ||
| "update": { | ||
| "update": "업데이트", | ||
| "updated": "업데이트 완료", | ||
| "idleTitle": "업데이트를 확인합니다.", | ||
| "checkingTitle": "업데이트를 확인하는 중...", | ||
| "downloadingTitle": "업데이트를 다운로드하는 중...", | ||
| "errorTitle": "업데이트 확인에 실패했습니다. 클릭하여 다시 시도하세요.", | ||
| "upToDateTitle": "Recordly {{version}}은(는) 최신 버전입니다.", | ||
| "availableTitle": "Recordly {{version}}을(를) 사용할 수 있습니다.", | ||
| "availableGenericTitle": "업데이트를 사용할 수 있습니다." | ||
| } | ||
| }, | ||
| "sourceSelector": { | ||
| "loadingSources": "소스를 불러오는 중...", | ||
| "screens": "화면", | ||
| "windows": "창", | ||
| "windowsNote": "보이는 창(최소화되지 않은 창)만 녹화할 수 있습니다.", | ||
| "windowPlaceholder": "창", | ||
| "cancel": "취소", | ||
| "share": "공유" | ||
| }, | ||
| "permissions": { | ||
| "screenRecordingNeeded": "녹화를 시작하기 전에 Recordly에 화면 녹화 권한이 필요합니다. 시스템 설정을 열었습니다. 권한을 허용한 뒤 Recordly를 종료하고 다시 실행해 주세요.", | ||
| "screenRecordingMissing": "화면 녹화 권한이 아직 없습니다. 시스템 설정을 다시 열었습니다. 권한을 허용한 뒤 Recordly를 종료하고 다시 실행한 후 녹화를 시작해 주세요.", | ||
| "accessibilityNeeded": "커서 추적을 위해 Recordly에 손쉬운 사용 권한도 필요합니다. 시스템 설정을 열었습니다. 권한을 허용한 뒤 Recordly를 종료하고 다시 실행해 주세요.", | ||
| "accessibilityMissing": "손쉬운 사용 권한이 아직 없습니다. 시스템 설정을 다시 열었습니다. 권한을 허용한 뒤 Recordly를 종료하고 다시 실행한 후 녹화를 시작해 주세요.", | ||
| "selectSource": "녹화할 소스를 선택해 주세요", | ||
| "systemAudioUnavailable": "이 소스에서는 시스템 오디오를 사용할 수 없습니다. 시스템 오디오 없이 녹화를 계속합니다.", | ||
| "microphoneDenied": "마이크 접근이 거부되었습니다. 마이크 오디오 없이 녹화를 계속합니다.", | ||
| "failedToStart": "녹화 시작에 실패했습니다: {{error}}", | ||
| "failedToStartGeneric": "녹화 시작에 실패했습니다" | ||
| } | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: webadderall/Recordly
Length of output: 91
🏁 Script executed:
Repository: webadderall/Recordly
Length of output: 1201
🏁 Script executed:
Repository: webadderall/Recordly
Length of output: 146
Add
koentry to hard-coded locale label maps.Adding
'ko'toSUPPORTED_LOCALESrequires updating the corresponding label maps in UI components. Without this, Korean will display as the fallback code instead of "한국어":src/components/video-editor/VideoEditor.tsx(lines 286-290):labelsobject needsko: "한국어"src/components/launch/LaunchWindow.tsx(lines 57-61):LOCALE_LABELSobject needsko: "한국어"Example fixes
// VideoEditor.tsx (lines 286-290) const labels: Record<string, string> = { en: "EN", es: "ES", + ko: "한국어", "zh-CN": "中文", };// LaunchWindow.tsx (lines 57-61) const LOCALE_LABELS: Record<string, string> = { en: "EN", es: "ES", + ko: "한국어", "zh-CN": "中文", };🤖 Prompt for AI Agents