mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Editing a file from the library used to silently supersede it: the worker auto-saved every result as a new version and the leaf-only listing hid the original, which read as a destructive overwrite. Tool pages now show a per-edit choice for library-sourced files. The default saves the result as an independent new file and keeps the original; picking overwrite keeps the old superseding-version behavior. The client sends a saveMode multipart field next to fileId, validated with a 400 on unknown values, and autoSaveToLibrary branches on it. Every hand-written route that honors fileId parses the field the same way as the factory. The review panel shows where an auto-saved result went instead of offering a second, duplicate save. Tools whose route or submitter ignores fileId keep the selector hidden via a shared unsupported-tools set, and the choice resets to the non-destructive default whenever a new file is staged. Closes #495
4016 lines
153 KiB
TypeScript
4016 lines
153 KiB
TypeScript
import type { TranslationKeys } from "./en.js";
|
|
|
|
export const ko: TranslationKeys = {
|
|
migrationBanner: {
|
|
successTitle: "SnapOtter 1.x 데이터를 가져왔습니다.",
|
|
successBody: "이전 버전에서 사용자 {users}명과 저장된 파일 {files}개를 이전했습니다.",
|
|
warningTitle: "1.x 데이터베이스를 찾았지만 가져오지 않았습니다.",
|
|
warningBody:
|
|
"이 인스턴스에 이미 데이터가 있어 1.x 데이터베이스를 가져오지 않았습니다. 가져오려면 빈 인스턴스가 필요합니다. 업그레이드 가이드를 참조하세요.",
|
|
dismiss: "닫기",
|
|
},
|
|
common: {
|
|
upload: "컴퓨터에서 업로드",
|
|
process: "처리",
|
|
download: "다운로드",
|
|
cancel: "취소",
|
|
save: "저장",
|
|
delete: "삭제",
|
|
settings: "설정",
|
|
search: "도구 검색...",
|
|
dropFiles: "여기에 파일을 놓거나 업로드 버튼을 클릭하세요",
|
|
loading: "로딩 중...",
|
|
saving: "저장 중...",
|
|
error: "오류가 발생했습니다",
|
|
confirm: "확인",
|
|
close: "닫기",
|
|
back: "뒤로",
|
|
next: "다음",
|
|
clear: "지우기",
|
|
copy: "복사",
|
|
copied: "복사되었습니다!",
|
|
noResults: "결과를 찾을 수 없습니다",
|
|
showLess: "접기",
|
|
showMore: "{count}개 더 보기",
|
|
experimental: "실험적",
|
|
enabled: "활성화됨",
|
|
disabled: "비활성화됨",
|
|
rename: "이름 변경",
|
|
edit: "편집",
|
|
actions: "작업",
|
|
create: "생성",
|
|
or: "또는",
|
|
goHome: "홈으로",
|
|
somethingWentWrong: "문제가 발생했습니다",
|
|
unexpectedError: "예기치 않은 오류가 발생했습니다.",
|
|
retry: "재시도",
|
|
privacyPolicy: "개인정보 처리방침",
|
|
pageNotFound: "페이지를 찾을 수 없음",
|
|
pageNotFoundDescription: "요청하신 페이지가 존재하지 않거나 이동되었습니다.",
|
|
},
|
|
feedback: {
|
|
navLabel: "피드백 공유",
|
|
navButtonLabel: "피드백",
|
|
dialogTitle: "피드백 공유",
|
|
toolDialogTitle: "이 도구는 어떠셨나요?",
|
|
failedDialogTitle: "도구 문제 보고",
|
|
adminDialogTitle: "설치는 어떠셨나요?",
|
|
closeLabel: "피드백 대화 상자 닫기",
|
|
privacyNote:
|
|
"피드백은 제출할 때만 전송됩니다. SnapOtter는 파일, 파일 내용, 파일 이름, 비공개 결과물을 포함하지 않습니다.",
|
|
typeLabel: "피드백 유형",
|
|
sentimentLabel: "빠른 평가",
|
|
messageLabel: "피드백",
|
|
messagePlaceholder:
|
|
"무엇이 잘 되었는지, 무엇이 문제였는지, 또는 SnapOtter를 어떻게 개선하면 좋을지 알려 주세요.",
|
|
improveFirstLabel: "무엇을 먼저 개선해야 할까요?",
|
|
improveFirstPlaceholder: "설치 과정에서 필요 이상으로 어렵게 느껴졌던 부분을 알려 주세요.",
|
|
contactOkLabel: "이 피드백에 대해 연락받는 데 동의합니다.",
|
|
emailPlaceholder: "이메일 (선택)",
|
|
namePlaceholder: "이름 (선택)",
|
|
companyPlaceholder: "회사 또는 조직 (선택)",
|
|
submit: "피드백 보내기",
|
|
submitting: "보내는 중...",
|
|
submitFailed: "피드백을 보내지 못했습니다. 다시 시도해 주세요.",
|
|
searchMissTitle: "도구 요청",
|
|
searchMissContext: "검색한 내용: {query}",
|
|
searchMissDiscussionsFallback: "기록하지 못했습니다. Discussions에서 요청을 열어 주세요.",
|
|
offlineDescription:
|
|
"이 인스턴스는 분석이 꺼져 있어 피드백이 여기에 기록되지 않습니다. 그래도 SnapOtter 팀에 직접 연락할 수 있습니다.",
|
|
offlinePublicNote: "GitHub 이슈는 공개됩니다.",
|
|
offlineGithubButton: "GitHub 이슈 열기",
|
|
offlineEmailButton: "이메일 보내기",
|
|
thanksTitle: "피드백 감사합니다.",
|
|
thanksDescription:
|
|
"파일이나 비공개 콘텐츠를 수집하지 않고도 SnapOtter를 개선하는 데 도움이 됩니다.",
|
|
quickThanks: "의견 감사합니다.",
|
|
reportIssue: "문제 보고",
|
|
toolPromptTitle: "이 도구는 어떠셨나요?",
|
|
toolPromptDescription: "간단한 의견 하나가 SnapOtter를 개선하는 데 도움이 됩니다.",
|
|
dismissPrompt: "피드백 안내 닫기",
|
|
workedWell: "잘 작동함",
|
|
dontAskAgain: "다시 묻지 않기",
|
|
shareFeedback: "피드백 공유",
|
|
remindLater: "나중에 다시 알림",
|
|
adminCardTitle: "설치는 어떠셨나요?",
|
|
adminCardDescription:
|
|
"관리자의 간단한 의견은 Docker, 소스 설치, 문서를 개선하는 데 도움이 됩니다.",
|
|
installMethodLabel: "설치 방법",
|
|
frictionAreaLabel: "가장 어려웠던 설치 영역",
|
|
importantAreasLabel: "가장 중요한 영역",
|
|
sentiments: {
|
|
great: "좋음",
|
|
okay: "보통",
|
|
issue: "문제 있음",
|
|
missing: "아쉬움",
|
|
bug: "버그",
|
|
idea: "아이디어",
|
|
other: "기타",
|
|
},
|
|
types: {
|
|
bug: "버그",
|
|
feature_request: "기능 요청",
|
|
confusing_ux: "혼란스러운 UX",
|
|
performance: "성능",
|
|
other: "기타",
|
|
},
|
|
installMethods: {
|
|
docker: "Docker",
|
|
docker_compose: "Docker Compose",
|
|
source: "소스에서 빌드",
|
|
cloud: "클라우드/데모",
|
|
other: "기타",
|
|
},
|
|
usageTypes: {
|
|
personal: "개인 사용",
|
|
team_internal: "소규모 팀",
|
|
business_workflow: "회사 또는 조직",
|
|
education: "교육",
|
|
evaluating: "평가 중",
|
|
},
|
|
frictionAreas: {
|
|
smooth: "없음, 설치가 순조로웠음",
|
|
docker: "Docker/컨테이너 설치",
|
|
environment_variables: "환경 변수",
|
|
auth: "인증/SSO",
|
|
storage: "저장소/업로드",
|
|
workers: "워커/큐",
|
|
ai_tools: "AI 도구",
|
|
docs: "문서",
|
|
performance: "성능/리소스",
|
|
other: "기타",
|
|
},
|
|
importantAreas: {
|
|
images: "이미지",
|
|
pdf_docs: "PDF/문서",
|
|
video_audio: "동영상/오디오",
|
|
batch_workflows: "일괄 워크플로",
|
|
ai_tools: "AI 도구",
|
|
},
|
|
},
|
|
onboarding: {
|
|
usageSurveyTitle: "SnapOtter를 어떻게 사용하고 계신가요?",
|
|
usageSurveyToolsLabel: "가장 중요하게 생각하는 것은 무엇인가요?",
|
|
pickAnyHint: "(원하는 만큼 선택)",
|
|
continueLabel: "계속",
|
|
},
|
|
categories: {
|
|
essentials: "기본 도구",
|
|
adjustments: "조정",
|
|
enhance: "향상 & AI",
|
|
watermark: "워터마크 및 오버레이",
|
|
layout: "레이아웃 및 구도",
|
|
utilities: "유틸리티",
|
|
optimization: "최적화",
|
|
format: "포맷 및 변환",
|
|
"video-edit": "Video",
|
|
"video-convert": "변환",
|
|
"video-effects": "효과 & 합성",
|
|
"video-subtitles": "자막",
|
|
"video-metadata": "메타데이터",
|
|
"audio-edit": "편집",
|
|
"audio-convert": "변환",
|
|
"audio-effects": "효과 & 합성",
|
|
"audio-metadata": "메타데이터",
|
|
"pdf-organize": "정리",
|
|
"pdf-edit": "편집 & 주석",
|
|
"pdf-security": "보안",
|
|
"pdf-optimize": "최적화",
|
|
"doc-convert": "변환",
|
|
data: "파일",
|
|
archives: "압축 파일",
|
|
},
|
|
modalities: {
|
|
image: "이미지",
|
|
video: "동영상",
|
|
audio: "오디오",
|
|
documentsAndFiles: "PDF & 파일",
|
|
},
|
|
tools: {
|
|
// BEGIN conversion-presets (generated by scripts/generate-conversion-i18n.mjs)
|
|
"jpg-to-png": {
|
|
name: "JPG을(를) PNG(으)로",
|
|
description: "JPG을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"png-to-jpg": {
|
|
name: "PNG을(를) JPG(으)로",
|
|
description: "PNG을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"jpg-to-webp": {
|
|
name: "JPG을(를) WebP(으)로",
|
|
description: "JPG을(를) WebP(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"png-to-webp": {
|
|
name: "PNG을(를) WebP(으)로",
|
|
description: "PNG을(를) WebP(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"webp-to-jpg": {
|
|
name: "WebP을(를) JPG(으)로",
|
|
description: "WebP을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"webp-to-png": {
|
|
name: "WebP을(를) PNG(으)로",
|
|
description: "WebP을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"jpg-to-avif": {
|
|
name: "JPG을(를) AVIF(으)로",
|
|
description: "JPG을(를) AVIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"png-to-avif": {
|
|
name: "PNG을(를) AVIF(으)로",
|
|
description: "PNG을(를) AVIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"webp-to-avif": {
|
|
name: "WebP을(를) AVIF(으)로",
|
|
description: "WebP을(를) AVIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"heic-to-jpg": {
|
|
name: "HEIC을(를) JPG(으)로",
|
|
description: "HEIC을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"heic-to-png": {
|
|
name: "HEIC을(를) PNG(으)로",
|
|
description: "HEIC을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"heic-to-avif": {
|
|
name: "HEIC을(를) AVIF(으)로",
|
|
description: "HEIC을(를) AVIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"jpg-to-gif": {
|
|
name: "JPG을(를) GIF(으)로",
|
|
description: "JPG을(를) GIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"png-to-gif": {
|
|
name: "PNG을(를) GIF(으)로",
|
|
description: "PNG을(를) GIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"gif-to-jpg": {
|
|
name: "GIF을(를) JPG(으)로",
|
|
description: "GIF을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"gif-to-png": {
|
|
name: "GIF을(를) PNG(으)로",
|
|
description: "GIF을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"webp-to-gif": {
|
|
name: "WebP을(를) GIF(으)로",
|
|
description: "WebP을(를) GIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"jpg-to-tiff": {
|
|
name: "JPG을(를) TIFF(으)로",
|
|
description: "JPG을(를) TIFF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"png-to-tiff": {
|
|
name: "PNG을(를) TIFF(으)로",
|
|
description: "PNG을(를) TIFF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"tiff-to-jpg": {
|
|
name: "TIFF을(를) JPG(으)로",
|
|
description: "TIFF을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"tiff-to-png": {
|
|
name: "TIFF을(를) PNG(으)로",
|
|
description: "TIFF을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"psd-to-jpg": {
|
|
name: "PSD을(를) JPG(으)로",
|
|
description: "PSD을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"psd-to-png": {
|
|
name: "PSD을(를) PNG(으)로",
|
|
description: "PSD을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"png-to-eps": {
|
|
name: "PNG을(를) EPS(으)로",
|
|
description: "PNG을(를) EPS(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"jpg-to-eps": {
|
|
name: "JPG을(를) EPS(으)로",
|
|
description: "JPG을(를) EPS(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"eps-to-png": {
|
|
name: "EPS을(를) PNG(으)로",
|
|
description: "EPS을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"eps-to-jpg": {
|
|
name: "EPS을(를) JPG(으)로",
|
|
description: "EPS을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"png-to-svg": {
|
|
name: "PNG을(를) SVG(으)로",
|
|
description: "PNG을(를) SVG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"jpg-to-svg": {
|
|
name: "JPG을(를) SVG(으)로",
|
|
description: "JPG을(를) SVG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"tiff-to-svg": {
|
|
name: "TIFF을(를) SVG(으)로",
|
|
description: "TIFF을(를) SVG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"psd-to-svg": {
|
|
name: "PSD을(를) SVG(으)로",
|
|
description: "PSD을(를) SVG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"eps-to-svg": {
|
|
name: "EPS을(를) SVG(으)로",
|
|
description: "EPS을(를) SVG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"svg-to-png": {
|
|
name: "SVG을(를) PNG(으)로",
|
|
description: "SVG을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"svg-to-jpg": {
|
|
name: "SVG을(를) JPG(으)로",
|
|
description: "SVG을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"jpg-to-pdf": {
|
|
name: "JPG을(를) PDF(으)로",
|
|
description: "JPG을(를) PDF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"png-to-pdf": {
|
|
name: "PNG을(를) PDF(으)로",
|
|
description: "PNG을(를) PDF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"heic-to-pdf": {
|
|
name: "HEIC을(를) PDF(으)로",
|
|
description: "HEIC을(를) PDF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"tiff-to-pdf": {
|
|
name: "TIFF을(를) PDF(으)로",
|
|
description: "TIFF을(를) PDF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"webp-to-pdf": {
|
|
name: "WebP을(를) PDF(으)로",
|
|
description: "WebP을(를) PDF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"gif-to-pdf": {
|
|
name: "GIF을(를) PDF(으)로",
|
|
description: "GIF을(를) PDF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"eps-to-pdf": {
|
|
name: "EPS을(를) PDF(으)로",
|
|
description: "EPS을(를) PDF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"pdf-to-jpg": {
|
|
name: "PDF을(를) JPG(으)로",
|
|
description: "PDF을(를) JPG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"pdf-to-png": {
|
|
name: "PDF을(를) PNG(으)로",
|
|
description: "PDF을(를) PNG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"pdf-to-tiff": {
|
|
name: "PDF을(를) TIFF(으)로",
|
|
description: "PDF을(를) TIFF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mov-to-mp4": {
|
|
name: "MOV을(를) MP4(으)로",
|
|
description: "MOV을(를) MP4(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"webm-to-mp4": {
|
|
name: "WEBM을(를) MP4(으)로",
|
|
description: "WEBM을(를) MP4(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mkv-to-mp4": {
|
|
name: "MKV을(를) MP4(으)로",
|
|
description: "MKV을(를) MP4(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"avi-to-mp4": {
|
|
name: "AVI을(를) MP4(으)로",
|
|
description: "AVI을(를) MP4(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mp4-to-mov": {
|
|
name: "MP4을(를) MOV(으)로",
|
|
description: "MP4을(를) MOV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mp4-to-webm": {
|
|
name: "MP4을(를) WEBM(으)로",
|
|
description: "MP4을(를) WEBM(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"webm-to-mov": {
|
|
name: "WEBM을(를) MOV(으)로",
|
|
description: "WEBM을(를) MOV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mkv-to-mov": {
|
|
name: "MKV을(를) MOV(으)로",
|
|
description: "MKV을(를) MOV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"avi-to-mov": {
|
|
name: "AVI을(를) MOV(으)로",
|
|
description: "AVI을(를) MOV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mp4-to-avi": {
|
|
name: "MP4을(를) AVI(으)로",
|
|
description: "MP4을(를) AVI(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mov-to-avi": {
|
|
name: "MOV을(를) AVI(으)로",
|
|
description: "MOV을(를) AVI(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mkv-to-avi": {
|
|
name: "MKV을(를) AVI(으)로",
|
|
description: "MKV을(를) AVI(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"avi-to-mkv": {
|
|
name: "AVI을(를) MKV(으)로",
|
|
description: "AVI을(를) MKV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mp4-to-gif": {
|
|
name: "MP4을(를) GIF(으)로",
|
|
description: "MP4을(를) GIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mov-to-gif": {
|
|
name: "MOV을(를) GIF(으)로",
|
|
description: "MOV을(를) GIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mkv-to-gif": {
|
|
name: "MKV을(를) GIF(으)로",
|
|
description: "MKV을(를) GIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"avi-to-gif": {
|
|
name: "AVI을(를) GIF(으)로",
|
|
description: "AVI을(를) GIF(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"gif-to-mp4": {
|
|
name: "GIF을(를) MP4(으)로",
|
|
description: "GIF을(를) MP4(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"gif-to-webm": {
|
|
name: "GIF을(를) WEBM(으)로",
|
|
description: "GIF을(를) WEBM(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"gif-to-mov": {
|
|
name: "GIF을(를) MOV(으)로",
|
|
description: "GIF을(를) MOV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mp4-to-mp3": {
|
|
name: "MP4을(를) MP3(으)로",
|
|
description: "MP4을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mov-to-mp3": {
|
|
name: "MOV을(를) MP3(으)로",
|
|
description: "MOV을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mkv-to-mp3": {
|
|
name: "MKV을(를) MP3(으)로",
|
|
description: "MKV을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"webm-to-mp3": {
|
|
name: "WEBM을(를) MP3(으)로",
|
|
description: "WEBM을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"avi-to-mp3": {
|
|
name: "AVI을(를) MP3(으)로",
|
|
description: "AVI을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mp4-to-wav": {
|
|
name: "MP4을(를) WAV(으)로",
|
|
description: "MP4을(를) WAV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mov-to-wav": {
|
|
name: "MOV을(를) WAV(으)로",
|
|
description: "MOV을(를) WAV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mp4-to-ogg": {
|
|
name: "MP4을(를) OGG(으)로",
|
|
description: "MP4을(를) OGG(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"m4a-to-mp3": {
|
|
name: "M4A을(를) MP3(으)로",
|
|
description: "M4A을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"m4a-to-wav": {
|
|
name: "M4A을(를) WAV(으)로",
|
|
description: "M4A을(를) WAV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"aac-to-mp3": {
|
|
name: "AAC을(를) MP3(으)로",
|
|
description: "AAC을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"aac-to-wav": {
|
|
name: "AAC을(를) WAV(으)로",
|
|
description: "AAC을(를) WAV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"aac-to-flac": {
|
|
name: "AAC을(를) FLAC(으)로",
|
|
description: "AAC을(를) FLAC(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"ogg-to-mp3": {
|
|
name: "OGG을(를) MP3(으)로",
|
|
description: "OGG을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"ogg-to-wav": {
|
|
name: "OGG을(를) WAV(으)로",
|
|
description: "OGG을(를) WAV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"wav-to-mp3": {
|
|
name: "WAV을(를) MP3(으)로",
|
|
description: "WAV을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"mp3-to-wav": {
|
|
name: "MP3을(를) WAV(으)로",
|
|
description: "MP3을(를) WAV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"flac-to-mp3": {
|
|
name: "FLAC을(를) MP3(으)로",
|
|
description: "FLAC을(를) MP3(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
"excel-to-csv": {
|
|
name: "Excel을(를) CSV(으)로",
|
|
description: "Excel을(를) CSV(으)로 온라인 변환. 빠르고 무료이며 비공개입니다.",
|
|
},
|
|
// END conversion-presets
|
|
resize: {
|
|
name: "이미지 크기 조정",
|
|
description: "픽셀, 퍼센트 또는 소셜 미디어 프리셋으로 리사이즈",
|
|
},
|
|
crop: { name: "이미지 크롭", description: "자유 크롭, 비율 프리셋, 도형 크롭" },
|
|
rotate: { name: "이미지 회전 및 뒤집기", description: "이미지 회전, 뒤집기 및 기울기 보정" },
|
|
convert: { name: "이미지 변환", description: "이미지 포맷 간 변환" },
|
|
compress: { name: "이미지 압축", description: "품질 또는 목표 크기로 파일 크기 축소" },
|
|
"optimize-for-web": {
|
|
name: "웹 최적화",
|
|
description: "포맷 변환, 품질 조절, 실시간 미리보기로 웹용 이미지 최적화",
|
|
},
|
|
"strip-metadata": {
|
|
name: "이미지 메타데이터 제거",
|
|
description: "EXIF, GPS 및 카메라 정보 제거",
|
|
},
|
|
"edit-metadata": {
|
|
name: "이미지 메타데이터 편집",
|
|
description: "EXIF, IPTC, XMP, GPS, 키워드 및 날짜 편집",
|
|
},
|
|
"bulk-rename": { name: "일괄 이름 변경", description: "패턴으로 여러 파일 일괄 이름 변경" },
|
|
"image-to-pdf": {
|
|
name: "이미지를 PDF로",
|
|
description: "여러 이미지를 PDF 문서로 합치기",
|
|
},
|
|
"pdf-to-image": { name: "PDF를 이미지로", description: "PDF 페이지를 이미지로 변환" },
|
|
favicon: {
|
|
name: "Favicon 생성기",
|
|
description: "모든 Favicon 및 앱 아이콘 크기 생성",
|
|
},
|
|
"adjust-colors": {
|
|
name: "색상 조정",
|
|
description: "밝기, 대비, 노출, 채도, 색온도, 선명도 및 효과",
|
|
},
|
|
sharpening: {
|
|
name: "이미지 선명하게",
|
|
description: "적응형, 언샵 마스크, 하이패스 샤프닝(프리셋 포함)",
|
|
},
|
|
"replace-color": {
|
|
name: "색상 교체 및 반전",
|
|
description: "특정 색상 교체 또는 반전",
|
|
},
|
|
"color-blindness": {
|
|
name: "색각 시뮬레이션",
|
|
description: "다양한 색각 이상에서 이미지가 어떻게 보이는지 시뮬레이션",
|
|
},
|
|
"remove-background": {
|
|
name: "배경 제거",
|
|
description: "AI 기반 배경 제거",
|
|
},
|
|
upscale: { name: "이미지 업스케일", description: "AI 초해상도 향상" },
|
|
"erase-object": { name: "객체 지우기", description: "AI로 원하지 않는 객체 제거" },
|
|
ocr: {
|
|
name: "이미지에서 텍스트 추출 (OCR)",
|
|
description: "AI로 이미지에서 높은 정확도로 텍스트 추출",
|
|
},
|
|
"ocr-pdf": {
|
|
name: "PDF OCR",
|
|
description: "AI 기반 OCR로 PDF 문서에서 텍스트 추출",
|
|
},
|
|
"blur-faces": {
|
|
name: "얼굴 및 개인정보 블러",
|
|
description: "얼굴과 민감한 정보를 자동 감지하여 블러 처리",
|
|
},
|
|
"enhance-faces": {
|
|
name: "얼굴 향상",
|
|
description: "AI로 얼굴 복원 및 향상",
|
|
},
|
|
"smart-crop": {
|
|
name: "스마트 크롭",
|
|
description: "피사체, 얼굴 또는 트림 기반 스마트 크롭",
|
|
},
|
|
"image-enhancement": {
|
|
name: "이미지 향상",
|
|
description: "원클릭으로 노출, 대비, 색상, 선명도를 스마트 보정",
|
|
},
|
|
"noise-removal": {
|
|
name: "노이즈 제거",
|
|
description: "AI 기반 노이즈 및 입자 제거",
|
|
},
|
|
"red-eye-removal": {
|
|
name: "적목 보정",
|
|
description: "AI 기반 플래시 사진의 적목 감지 및 보정",
|
|
},
|
|
"restore-photo": {
|
|
name: "사진 복원",
|
|
description: "AI로 오래된 사진의 긁힘, 찢어짐 및 손상 복원",
|
|
},
|
|
"content-aware-resize": {
|
|
name: "콘텐츠 인식 리사이즈",
|
|
description: "중요한 콘텐츠를 보호하면서 지능적으로 리사이즈",
|
|
},
|
|
"ai-canvas-expand": {
|
|
name: "AI 캔버스 확장",
|
|
description: "AI 채우기로 캔버스 확장",
|
|
},
|
|
colorize: {
|
|
name: "AI 컬러화",
|
|
description: "AI 딥러닝 모델로 흑백 사진을 풀 컬러로 변환",
|
|
},
|
|
"passport-photo": {
|
|
name: "증명사진",
|
|
description: "얼굴 자동 감지로 정부 규격에 맞는 여권, 비자, 신분증 사진 생성",
|
|
},
|
|
"transcribe-audio": {
|
|
name: "오디오 전사",
|
|
description: "AI 기반 전사로 음성을 텍스트로 변환",
|
|
},
|
|
"auto-subtitles": {
|
|
name: "자동 자막",
|
|
description: "비디오 오디오 트랙에서 자막 파일 생성",
|
|
},
|
|
"transparency-fixer": {
|
|
name: "PNG 투명도 수정",
|
|
description: "가짜 투명 PNG를 원클릭으로 수정",
|
|
},
|
|
"background-replace": {
|
|
name: "배경 교체",
|
|
description: "이미지 배경을 단색으로 교체합니다",
|
|
},
|
|
"blur-background": {
|
|
name: "배경 흐리게",
|
|
description: "피사체는 선명하게 유지하면서 배경을 흐리게 합니다",
|
|
},
|
|
"watermark-text": { name: "텍스트 워터마크", description: "텍스트 워터마크 오버레이 추가" },
|
|
"watermark-image": { name: "이미지 워터마크", description: "로고를 워터마크로 오버레이" },
|
|
"text-overlay": { name: "텍스트 오버레이", description: "이미지에 스타일 텍스트 추가" },
|
|
compose: { name: "이미지 합성", description: "위치와 불투명도로 이미지를 레이어 합성" },
|
|
"meme-generator": {
|
|
name: "Meme 생성기",
|
|
description:
|
|
"인기 템플릿이나 나만의 이미지로 Meme을 만드세요. 클래식 Impact 스타일 텍스트에 글꼴, 색상, 위치를 커스터마이징할 수 있습니다.",
|
|
},
|
|
info: { name: "이미지 정보", description: "모든 메타데이터와 이미지 속성 보기" },
|
|
compare: { name: "이미지 비교", description: "두 이미지를 나란히 비교" },
|
|
"find-duplicates": {
|
|
name: "중복 찾기",
|
|
description: "중복 및 유사 이미지 감지",
|
|
},
|
|
"color-palette": {
|
|
name: "컬러 팔레트",
|
|
description: "이미지에서 주요 색상 추출",
|
|
},
|
|
"qr-generate": {
|
|
name: "QR 코드 생성기",
|
|
description: "맞춤 색상, 패턴, 로고가 포함된 QR 코드 생성",
|
|
},
|
|
"html-to-image": {
|
|
name: "HTML을 이미지로",
|
|
description: "웹페이지를 고품질 이미지로 캡처",
|
|
},
|
|
"barcode-read": {
|
|
name: "바코드 리더",
|
|
description: "이미지에서 QR 코드, 바코드 및 2D 코드 스캔",
|
|
},
|
|
collage: {
|
|
name: "콜라주 및 그리드",
|
|
description: "25가지 이상의 템플릿으로 이미지를 아름다운 그리드 콜라주로 합성",
|
|
},
|
|
stitch: {
|
|
name: "이미지 결합",
|
|
description: "이미지를 나란히, 세로로 또는 그리드로 결합",
|
|
},
|
|
split: {
|
|
name: "이미지 분할",
|
|
description: "그리드 또는 픽셀 크기로 이미지 분할(실시간 미리보기 지원)",
|
|
},
|
|
border: {
|
|
name: "테두리 및 프레임",
|
|
description: "테두리, 패딩, 둥근 모서리, 그림자를 원클릭 프리셋으로 추가",
|
|
},
|
|
beautify: {
|
|
name: "스크린샷 꾸미기",
|
|
description: "스크린샷에 그라데이션 배경, 기기 프레임, 그림자, 소셜 미디어 크기 추가",
|
|
},
|
|
"circle-crop": {
|
|
name: "원형 크롭",
|
|
description: "이미지를 투명 모서리의 원형으로 크롭",
|
|
},
|
|
duotone: {
|
|
name: "듀오톤",
|
|
description: "사용자 지정 그림자 및 하이라이트 색상으로 듀오톤 효과 적용",
|
|
},
|
|
"image-pad": {
|
|
name: "이미지 패딩",
|
|
description: "단색 배경으로 대상 종횡비에 맞게 이미지 패딩 추가",
|
|
},
|
|
pixelate: {
|
|
name: "픽셀화",
|
|
description: "전체 이미지 또는 특정 영역에 픽셀화 효과 적용",
|
|
},
|
|
vignette: {
|
|
name: "비네팅",
|
|
description: "강도와 색상 조절이 가능한 비네팅 효과 추가",
|
|
},
|
|
"gif-webp": {
|
|
name: "GIF/WebP 변환기",
|
|
description: "애니메이션 GIF을 WebP로, 또는 반대로 변환하며 모든 프레임 유지",
|
|
},
|
|
histogram: {
|
|
name: "히스토그램",
|
|
description: "이미지에서 RGB 히스토그램 차트 생성",
|
|
},
|
|
"lqip-placeholder": {
|
|
name: "LQIP 플레이스홀더",
|
|
description: "base64 데이터 URI로 저품질 이미지 플레이스홀더 생성",
|
|
},
|
|
"sprite-sheet": {
|
|
name: "스프라이트 시트",
|
|
description: "여러 이미지를 하나의 스프라이트 시트 그리드로 결합",
|
|
},
|
|
"svg-to-raster": {
|
|
name: "SVG를 래스터로",
|
|
description: "SVG를 PNG, JPEG, WebP, AVIF, TIFF, GIF, HEIF로 맞춤 스케일 및 DPI로 변환",
|
|
},
|
|
vectorize: {
|
|
name: "이미지를 SVG로",
|
|
description: "이미지를 스케일러블 벡터 그래픽으로 변환",
|
|
},
|
|
"gif-tools": {
|
|
name: "GIF 도구",
|
|
description: "애니메이션 GIF의 리사이즈, 최적화, 속도 변경, 역재생, 프레임 추출, 회전",
|
|
},
|
|
"image-to-base64": {
|
|
name: "이미지를 Base64로",
|
|
description: "이미지를 Base64 문자열로 변환하여 HTML, CSS 등에 임베드",
|
|
},
|
|
"barcode-generate": {
|
|
name: "바코드 생성기",
|
|
description: "Code 128, EAN-13, UPC-A, Code 39, ITF-14, Data Matrix 형식의 바코드 생성",
|
|
},
|
|
"chart-maker": {
|
|
name: "차트 만들기",
|
|
description: "CSV 또는 JSON 데이터로 막대, 선, 원형 차트 생성",
|
|
},
|
|
"convert-video": {
|
|
name: "동영상 변환",
|
|
description: "MP4, MOV, WebM 간 동영상 변환",
|
|
},
|
|
"compress-video": {
|
|
name: "동영상 압축",
|
|
description: "품질 조절로 동영상 파일 크기 줄이기",
|
|
},
|
|
"trim-video": {
|
|
name: "동영상 자르기",
|
|
description: "동영상에서 원하는 구간 잘라내기",
|
|
},
|
|
"mute-video": {
|
|
name: "동영상 음소거",
|
|
description: "동영상에서 오디오 트랙 제거",
|
|
},
|
|
"video-to-gif": {
|
|
name: "동영상을 GIF로",
|
|
description: "동영상 클립을 애니메이션 GIF으로 변환",
|
|
},
|
|
"resize-video": {
|
|
name: "동영상 크기 조정",
|
|
description: "동영상을 새 해상도 또는 프리셋 크기로 조정",
|
|
},
|
|
"crop-video": {
|
|
name: "동영상 크롭",
|
|
description: "동영상에서 특정 영역 크롭",
|
|
},
|
|
"rotate-video": {
|
|
name: "동영상 회전",
|
|
description: "동영상 회전 또는 반전",
|
|
},
|
|
"change-fps": {
|
|
name: "프레임 레이트 변경",
|
|
description: "동영상의 프레임 레이트 변경",
|
|
},
|
|
"video-color": {
|
|
name: "동영상 색상",
|
|
description: "밝기, 대비, 채도, 감마 조정",
|
|
},
|
|
"video-speed": {
|
|
name: "동영상 속도",
|
|
description: "동영상 속도 높이기 또는 낮추기",
|
|
},
|
|
"reverse-video": {
|
|
name: "동영상 역재생",
|
|
description: "동영상 클립을 거꾸로 재생",
|
|
},
|
|
"video-loudnorm": {
|
|
name: "동영상 오디오 정규화",
|
|
description: "동영상 오디오 볼륨을 방송 표준으로 정규화",
|
|
},
|
|
"aspect-pad": {
|
|
name: "종횡비 패딩",
|
|
description: "대상 종횡비에 맞게 단색 바 추가",
|
|
},
|
|
"blur-pad": {
|
|
name: "블러 패딩",
|
|
description: "동영상의 흐린 복사본으로 여백 채우기",
|
|
},
|
|
"watermark-video": {
|
|
name: "동영상 워터마크",
|
|
description: "동영상 프레임에 텍스트 워터마크 삽입",
|
|
},
|
|
"stabilize-video": {
|
|
name: "동영상 손떨림 보정",
|
|
description: "2단계 보정으로 카메라 흔들림 줄이기",
|
|
},
|
|
"gif-to-video": {
|
|
name: "GIF을 동영상으로",
|
|
description: "애니메이션 GIF을 MP4 또는 WebM 동영상으로 변환",
|
|
},
|
|
"video-to-webp": {
|
|
name: "동영상을 WebP로",
|
|
description: "동영상 클립을 애니메이션 WebP 이미지로 변환",
|
|
},
|
|
"video-to-frames": {
|
|
name: "동영상을 프레임으로",
|
|
description: "동영상에서 프레임을 추출하여 이미지 ZIP으로 저장",
|
|
},
|
|
"merge-videos": {
|
|
name: "동영상 병합",
|
|
description: "여러 동영상 클립을 하나의 파일로 합치기",
|
|
},
|
|
"replace-audio": {
|
|
name: "오디오 교체",
|
|
description: "동영상의 오디오 트랙을 다른 파일로 교체",
|
|
},
|
|
"burn-subtitles": {
|
|
name: "자막 굽기",
|
|
description: "동영상 프레임에 자막을 영구적으로 렌더링",
|
|
},
|
|
"embed-subtitles": {
|
|
name: "자막 삽입",
|
|
description: "동영상 컨테이너에 자막 트랙 삽입",
|
|
},
|
|
"extract-subtitles": {
|
|
name: "자막 추출",
|
|
description: "동영상에서 자막 트랙을 SRT 파일로 추출",
|
|
},
|
|
"images-to-video": {
|
|
name: "이미지를 동영상으로",
|
|
description: "이미지 세트를 슬라이드쇼 동영상으로 만들기",
|
|
},
|
|
"video-metadata": {
|
|
name: "동영상 메타데이터 정리",
|
|
description: "동영상에서 메타데이터를 제거하고 발견된 내용 보고",
|
|
},
|
|
"convert-audio": {
|
|
name: "오디오 변환",
|
|
description: "MP3, WAV, OGG 등 오디오 형식 간 변환",
|
|
},
|
|
"trim-audio": {
|
|
name: "오디오 자르기",
|
|
description: "오디오 파일에서 원하는 구간 잘라내기",
|
|
},
|
|
"extract-audio": {
|
|
name: "오디오 추출",
|
|
description: "동영상에서 오디오 트랙 추출",
|
|
},
|
|
"volume-adjust": {
|
|
name: "볼륨 조정",
|
|
description: "고정 게인으로 오디오 볼륨 높이기 또는 낮추기",
|
|
},
|
|
"normalize-audio": {
|
|
name: "오디오 정규화",
|
|
description: "방송 표준 수준으로 음량 균일화",
|
|
},
|
|
"fade-audio": {
|
|
name: "오디오 페이드",
|
|
description: "오디오에 페이드 인/아웃 효과 추가",
|
|
},
|
|
"reverse-audio": {
|
|
name: "오디오 역재생",
|
|
description: "오디오를 거꾸로 재생",
|
|
},
|
|
"audio-speed": {
|
|
name: "오디오 속도",
|
|
description: "오디오 재생 속도 높이기 또는 낮추기",
|
|
},
|
|
"pitch-shift": {
|
|
name: "피치 변환",
|
|
description: "속도 변경 없이 반음 단위로 피치 높이기 또는 낮추기",
|
|
},
|
|
"audio-channels": {
|
|
name: "오디오 채널",
|
|
description: "모노, 스테레오 간 변환 또는 좌우 채널 교환",
|
|
},
|
|
"silence-removal": {
|
|
name: "무음 제거",
|
|
description: "오디오에서 무음 구간 제거",
|
|
},
|
|
"noise-reduction": {
|
|
name: "노이즈 감소",
|
|
description: "FFT 기반 디노이징으로 배경 소음 감소",
|
|
},
|
|
"merge-audio": {
|
|
name: "오디오 병합",
|
|
description: "여러 오디오 파일을 하나로 합치기",
|
|
},
|
|
"split-audio": {
|
|
name: "오디오 분할",
|
|
description: "시간, 균등 분할 또는 무음 감지로 오디오 분할",
|
|
},
|
|
"ringtone-maker": {
|
|
name: "벨소리 만들기",
|
|
description: "오디오 파일에서 벨소리 클립 만들기",
|
|
},
|
|
"waveform-image": {
|
|
name: "파형 이미지",
|
|
description: "PNG 이미지로 파형 시각화 생성",
|
|
},
|
|
"audio-metadata": {
|
|
name: "오디오 메타데이터",
|
|
description: "오디오 태그(ID3) 보기, 편집 또는 제거",
|
|
},
|
|
"merge-pdf": {
|
|
name: "PDF 병합",
|
|
description: "여러 PDF를 하나로 합치기",
|
|
},
|
|
"split-pdf": {
|
|
name: "PDF 분할",
|
|
description: "페이지 추출 또는 여러 부분으로 분할",
|
|
},
|
|
"compress-pdf": {
|
|
name: "PDF 압축",
|
|
description: "PDF 파일 크기 줄이기",
|
|
},
|
|
"rotate-pdf": {
|
|
name: "PDF 회전",
|
|
description: "PDF 페이지 회전",
|
|
},
|
|
"convert-document": {
|
|
name: "문서 변환",
|
|
description: "Word, OpenDocument, RTF, 일반 텍스트 형식 간 변환",
|
|
},
|
|
"convert-presentation": {
|
|
name: "프레젠테이션 변환",
|
|
description: "PowerPoint와 OpenDocument 프레젠테이션 형식 간 변환",
|
|
},
|
|
"convert-spreadsheet": {
|
|
name: "스프레드시트 변환",
|
|
description:
|
|
"Excel, OpenDocument, CSV 형식 간 변환. 다중 시트 통합 문서는 첫 번째 시트를 CSV로 내보냅니다.",
|
|
},
|
|
"excel-to-pdf": {
|
|
name: "Excel을 PDF로",
|
|
description: "스프레드시트를 PDF로 변환. 넓은 시트는 여러 페이지에 걸쳐 나뉠 수 있습니다.",
|
|
},
|
|
"word-to-pdf": {
|
|
name: "Word를 PDF로",
|
|
description: "Word 문서를 PDF로 변환",
|
|
},
|
|
"extract-pages": {
|
|
name: "페이지 추출",
|
|
description: "선택한 페이지를 새 PDF로 추출",
|
|
},
|
|
"remove-pages": {
|
|
name: "페이지 제거",
|
|
description: "PDF에서 특정 페이지 삭제",
|
|
},
|
|
"organize-pdf": {
|
|
name: "PDF 정리",
|
|
description: "명시적 페이지 순서로 페이지 재정렬",
|
|
},
|
|
"protect-pdf": {
|
|
name: "PDF 보호",
|
|
description: "비밀번호 보호 추가 (AES-256 암호화)",
|
|
},
|
|
"unlock-pdf": {
|
|
name: "PDF 잠금 해제",
|
|
description: "PDF에서 비밀번호 보호 제거",
|
|
},
|
|
"repair-pdf": {
|
|
name: "PDF 복구",
|
|
description: "손상된 PDF 복구 시도",
|
|
},
|
|
"linearize-pdf": {
|
|
name: "웹 최적화 PDF",
|
|
description: "빠른 웹 보기를 위해 PDF 선형화",
|
|
},
|
|
"grayscale-pdf": {
|
|
name: "PDF 흑백 변환",
|
|
description: "모든 색상을 흑백으로 변환",
|
|
},
|
|
"pdfa-convert": {
|
|
name: "PDF/A 변환기",
|
|
description: "보관용 PDF/A-2로 변환",
|
|
},
|
|
"crop-pdf": {
|
|
name: "PDF 크롭",
|
|
description: "균일한 여백으로 모든 페이지 크롭",
|
|
},
|
|
"nup-pdf": {
|
|
name: "한 장에 여러 페이지 (N-up)",
|
|
description: "한 장에 여러 페이지 배치",
|
|
},
|
|
"booklet-pdf": {
|
|
name: "소책자 PDF",
|
|
description: "소책자로 접을 수 있도록 페이지 배치",
|
|
},
|
|
"watermark-pdf": {
|
|
name: "PDF 워터마크",
|
|
description: "모든 페이지에 텍스트 워터마크 추가",
|
|
},
|
|
"pdf-page-numbers": {
|
|
name: "PDF 페이지 번호",
|
|
description: "모든 페이지에 페이지 번호 추가",
|
|
},
|
|
"flatten-pdf": {
|
|
name: "PDF 평탄화",
|
|
description: "양식과 주석을 페이지 콘텐츠에 고정",
|
|
},
|
|
"redact-pdf": {
|
|
name: "PDF 교정",
|
|
description: "텍스트를 영구적으로 삭제 (검증된 완전 삭제)",
|
|
},
|
|
"pdf-to-text": {
|
|
name: "PDF를 텍스트로",
|
|
description: "PDF에서 일반 텍스트 추출",
|
|
},
|
|
"pdf-to-word": {
|
|
name: "PDF를 Word로",
|
|
description: "텍스트 기반 PDF에 최적; 스캔된 페이지는 OCR 필요",
|
|
},
|
|
"pdf-metadata": {
|
|
name: "PDF 메타데이터",
|
|
description: "PDF 문서 메타데이터 읽기 및 쓰기",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
name: "PowerPoint를 PDF로",
|
|
description: "프레젠테이션을 PDF로 변환",
|
|
},
|
|
"html-to-pdf": {
|
|
name: "HTML을 PDF로",
|
|
description: "HTML 파일을 PDF로 변환. 개인정보 보호를 위해 외부 리소스는 비활성화됩니다.",
|
|
},
|
|
"markdown-to-docx": {
|
|
name: "Markdown을 Word로",
|
|
description: "Markdown 파일을 Word 문서(DOCX)로 변환",
|
|
},
|
|
"markdown-to-html": {
|
|
name: "Markdown을 HTML로",
|
|
description:
|
|
"Markdown 파일을 독립형 HTML 페이지로 변환. 원본의 외부 이미지는 출력에 그대로 유지됩니다.",
|
|
},
|
|
"markdown-to-pdf": {
|
|
name: "Markdown을 PDF로",
|
|
description:
|
|
"Markdown 파일을 스타일이 적용된 PDF로 변환. 개인정보 보호를 위해 외부 리소스는 비활성화됩니다.",
|
|
},
|
|
"epub-convert": {
|
|
name: "EPUB에서 변환",
|
|
description:
|
|
"EPUB을 PDF, DOCX, HTML 또는 Markdown으로 변환. 책 내부의 외부 리소스는 가져오지 않습니다.",
|
|
},
|
|
"to-epub": {
|
|
name: "EPUB으로 변환",
|
|
description: "Word, Markdown, HTML 또는 일반 텍스트 파일을 EPUB으로 변환",
|
|
},
|
|
"csv-excel": {
|
|
name: "CSV와 Excel 변환",
|
|
description: "CSV와 Excel(XLSX) 간 양방향 변환",
|
|
},
|
|
"csv-json": {
|
|
name: "CSV와 JSON 변환",
|
|
description: "CSV와 JSON 간 양방향 변환",
|
|
},
|
|
"json-xml": {
|
|
name: "JSON과 XML 변환",
|
|
description: "JSON과 XML 간 양방향 변환",
|
|
},
|
|
"split-csv": {
|
|
name: "CSV 분할",
|
|
description: "행 수 기준으로 CSV를 여러 파일로 분할",
|
|
},
|
|
"merge-csvs": {
|
|
name: "CSV 병합",
|
|
description: "동일한 열을 가진 여러 CSV 또는 TSV 파일을 하나로 합치기",
|
|
},
|
|
"yaml-json": {
|
|
name: "YAML / JSON 변환",
|
|
description: "YAML과 JSON 간 양방향 변환",
|
|
},
|
|
"xml-to-csv": {
|
|
name: "XML을 CSV로",
|
|
description: "XML에서 반복 요소를 CSV 테이블로 추출",
|
|
},
|
|
"create-zip": {
|
|
name: "ZIP 만들기",
|
|
description: "여러 파일을 하나의 ZIP 아카이브로 묶기",
|
|
},
|
|
"extract-zip": {
|
|
name: "ZIP 추출",
|
|
description:
|
|
"ZIP 아카이브에서 폭탄 방지 기능으로 안전하게 파일 추출. 단일 파일 아카이브는 파일을 직접 반환합니다.",
|
|
},
|
|
pipeline: { name: "Pipeline 빌더", description: "여러 도구를 워크플로로 연결" },
|
|
processing: { canceled: "처리가 취소되었습니다" },
|
|
mediaPlayer: {
|
|
unsupported: "브라우저가 이 미디어 형식을 지원하지 않습니다.",
|
|
},
|
|
documentView: {
|
|
loadFailed: "문서를 불러오지 못했습니다.",
|
|
previousPage: "이전 페이지",
|
|
nextPage: "다음 페이지",
|
|
inputNotPreviewable: "이 파일 형식은 미리보기를 사용할 수 없습니다",
|
|
},
|
|
},
|
|
toolSettings: {
|
|
compress: {
|
|
compressionMode: "압축 모드",
|
|
targetSize: "목표 크기",
|
|
quality: "품질",
|
|
smallestFile: "최소 파일",
|
|
bestQuality: "최고 품질",
|
|
submit: "압축",
|
|
submitBatch: "압축 ({count}개 파일)",
|
|
progressLabel: "압축 중",
|
|
original: "원본: {size} KB",
|
|
processed: "처리 후: {size} KB",
|
|
saved: "절감: {percent}%",
|
|
},
|
|
resize: {
|
|
customSize: "맞춤 크기",
|
|
scale: "스케일",
|
|
presets: "프리셋",
|
|
contentAware: "콘텐츠 인식",
|
|
aspectRatio: "종횡비",
|
|
ratioFree: "자유",
|
|
ratioOriginal: "원본",
|
|
widthPx: "너비 (px)",
|
|
heightPx: "높이 (px)",
|
|
fitMode: "맞춤 모드",
|
|
cropToFit: "크롭하여 맞춤",
|
|
fitInside: "내부에 맞춤",
|
|
stretch: "늘리기",
|
|
limitToOriginalSize: "원본 크기로 제한",
|
|
limitToOriginalSizeHint: "이미지가 이미 목표보다 작은 경우 확대하지 않고 원본 유지",
|
|
scalePercent: "스케일 (%)",
|
|
resizeToSquare: "정사각형으로 리사이즈",
|
|
protectFaces: "얼굴 보호",
|
|
smoothing: "스무딩",
|
|
edgeSensitivity: "엣지 감도",
|
|
submit: "리사이즈",
|
|
submitBatch: "리사이즈 ({count}개 파일)",
|
|
progressLabel: "리사이즈 중",
|
|
},
|
|
crop: {
|
|
aspectRatio: "종횡비",
|
|
custom: "맞춤",
|
|
positionAndSize: "위치 및 크기",
|
|
ruleOfThirds: "삼분할법",
|
|
leftOffsetPx: "왼쪽 오프셋 (px)",
|
|
topOffsetPx: "상단 오프셋 (px)",
|
|
submit: "크롭",
|
|
submitBatch: "크롭 ({count}개 파일)",
|
|
progressLabel: "크롭 중",
|
|
},
|
|
rotate: {
|
|
rotate: "회전",
|
|
angle: "각도",
|
|
straighten: "기울기 보정",
|
|
flip: "뒤집기",
|
|
horizontal: "수평",
|
|
vertical: "수직",
|
|
resetAllChanges: "모든 변경 초기화",
|
|
submit: "적용",
|
|
submitBatch: "적용 ({count}개 파일)",
|
|
progressLabel: "적용 중",
|
|
},
|
|
convert: {
|
|
targetFormat: "대상 포맷",
|
|
sourceFormat: "원본 포맷",
|
|
quality: "품질",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"optimize-for-web": {
|
|
outputFormat: "출력 포맷",
|
|
quality: "품질",
|
|
smallestFile: "최소 파일",
|
|
bestQuality: "최고 품질",
|
|
maxDimensions: "최대 크기",
|
|
maxWidth: "최대 너비",
|
|
maxHeight: "최대 높이",
|
|
stripMetadata: "메타데이터 제거",
|
|
sizeComparison: "크기 비교",
|
|
optimized: "최적화 후:",
|
|
smaller: "{percent}% 축소",
|
|
larger: "{percent}% 증가",
|
|
submit: "처리 후 다운로드",
|
|
submitBatch: "처리 후 다운로드 ({count}개 파일)",
|
|
progressLabel: "최적화 중",
|
|
},
|
|
"strip-metadata": {
|
|
currentMetadata: "현재 메타데이터",
|
|
readingMetadata: "메타데이터 읽는 중...",
|
|
noMetadataFound: "이 이미지에서 메타데이터를 찾을 수 없습니다.",
|
|
removeAllMetadata: "모든 메타데이터 제거",
|
|
selectSpecific: "또는 특정 메타데이터 선택:",
|
|
stripExif: "EXIF 제거 (카메라 정보, 날짜, 노출)",
|
|
stripGps: "GPS 제거 (위치 데이터)",
|
|
stripIcc: "ICC 제거 (색상 프로파일)",
|
|
stripXmp: "XMP 제거 (확장 메타데이터)",
|
|
locationFound: "위치 정보 발견",
|
|
viewOnMap: "지도에서 보기",
|
|
locationWarning:
|
|
"이 이미지에 정확한 위치 정보가 포함되어 있습니다. 공유 전에 GPS 데이터 제거를 권장합니다.",
|
|
metadataSections: "메타데이터 섹션 {count}개 발견",
|
|
metadataSectionsPlural: "메타데이터 섹션 {count}개 발견",
|
|
metadataRemoved: "제거된 메타데이터: {size} KB",
|
|
submit: "메타데이터 제거",
|
|
progressLabel: "메타데이터 제거 중",
|
|
},
|
|
"edit-metadata": {
|
|
readingMetadata: "메타데이터 읽는 중...",
|
|
couldNotReadMetadata: "메타데이터를 읽을 수 없습니다. 필드가 빈 상태로 시작됩니다.",
|
|
basicInfo: "기본 정보",
|
|
description: "설명",
|
|
artist: "아티스트",
|
|
copyright: "저작권",
|
|
software: "소프트웨어",
|
|
iptc: "IPTC",
|
|
title: "제목",
|
|
headline: "헤드라인",
|
|
city: "도시",
|
|
stateProvince: "시/도",
|
|
country: "국가",
|
|
dateAndTime: "날짜 및 시간",
|
|
editDates: "날짜 편집",
|
|
shiftAllDates: "모든 날짜 일괄 이동",
|
|
dateModified: "수정일",
|
|
dateTaken: "촬영일",
|
|
shiftHint: "모든 날짜 필드를 오프셋만큼 이동 (시간대 보정에 유용)",
|
|
direction: "방향",
|
|
forward: "+ 앞으로",
|
|
backward: "- 뒤로",
|
|
hoursMinutes: "시:분",
|
|
locationGps: "위치 (GPS)",
|
|
locationDataFound: "위치 데이터 발견",
|
|
noGpsData: "GPS 데이터 없음. 아래에서 좌표를 추가하세요.",
|
|
latitude: "위도",
|
|
longitude: "경도",
|
|
altitudeMeters: "고도 (미터)",
|
|
removeAllGpsData: "모든 GPS 데이터 제거",
|
|
keywords: "키워드",
|
|
addKeywordPlaceholder: "키워드를 입력하고 Enter를 누르세요",
|
|
addToExisting: "기존에 추가",
|
|
replaceAll: "모두 교체",
|
|
allMetadata: "모든 메타데이터",
|
|
templates: "템플릿",
|
|
templateNamePlaceholder: "템플릿 이름",
|
|
uploadPrompt: "메타데이터를 편집하려면 이미지를 업로드하세요.",
|
|
changes: "{count}개 변경:",
|
|
modified: "{count}개 수정됨",
|
|
removed: "{count}개 제거됨",
|
|
gpsCleared: "GPS 삭제됨",
|
|
gpsAdded: "GPS 추가됨",
|
|
datesShifted: "날짜 이동됨",
|
|
submit: "메타데이터 적용",
|
|
progressLabel: "메타데이터 기록 중",
|
|
},
|
|
"bulk-rename": {
|
|
pattern: "패턴",
|
|
patternHint: "변수: {{index}}, {{padded}}, {{original}}",
|
|
startIndex: "시작 인덱스",
|
|
preview: "미리보기",
|
|
andMore: "...외 {count}개 더",
|
|
renaming: "이름 변경 중...",
|
|
submit: "{count}개 파일 이름 변경",
|
|
zipDownloaded: "ZIP 다운로드 완료",
|
|
},
|
|
"image-to-pdf": {
|
|
imageCount: "{count}개의 이미지가 {mode}(으)로 변환됩니다",
|
|
imageCountPlural: "{count}개의 이미지가 {mode}(으)로 변환됩니다",
|
|
singlePdfMode: "단일 PDF, 페이지당 이미지 1개",
|
|
separatePdfMode: "개별 PDF, 이미지당 1개",
|
|
combineAllImages: "모든 이미지를 하나의 PDF로 합치기",
|
|
pageSize: "페이지 크기",
|
|
orientation: "방향",
|
|
portrait: "세로",
|
|
landscape: "가로",
|
|
margin: "여백",
|
|
targetSizeLabel: "목표 파일 크기 (선택)",
|
|
targetSizePlaceholder: "예: 2",
|
|
targetSizeHint: "비워두면 최고 품질",
|
|
targetSizeMet: "목표 달성",
|
|
targetSizeNotMet: "목표에 도달할 수 없습니다. 최저 품질로 압축되었습니다.",
|
|
targetSizeTooSmall: "목표는 최소 50KB여야 합니다",
|
|
jpegQualityLabel: "사용된 JPEG 품질",
|
|
noImage: "이미지 없음",
|
|
submitCollate: "PDF 생성 ({count}페이지)",
|
|
submitSeparate: "PDF {count}개 생성",
|
|
downloadPdf: "PDF 다운로드",
|
|
downloadZip: "ZIP 다운로드",
|
|
progressLabel: "PDF 생성 중",
|
|
uploadingImages: "이미지 업로드 중...",
|
|
processingPages: "{count}페이지 처리 중...",
|
|
},
|
|
"pdf-to-image": {
|
|
dropPdf: "여기에 PDF를 놓거나 클릭하여 선택",
|
|
readingPdf: "PDF 읽는 중...",
|
|
pageCount: "{count}페이지",
|
|
pageCountPlural: "{count}페이지",
|
|
outputFormat: "출력 포맷",
|
|
quality: "품질",
|
|
resolutionDpi: "해상도 (DPI)",
|
|
dpiScreen: "화면용",
|
|
dpiStandard: "표준",
|
|
dpiPrint: "인쇄",
|
|
dpiHighQuality: "고품질",
|
|
colorMode: "색상 모드",
|
|
colorModeColor: "컬러",
|
|
colorModeGrayscale: "그레이스케일",
|
|
colorModeBw: "흑백",
|
|
pages: "페이지",
|
|
allPages: "모든 페이지",
|
|
pagesHint: "예: 1-3, 5, 8-10 (문서 총 {count}페이지)",
|
|
converting: "변환 중...",
|
|
submit: "{count}페이지 변환",
|
|
submitPlural: "{count}페이지 변환",
|
|
downloadAllZip: "전체 다운로드 (ZIP)",
|
|
},
|
|
favicon: {
|
|
uploadHint:
|
|
"정사각형 이미지(512x512 이상 권장)를 업로드하여 모든 Favicon 및 앱 아이콘 크기를 생성하세요.",
|
|
multipleHint: "{count}개의 이미지 각각이 ZIP 내 별도 폴더에 저장됩니다.",
|
|
generatedSizes: "생성 크기 (이미지당)",
|
|
plusManifest: "+ manifest.json + HTML 스니펫",
|
|
submit: "Favicon 생성 ({count}개 이미지)",
|
|
submitPlural: "Favicon 생성 ({count}개 이미지)",
|
|
downloadZip: "Favicon ZIP 다운로드",
|
|
progressLabel: "Favicon 생성 중",
|
|
},
|
|
"adjust-colors": {
|
|
light: "라이트",
|
|
brightness: "밝기",
|
|
contrast: "대비",
|
|
exposure: "노출",
|
|
color: "색상",
|
|
saturation: "채도",
|
|
temperature: "색온도",
|
|
temperatureHint: "차가운 / 따뜻한",
|
|
tint: "틴트",
|
|
tintHint: "녹색 / 자홍",
|
|
hue: "색조",
|
|
detail: "디테일",
|
|
sharpness: "선명도",
|
|
effects: "효과",
|
|
none: "없음",
|
|
grayscale: "그레이스케일",
|
|
sepia: "세피아",
|
|
invert: "반전",
|
|
colorChannels: "색상 채널",
|
|
channelModified: "수정됨",
|
|
red: "빨강",
|
|
green: "초록",
|
|
blue: "파랑",
|
|
resetAll: "모두 초기화",
|
|
submit: "적용",
|
|
submitBatch: "적용 ({count}개 파일)",
|
|
progressLabel: "색상 조정 중",
|
|
},
|
|
sharpening: {
|
|
method: "방법",
|
|
adaptive: "적응형",
|
|
unsharpMask: "언샵 마스크",
|
|
highPass: "하이패스",
|
|
presets: "프리셋",
|
|
textureAmount: "텍스처 양",
|
|
amount: "양",
|
|
strength: "강도",
|
|
noiseReduction: "노이즈 감소",
|
|
off: "끔",
|
|
lightDenoise: "약함",
|
|
mediumDenoise: "보통",
|
|
strongDenoise: "강함",
|
|
advancedControls: "고급 설정",
|
|
radius: "반경",
|
|
flatProtection: "평탄 영역 보호",
|
|
detailThreshold: "디테일 임계값",
|
|
haloLimitLight: "할로 제한 (밝은 부분)",
|
|
haloLimitDark: "할로 제한 (어두운 부분)",
|
|
threshold: "임계값",
|
|
kernelSize: "커널 크기",
|
|
submit: "선명하게",
|
|
submitBatch: "선명하게 ({count}개 파일)",
|
|
progressLabel: "샤프닝 중",
|
|
},
|
|
"replace-color": {
|
|
sourceColor: "원본 색상 (교체 대상)",
|
|
targetColor: "대상 색상 (교체할 색상)",
|
|
makeTransparent: "투명으로 교체",
|
|
tolerance: "허용 범위",
|
|
exactMatch: "정확히 일치",
|
|
wideRange: "넓은 범위",
|
|
submit: "색상 교체",
|
|
submitBatch: "색상 교체 ({count}개 파일)",
|
|
progressLabel: "색상 교체 중",
|
|
},
|
|
"color-blindness": {
|
|
simulationType: "시뮬레이션 유형",
|
|
redGreen: "적록 색각 이상",
|
|
blueYellow: "청황 색각 이상",
|
|
monochromatic: "전색맹",
|
|
submit: "시뮬레이션",
|
|
submitBatch: "시뮬레이션 ({count}개 파일)",
|
|
progressLabel: "색각 시뮬레이션 중",
|
|
},
|
|
"remove-background": {
|
|
subject: "피사체",
|
|
people: "인물",
|
|
products: "제품",
|
|
general: "일반",
|
|
passportIdPhoto: "증명사진",
|
|
quality: "품질",
|
|
fast: "빠름",
|
|
hd: "HD",
|
|
max: "최고",
|
|
ultra: "울트라",
|
|
background: "배경",
|
|
transparent: "투명",
|
|
bgColor: "색상",
|
|
gradient: "그라데이션",
|
|
image: "이미지",
|
|
gradientDirection: "방향",
|
|
chooseBackgroundImage: "배경 이미지 선택",
|
|
effectsSection: "효과",
|
|
effectsActive: "활성",
|
|
blurBackground: "배경 블러",
|
|
intensity: "강도",
|
|
addShadow: "그림자 추가",
|
|
opacity: "불투명도",
|
|
outputFormat: "출력 형식",
|
|
edgeSmoothing: "가장자리 다듬기",
|
|
edgeSmoothingOff: "끄기",
|
|
edgeSmoothingLight: "약하게",
|
|
edgeSmoothingMedium: "보통",
|
|
edgeSmoothingStrong: "강하게",
|
|
colorDecontamination: "색상 오염 제거",
|
|
rendering: "렌더링 중...",
|
|
submit: "배경 제거",
|
|
submitBatch: "배경 제거 ({count}개 파일)",
|
|
progressLabel: "배경 제거 중",
|
|
},
|
|
"remove-gif-background": {
|
|
quality: "품질",
|
|
qualityFast: "빠름",
|
|
qualityBalanced: "균형",
|
|
qualityBest: "최고",
|
|
qualityNote: "모든 프레임이 모델을 거치므로, 긴 클립에서는 품질이 높을수록 훨씬 느립니다.",
|
|
outputFormat: "출력 형식",
|
|
formatWebp: "WebP",
|
|
formatApng: "APNG",
|
|
formatGif: "GIF",
|
|
formatWebpHint: "WebP와 APNG는 매끄럽고 완전한 투명도를 유지합니다.",
|
|
gifCaveat: "GIF는 1비트 투명도만 지원해서 가장자리가 딱딱하게 보입니다.",
|
|
background: "배경",
|
|
bgTransparent: "투명",
|
|
bgColor: "색상",
|
|
bgGradient: "그라데이션",
|
|
bgBlur: "블러",
|
|
bgImage: "이미지",
|
|
gradientStart: "시작",
|
|
gradientEnd: "끝",
|
|
gradientAngle: "각도 ({deg}°)",
|
|
blurStrength: "블러 강도 ({value})",
|
|
shadow: "그림자 추가",
|
|
shadowStrength: "그림자 불투명도 ({value})",
|
|
advanced: "고급",
|
|
edgeRefine: "가장자리 다듬기 (레벨 {level})",
|
|
edgeRefineOff: "가장자리 다듬기: 끄기",
|
|
decontaminate: "색상 번짐 제거",
|
|
uploadBg: "배경 이미지 업로드",
|
|
frameNote: "모든 프레임을 처리하므로 긴 애니메이션은 느립니다. GPU를 권장합니다.",
|
|
submit: "배경 제거",
|
|
submitBatch: "배경 제거 ({count}개 파일)",
|
|
progressLabel: "프레임에서 배경 제거 중",
|
|
download: "다운로드",
|
|
},
|
|
upscale: {
|
|
scaleFactor: "확대 배율",
|
|
quality: "품질",
|
|
enhanceFaces: "얼굴 향상",
|
|
noiseReduction: "노이즈 감소",
|
|
noiseReductionHint:
|
|
"입자와 노이즈를 스무딩합니다. 값이 높을수록 노이즈 제거가 강하지만 디테일이 부드러워질 수 있습니다.",
|
|
outputFormat: "출력 포맷",
|
|
submit: "{scale}배 확대",
|
|
submitBatch: "{scale}배 확대 ({count}개 파일)",
|
|
progressLabel: "이미지 업스케일 중",
|
|
progressLabelBatch: "{count}개 이미지 업스케일 중",
|
|
},
|
|
"erase-object": {
|
|
brushMode: "브러시",
|
|
lassoMode: "올가미",
|
|
brushSize: "브러시 크기",
|
|
fine: "가늘게",
|
|
wide: "굵게",
|
|
undo: "실행 취소",
|
|
clear: "지우기",
|
|
outputFormat: "출력 포맷",
|
|
quality: "품질",
|
|
paintHint: "제거할 객체 위를 칠하세요. Ctrl+Z로 실행 취소할 수 있습니다.",
|
|
lassoHint: "제거할 객체 주위에 올가미를 그리세요. Ctrl+Z로 실행 취소할 수 있습니다.",
|
|
submit: "객체 지우기",
|
|
submitBatch: "모두 지우기 ({count})",
|
|
progressLabel: "객체 지우는 중",
|
|
},
|
|
ocr: {
|
|
quality: "품질",
|
|
enhanceBeforeScanning: "스캔 전 향상",
|
|
enhanceHint:
|
|
"인식 전에 국소 대비를 개선합니다. 빠름은 직접 적용하고, 균형 및 최고는 보정된 점수가 결과를 개선할 때만 해당 버전을 사용합니다.",
|
|
fastKoreanUnsupported:
|
|
"빠른 OCR은 한국어를 지원하지 않습니다. 정확한 OCR 팩을 설치하고 균형 또는 최고를 선택하세요.",
|
|
language: "언어",
|
|
autoDetect: "자동 감지",
|
|
extractedText: "추출된 텍스트",
|
|
noTextDetected: "이 이미지에서 텍스트가 감지되지 않았습니다",
|
|
characters: "{count}자",
|
|
submit: "텍스트 추출",
|
|
submitBatch: "텍스트 추출 ({count}개 파일)",
|
|
progressLabel: "텍스트 추출 중",
|
|
},
|
|
"ocr-pdf": {
|
|
quality: "품질",
|
|
language: "언어",
|
|
autoDetect: "자동 감지",
|
|
pages: "페이지",
|
|
pagesPlaceholder: "전체, 1-3, 5",
|
|
pagesHint: "페이지 번호 또는 범위를 입력하세요 (예: 1-3, 5, 8-10). 최대 50페이지.",
|
|
submit: "텍스트 추출",
|
|
submitBatch: "텍스트 추출 ({count}개 파일)",
|
|
progressLabel: "PDF에서 텍스트 추출 중",
|
|
},
|
|
"blur-faces": {
|
|
blurRadius: "블러 반경",
|
|
blurLight: "약하게",
|
|
blurHeavy: "강하게",
|
|
detectionSensitivity: "감지 감도",
|
|
moreFaces: "더 많은 얼굴",
|
|
fewerFaces: "더 적은 얼굴",
|
|
submit: "얼굴 블러",
|
|
progressLabel: "얼굴 블러 중",
|
|
},
|
|
"enhance-faces": {
|
|
quality: "품질",
|
|
enhancementStrength: "향상 강도",
|
|
onlyCenterFace: "중앙 얼굴만",
|
|
detectionSensitivity: "감지 감도",
|
|
submit: "얼굴 향상",
|
|
submitBatch: "얼굴 향상 ({count}개 파일)",
|
|
progressLabel: "얼굴 향상 중",
|
|
},
|
|
"smart-crop": {
|
|
subjectFocus: "피사체 포커스",
|
|
faceFocus: "얼굴 포커스",
|
|
autoTrim: "자동 트림",
|
|
customSize: "맞춤 크기",
|
|
socialPresets: "소셜 미디어 프리셋",
|
|
detectionStrategy: "감지 전략",
|
|
detectionStrategyHint:
|
|
"어텐션은 시각적으로 가장 두드러진 영역을 찾습니다. 엔트로피는 디테일과 정보가 가장 풍부한 영역을 찾습니다.",
|
|
attention: "어텐션",
|
|
entropy: "엔트로피",
|
|
padding: "패딩",
|
|
paddingHint: "포커스 영역 주변 여분의 공간",
|
|
outputQuality: "출력 품질",
|
|
outputQualityHint: "JPEG 및 WebP 출력용. PNG는 항상 무손실입니다.",
|
|
subjectDescription: "현저성 분석으로 가장 흥미로운 영역을 감지하고 목표 크기로 크롭합니다.",
|
|
framing: "프레이밍",
|
|
facePadding: "얼굴 여백",
|
|
facePaddingHint: "감지된 얼굴 주변의 여분의 공간",
|
|
fewerFalsePositives: "오탐지 줄이기",
|
|
faceDescription:
|
|
"AI 얼굴 감지로 얼굴을 적절하게 프레이밍합니다. 얼굴이 감지되지 않으면 피사체 포커스로 전환됩니다.",
|
|
trimTolerance: "허용치",
|
|
trimDescription:
|
|
"테두리 픽셀이 엣지 색상과 얼마나 다를 수 있는지. 값이 높을수록 더 적극적으로 트림합니다.",
|
|
padToSquare: "정사각형으로 패딩",
|
|
targetSizePx: "목표 크기 (px)",
|
|
padColor: "패딩 색상",
|
|
trimHint:
|
|
"피사체 주변의 단색 테두리를 제거합니다. '정사각형으로 패딩'을 활성화하면 전자상거래용 이미지에 적합합니다.",
|
|
submitSubject: "스마트 크롭",
|
|
submitFace: "얼굴 크롭",
|
|
submitTrim: "테두리 트림",
|
|
},
|
|
imageEnhancement: {
|
|
enhancementMode: "향상 모드",
|
|
auto: "자동",
|
|
portrait: "인물",
|
|
landscape: "풍경",
|
|
lowLight: "저조도",
|
|
food: "음식",
|
|
document: "문서",
|
|
intensity: "강도",
|
|
deepEnhance: "딥 향상 (AI)",
|
|
deepEnhanceDescription: "AI로 노이즈 및 아티팩트 제거",
|
|
deepEnhanceRequires: "업스케일 및 향상 번들 필요",
|
|
analyzingImage: "이미지 분석 중...",
|
|
detectedIssues: "감지된 문제",
|
|
imageLooksGood: "이미지가 좋아 보입니다. 강도 슬라이더로 미세 조정하세요.",
|
|
issueUnderexposed: "노출 부족",
|
|
issueOverexposed: "과다 노출",
|
|
issueLowContrast: "낮은 대비",
|
|
issueColorCast: "색상 편향",
|
|
issueDesaturated: "채도 부족",
|
|
issueSoftFocus: "소프트 포커스",
|
|
issueNoisy: "노이즈 많음",
|
|
submit: "향상",
|
|
submitDeep: "딥 향상",
|
|
submitBatch: "향상 ({count}개 파일)",
|
|
submitDeepBatch: "딥 향상 ({count}개 파일)",
|
|
progressLabel: "이미지 향상 중",
|
|
progressLabelBatch: "{count}개 이미지 향상 중",
|
|
},
|
|
"noise-removal": {
|
|
denoisingTier: "노이즈 제거 레벨",
|
|
quick: "빠름",
|
|
balanced: "균형",
|
|
quality: "고품질",
|
|
maximum: "최고",
|
|
quickDesc: "빠르고 가벼운",
|
|
balancedDesc: "좋은 품질, 적당한 속도",
|
|
qualityDesc: "AI 기반, 느림",
|
|
maximumDesc: "최고의 AI 모델, 가장 느림",
|
|
strength: "강도",
|
|
subtle: "약하게",
|
|
aggressive: "강하게",
|
|
detailPreservation: "디테일 보존",
|
|
smooth: "부드럽게",
|
|
sharp: "선명하게",
|
|
colorNoise: "컬러 노이즈",
|
|
heavy: "강함",
|
|
outputFormat: "출력 포맷",
|
|
gifAiWarning:
|
|
"GIF 파일의 AI 노이즈 제거는 첫 번째 프레임만 처리합니다. 애니메이션 GIF에는 빠름 또는 균형 레벨을 사용하세요.",
|
|
submit: "노이즈 제거",
|
|
submitBatch: "노이즈 제거 ({count}개 파일)",
|
|
progressLabel: "노이즈 제거 중",
|
|
progressLabelBatch: "{count}개 이미지 노이즈 제거 중",
|
|
},
|
|
"red-eye-removal": {
|
|
sensitivity: "감도",
|
|
strict: "엄격",
|
|
aggressive: "적극적",
|
|
correctionStrength: "보정 강도",
|
|
subtle: "약하게",
|
|
dark: "어둡게",
|
|
outputFormat: "출력 포맷",
|
|
quality: "품질",
|
|
submit: "적목 보정",
|
|
submitBatch: "적목 보정 ({count}개 파일)",
|
|
progressLabel: "적목 보정 중",
|
|
progressLabelBatch: "{count}개 이미지 적목 보정 중",
|
|
},
|
|
"restore-photo": {
|
|
scratchRemoval: "긁힘 복원",
|
|
scratchRemovalDesc: "긁힘, 찢어짐, 얼룩 감지 및 복원",
|
|
faceEnhancement: "얼굴 향상",
|
|
faceEnhancementDesc: "CodeFormer AI로 열화된 얼굴 복원",
|
|
faceFidelity: "얼굴 충실도",
|
|
enhanced: "향상",
|
|
faithful: "충실",
|
|
noiseReduction: "노이즈 감소",
|
|
noiseReductionDesc: "오래된 사진의 입자 및 노이즈 제거",
|
|
denoiseStrength: "노이즈 제거 강도",
|
|
autoColorize: "자동 컬러화",
|
|
autoColorizeDesc: "DDColor AI로 흑백 사진 컬러화",
|
|
colorizeStrength: "컬러화 강도",
|
|
vivid: "선명하게",
|
|
submit: "사진 복원",
|
|
submitBatch: "사진 복원 ({count})",
|
|
progressLabel: "사진 복원 중",
|
|
progressLabelBatch: "{count}개 사진 복원 중",
|
|
},
|
|
"content-aware-resize": {
|
|
widthPx: "너비 (px)",
|
|
heightPx: "높이 (px)",
|
|
resizeToSquare: "정사각형으로 리사이즈",
|
|
protectFaces: "얼굴 보호",
|
|
protectFacesHint: "얼굴 감지를 사용하여 얼굴 영역을 감지하고 심 제거로부터 보호",
|
|
smoothing: "스무딩",
|
|
edgeSensitivity: "엣지 감도",
|
|
submit: "리사이즈",
|
|
submitBatch: "리사이즈 ({count}개 파일)",
|
|
progressLabel: "콘텐츠 인식 리사이즈 중",
|
|
},
|
|
"ai-canvas-expand": {
|
|
quality: "품질",
|
|
fast: "빠름",
|
|
balanced: "균형",
|
|
highQuality: "고품질",
|
|
fastDesc: "빠른 미리보기, 적은 AI 처리",
|
|
balancedDesc: "좋은 품질, 적당한 속도",
|
|
highQualityDesc: "최고의 결과, 느림",
|
|
extendToAspectRatio: "종횡비로 확장",
|
|
extendByPixels: "확장 픽셀 수",
|
|
top: "위",
|
|
right: "오른쪽",
|
|
bottom: "아래",
|
|
left: "왼쪽",
|
|
newSize: "새 크기: {width} x {height}",
|
|
submit: "캔버스 확장",
|
|
submitBatch: "확장 ({count}개 파일)",
|
|
progressLabel: "캔버스 확장 중",
|
|
},
|
|
colorize: {
|
|
aiModel: "AI 모델",
|
|
fast: "빠름",
|
|
fastDesc: "빠른 결과",
|
|
balanced: "균형",
|
|
balancedDesc: "최선의 사용 가능 모델",
|
|
best: "최고",
|
|
bestDesc: "최고 품질",
|
|
colorIntensity: "색상 강도",
|
|
grayscaleLabel: "그레이스케일",
|
|
subtleLabel: "은은하게",
|
|
naturalLabel: "자연스럽게",
|
|
vividLabel: "선명하게",
|
|
intensityHint: "낮은 값일수록 더 차분한 빈티지 스타일 색상을 생성합니다.",
|
|
strength: "컬러화 강도",
|
|
submit: "컬러화",
|
|
submitBatch: "컬러화 ({count}개 파일)",
|
|
progressLabel: "컬러화 중",
|
|
progressLabelBatch: "{count}개 이미지 컬러화 중",
|
|
},
|
|
"passport-photo": {
|
|
country: "국가",
|
|
searchCountries: "국가 검색...",
|
|
noCountriesFound: "국가를 찾을 수 없습니다",
|
|
customDimensions: "맞춤 크기",
|
|
documentType: "문서 유형",
|
|
dimensionsMm: "크기 (mm)",
|
|
dpi: "DPI",
|
|
pixelsPerInch: "인치당 픽셀",
|
|
backgroundColor: "배경색",
|
|
maxFileSize: "최대 파일 크기",
|
|
noLimit: "제한 없음",
|
|
customKb: "맞춤 KB...",
|
|
uploadPortrait: "초상 사진 업로드",
|
|
uploadHint: "왼쪽 패널에 이미지를 드롭하거나 업로드하여 증명사진을 미리보기",
|
|
analyzingPhoto: "사진 분석 중",
|
|
detectingLandmarks: "얼굴 특징 감지 및 배경 제거 중...",
|
|
generatePassportPhoto: "증명사진 생성",
|
|
generating: "생성 중...",
|
|
downloadPhoto: "사진 다운로드",
|
|
faceCentered: "얼굴 중앙 배치",
|
|
headLevel: "머리 수평",
|
|
lookingStraight: "정면 응시",
|
|
faceSize: "얼굴 크기",
|
|
whatYouSee: "보이는 그대로 다운로드됩니다",
|
|
dragToAdjust: "드래그하여 조정",
|
|
scrollToZoom: "스크롤하여 확대/축소",
|
|
photoGenerated: "사진이 생성되었습니다. 왼쪽 패널에서 다운로드하세요.",
|
|
},
|
|
"transcribe-audio": {
|
|
language: "언어",
|
|
autoDetect: "자동 감지",
|
|
outputFormat: "출력 형식",
|
|
plainText: "일반 텍스트",
|
|
submit: "전사",
|
|
submitBatch: "전사 ({count}개 파일)",
|
|
progressLabel: "오디오 전사 중",
|
|
},
|
|
"auto-subtitles": {
|
|
language: "언어",
|
|
autoDetect: "자동 감지",
|
|
format: "자막 형식",
|
|
submit: "자막 생성",
|
|
submitBatch: "자막 생성 ({count}개 파일)",
|
|
progressLabel: "자막 생성 중",
|
|
},
|
|
"transparency-fixer": {
|
|
description: "가짜 투명 배경의 PNG를 업로드하면 원클릭으로 수정해 드립니다.",
|
|
removeWatermark: "워터마크 제거",
|
|
removeWatermarkHelp: "반투명 워터마크 감지 및 제거",
|
|
requiresEraser: "객체 지우기 번들 필요",
|
|
advanced: "고급",
|
|
defringe: "디프린지",
|
|
outputFormat: "출력 포맷",
|
|
submit: "투명도 수정",
|
|
submitBatch: "투명도 수정 ({count}개 파일)",
|
|
progressLabel: "투명도 수정 중",
|
|
},
|
|
"background-replace": {
|
|
color: "배경 색상",
|
|
submit: "배경 교체",
|
|
submitBatch: "배경 교체 ({count}개 파일)",
|
|
progressLabel: "배경 교체 중",
|
|
},
|
|
"blur-background": {
|
|
intensity: "흐림 강도",
|
|
submit: "배경 흐리게",
|
|
submitBatch: "배경 흐리게 ({count}개 파일)",
|
|
progressLabel: "배경 흐리게 처리 중",
|
|
},
|
|
"watermark-text": {
|
|
watermarkText: "워터마크 텍스트",
|
|
fontSize: "글꼴 크기",
|
|
color: "색상",
|
|
opacity: "불투명도",
|
|
position: "위치",
|
|
rotation: "회전",
|
|
center: "중앙",
|
|
topLeft: "왼쪽 상단",
|
|
topRight: "오른쪽 상단",
|
|
bottomLeft: "왼쪽 하단",
|
|
bottomRight: "오른쪽 하단",
|
|
tiled: "타일",
|
|
submit: "워터마크 추가",
|
|
submitBatch: "워터마크 추가 ({count}개 파일)",
|
|
progressLabel: "워터마크 추가 중",
|
|
},
|
|
"watermark-image": {
|
|
uploadWatermark: "워터마크 이미지 업로드",
|
|
position: "위치",
|
|
opacity: "불투명도",
|
|
scale: "스케일",
|
|
submit: "워터마크 적용",
|
|
submitBatch: "워터마크 적용 ({count}개 파일)",
|
|
},
|
|
"text-overlay": {
|
|
text: "텍스트",
|
|
fontSize: "글꼴 크기",
|
|
color: "색상",
|
|
position: "위치",
|
|
top: "위",
|
|
center: "중앙",
|
|
bottom: "아래",
|
|
backgroundBox: "배경 박스",
|
|
backgroundColor: "배경색",
|
|
shadow: "그림자",
|
|
submit: "텍스트 추가",
|
|
submitBatch: "텍스트 추가 ({count}개 파일)",
|
|
progressLabel: "텍스트 오버레이 추가 중",
|
|
download: "다운로드",
|
|
defaultText: "여기에 텍스트 입력",
|
|
},
|
|
compose: {
|
|
uploadOverlay: "오버레이 이미지 업로드",
|
|
xPosition: "X 위치",
|
|
yPosition: "Y 위치",
|
|
opacity: "불투명도",
|
|
blendMode: "블렌드 모드",
|
|
submit: "합성",
|
|
},
|
|
"meme-generator": {
|
|
selectTemplate: "갤러리에서 템플릿을 선택하거나 나만의 이미지를 업로드하여 시작하세요.",
|
|
chooseLayout: "커스텀 이미지의 텍스트 레이아웃을 선택하세요.",
|
|
textContent: "텍스트 내용",
|
|
textStyle: "텍스트 스타일",
|
|
font: "글꼴",
|
|
fontSize: "글꼴 크기",
|
|
textColor: "텍스트 색상",
|
|
strokeColor: "외곽선 색상",
|
|
allCaps: "전체 대문자",
|
|
generate: "Meme 생성",
|
|
generating: "생성 중...",
|
|
downloadMeme: "Meme 다운로드",
|
|
backToGallery: "갤러리로 돌아가기",
|
|
},
|
|
info: {
|
|
loadingInfo: "정보 로딩 중...",
|
|
filename: "파일명",
|
|
fileSize: "파일 크기",
|
|
dimensions: "크기",
|
|
format: "포맷",
|
|
channels: "채널",
|
|
colorSpace: "색상 공간",
|
|
density: "밀도",
|
|
bitDepth: "비트 심도",
|
|
progressive: "프로그레시브",
|
|
pages: "페이지 수",
|
|
hasAlpha: "Alpha 채널",
|
|
hasProfile: "프로파일",
|
|
hasExif: "EXIF",
|
|
hasIcc: "ICC",
|
|
hasXmp: "XMP",
|
|
readInfo: "정보 읽기",
|
|
reading: "읽는 중...",
|
|
channelStats: "채널 통계",
|
|
yes: "예",
|
|
no: "아니오",
|
|
na: "해당 없음",
|
|
failedToRead: "정보를 읽지 못했습니다",
|
|
},
|
|
compare: {
|
|
uploadSecondImage: "두 번째 이미지 업로드",
|
|
similarity: "유사도: {percent}%",
|
|
submit: "비교",
|
|
downloadDiff: "차이 이미지 다운로드",
|
|
},
|
|
"find-duplicates": {
|
|
preset: "프리셋",
|
|
exact: "정확히 일치",
|
|
similar: "유사",
|
|
loose: "느슨하게",
|
|
exactDesc: "픽셀 단위로 동일한 복사본, 다른 포맷의 같은 이미지.",
|
|
similarDesc: "리사이즈, 재압축 또는 가볍게 편집된 복사본.",
|
|
looseDesc: "시각적으로 관련된 이미지, 가벼운 크롭, 다른 노출.",
|
|
threshold: "임계값",
|
|
submit: "중복 스캔",
|
|
scanning: "스캔 중...",
|
|
},
|
|
"color-palette": {
|
|
submit: "팔레트 추출",
|
|
extracting: "추출 중...",
|
|
dominantColors: "주요 색상",
|
|
clickToCopy: "클릭하여 복사",
|
|
},
|
|
"qr-generate": {
|
|
contentType: "콘텐츠 유형",
|
|
url: "URL",
|
|
text: "텍스트",
|
|
wifi: "WiFi",
|
|
vcard: "vCard",
|
|
email: "이메일",
|
|
phone: "전화",
|
|
sms: "SMS",
|
|
styling: "스타일링",
|
|
dotStyle: "도트 스타일",
|
|
cornerSquareStyle: "코너 사각 스타일",
|
|
cornerDotStyle: "코너 도트 스타일",
|
|
foregroundColor: "전경색",
|
|
bgColor: "배경색",
|
|
logo: "로고",
|
|
downloadFormat: "다운로드 포맷",
|
|
submit: "QR 코드 생성",
|
|
download: "QR 코드 다운로드",
|
|
},
|
|
"html-to-image": {
|
|
modeUrl: "URL",
|
|
modeHtml: "HTML 파일",
|
|
htmlFile: "HTML 파일",
|
|
url: "URL",
|
|
urlPlaceholder: "https://snapotter.com",
|
|
format: "출력 형식",
|
|
quality: "품질",
|
|
devicePreset: "기기",
|
|
viewportWidth: "너비",
|
|
viewportHeight: "높이",
|
|
fullPage: "전체 페이지",
|
|
submit: "캡처",
|
|
download: "스크린샷 다운로드",
|
|
capturing: "웹페이지 캡처 중...",
|
|
errorTimeout: "페이지 로딩 시간이 초과되었습니다",
|
|
errorBlocked: "이 URL은 캡처할 수 없습니다",
|
|
errorUnavailable: "스크린샷 서비스를 사용할 수 없습니다",
|
|
errorFailed: "페이지 캡처에 실패했습니다",
|
|
placeholder: "URL을 입력하고 캡처를 클릭하세요",
|
|
presets: {
|
|
desktop: "데스크톱",
|
|
tablet: "태블릿",
|
|
mobile: "모바일",
|
|
custom: "사용자 지정",
|
|
},
|
|
},
|
|
"barcode-read": {
|
|
submit: "바코드 스캔",
|
|
submitBatch: "스캔 ({count}개 파일)",
|
|
scanning: "스캔 중...",
|
|
noBarcodesFound: "바코드를 찾을 수 없습니다",
|
|
barcodesFound: "바코드 {count}개 발견",
|
|
barcodesFoundPlural: "바코드 {count}개 발견",
|
|
},
|
|
collage: {
|
|
template: "템플릿",
|
|
aspectRatio: "종횡비",
|
|
gap: "간격",
|
|
cornerRadius: "모서리 반경",
|
|
backgroundColor: "배경색",
|
|
outputFormat: "출력 포맷",
|
|
quality: "품질",
|
|
submit: "콜라주 만들기",
|
|
downloadCollage: "콜라주 다운로드",
|
|
},
|
|
stitch: {
|
|
direction: "방향",
|
|
horizontal: "가로",
|
|
vertical: "세로",
|
|
grid: "그리드",
|
|
gridColumns: "그리드 열 수",
|
|
resizeMode: "리사이즈 모드",
|
|
fit: "맞춤",
|
|
original: "원본",
|
|
stretchMode: "늘리기",
|
|
cropMode: "크롭",
|
|
alignment: "정렬",
|
|
start: "시작",
|
|
center: "중앙",
|
|
end: "끝",
|
|
gap: "간격",
|
|
border: "테두리",
|
|
cornerRadius: "모서리 반경",
|
|
backgroundColor: "배경색",
|
|
outputFormat: "출력 포맷",
|
|
quality: "품질",
|
|
submit: "이미지 결합",
|
|
},
|
|
split: {
|
|
modeGrid: "그리드",
|
|
modeTileSize: "타일 크기",
|
|
presets: "프리셋",
|
|
columns: "열 수",
|
|
rows: "행 수",
|
|
tileWidth: "타일 너비",
|
|
tileHeight: "타일 높이",
|
|
outputFormat: "출력 포맷",
|
|
quality: "품질",
|
|
submit: "이미지 분할",
|
|
downloadAll: "전체 다운로드 (ZIP)",
|
|
},
|
|
border: {
|
|
presets: "프리셋",
|
|
borderWidth: "테두리 너비",
|
|
borderColor: "테두리 색상",
|
|
padding: "패딩",
|
|
paddingColor: "패딩 색상",
|
|
cornerRadius: "모서리 반경",
|
|
shadow: "그림자",
|
|
shadowBlur: "그림자 블러",
|
|
shadowOffsetX: "그림자 오프셋 X",
|
|
shadowOffsetY: "그림자 오프셋 Y",
|
|
shadowColor: "그림자 색상",
|
|
shadowOpacity: "그림자 불투명도",
|
|
submit: "테두리 추가",
|
|
submitBatch: "테두리 추가 ({count}개 파일)",
|
|
progressLabel: "테두리 추가 중",
|
|
},
|
|
beautify: {
|
|
preset: "프리셋",
|
|
backgroundType: "배경 유형",
|
|
solidColor: "단색",
|
|
linearGradient: "선형 그라데이션",
|
|
radialGradient: "방사형 그라데이션",
|
|
customImage: "커스텀 이미지",
|
|
gradientAngle: "그라데이션 각도",
|
|
padding: "패딩",
|
|
borderRadius: "모서리 반경",
|
|
shadowPreset: "그림자 프리셋",
|
|
deviceFrame: "디바이스 프레임",
|
|
submit: "꾸미기",
|
|
submitBatch: "꾸미기 ({count}개 파일)",
|
|
progressLabel: "스크린샷 꾸미는 중",
|
|
},
|
|
"circle-crop": {
|
|
submit: "원형 크롭",
|
|
submitBatch: "원형 크롭 ({count}개 파일)",
|
|
progressLabel: "원형으로 크롭 중",
|
|
},
|
|
duotone: {
|
|
shadow: "그림자 색상",
|
|
highlight: "하이라이트 색상",
|
|
submit: "듀오톤 적용",
|
|
submitBatch: "듀오톤 적용 ({count}개 파일)",
|
|
progressLabel: "듀오톤 적용 중",
|
|
},
|
|
"image-pad": {
|
|
target: "목표 비율",
|
|
color: "배경 색상",
|
|
submit: "이미지 패딩",
|
|
submitBatch: "이미지 패딩 ({count}개 파일)",
|
|
progressLabel: "이미지 패딩 중",
|
|
},
|
|
pixelate: {
|
|
blockSize: "블록 크기",
|
|
submit: "픽셀화",
|
|
submitBatch: "픽셀화 ({count}개 파일)",
|
|
progressLabel: "픽셀화 중",
|
|
},
|
|
vignette: {
|
|
strength: "강도",
|
|
color: "비네트 색상",
|
|
submit: "비네트 적용",
|
|
submitBatch: "비네트 적용 ({count}개 파일)",
|
|
progressLabel: "비네트 적용 중",
|
|
},
|
|
"gif-webp": {
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "애니메이션 변환 중",
|
|
},
|
|
histogram: {
|
|
submit: "히스토그램 생성",
|
|
submitBatch: "히스토그램 생성 ({count}개 파일)",
|
|
progressLabel: "히스토그램 생성 중",
|
|
},
|
|
"lqip-placeholder": {
|
|
width: "너비",
|
|
blur: "블러",
|
|
submit: "플레이스홀더 생성",
|
|
submitBatch: "플레이스홀더 생성 ({count}개 파일)",
|
|
progressLabel: "플레이스홀더 생성 중",
|
|
},
|
|
"sprite-sheet": {
|
|
columns: "열 수",
|
|
padding: "여백",
|
|
background: "배경 색상",
|
|
submit: "스프라이트 시트 생성",
|
|
submitBatch: "스프라이트 시트 생성",
|
|
progressLabel: "스프라이트 시트 생성 중",
|
|
},
|
|
"svg-to-raster": {
|
|
outputFormat: "출력 포맷",
|
|
sizing: "크기 설정",
|
|
scaleMode: "스케일",
|
|
customMode: "맞춤",
|
|
scalePresets: "스케일 프리셋",
|
|
dpiPresets: "DPI 프리셋",
|
|
customWidth: "너비 (px)",
|
|
customHeight: "높이 (px)",
|
|
background: "배경",
|
|
bgTransparent: "투명",
|
|
bgColor: "색상",
|
|
quality: "품질",
|
|
submit: "SVG 변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "SVG 변환 중",
|
|
},
|
|
vectorize: {
|
|
preset: "프리셋",
|
|
logo: "로고",
|
|
illustration: "일러스트",
|
|
photo: "사진",
|
|
sketch: "스케치",
|
|
customPreset: "맞춤",
|
|
colorMode: "색상 모드",
|
|
bw: "흑백",
|
|
colorModeColor: "컬러",
|
|
threshold: "임계값",
|
|
colorPrecision: "색상 정밀도",
|
|
layerDifference: "레이어 차이",
|
|
filterSpeckle: "스펙클 필터",
|
|
pathMode: "패스 모드",
|
|
cornerThreshold: "코너 임계값",
|
|
invertColors: "색상 반전",
|
|
submit: "벡터화",
|
|
submitBatch: "벡터화 ({count}개 파일)",
|
|
progressLabel: "벡터화 중",
|
|
},
|
|
"gif-tools": {
|
|
mode: "모드",
|
|
resize: "리사이즈",
|
|
optimize: "최적화",
|
|
speed: "속도",
|
|
reverse: "역재생",
|
|
extract: "추출",
|
|
rotateMode: "회전",
|
|
pixel: "픽셀",
|
|
percentage: "퍼센트",
|
|
colors: "색상 수",
|
|
dither: "디더링",
|
|
effort: "처리 강도",
|
|
speedFactor: "속도 배율",
|
|
loopControl: "루프 제어",
|
|
infinite: "무한",
|
|
once: "한 번",
|
|
customLoop: "맞춤",
|
|
loopCount: "루프 횟수",
|
|
extractSingle: "단일",
|
|
extractRange: "범위",
|
|
extractAll: "전체",
|
|
frameNumber: "프레임 번호",
|
|
frameStart: "시작 프레임",
|
|
frameEnd: "끝 프레임",
|
|
extractFormat: "포맷",
|
|
submit: "GIF 처리",
|
|
submitBatch: "처리 ({count}개 파일)",
|
|
progressLabel: "GIF 처리 중",
|
|
},
|
|
"image-to-base64": {
|
|
outputFormat: "출력 포맷",
|
|
keepOriginal: "원본 포맷 유지",
|
|
quality: "품질",
|
|
maxWidth: "최대 너비",
|
|
maxHeight: "최대 높이",
|
|
submit: "Base64로 변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
copyBase64: "Base64 복사",
|
|
copyDataUri: "Data URI 복사",
|
|
copyImgTag: "<img> 태그 복사",
|
|
copyCssUrl: "CSS url() 복사",
|
|
},
|
|
"barcode-generate": {
|
|
text: "텍스트",
|
|
type: "바코드 유형",
|
|
scale: "크기",
|
|
includeText: "텍스트 포함",
|
|
submit: "바코드 생성",
|
|
download: "바코드 다운로드",
|
|
},
|
|
"chart-maker": {
|
|
kind: "차트 유형",
|
|
title: "제목",
|
|
width: "너비",
|
|
height: "높이",
|
|
submit: "차트 생성",
|
|
submitBatch: "차트 생성 ({count}개 파일)",
|
|
progressLabel: "차트 생성 중",
|
|
},
|
|
"enhance-faces-standalone": {
|
|
model: "모델",
|
|
fast: "빠름",
|
|
balanced: "균형",
|
|
best: "최고",
|
|
},
|
|
"convert-video": {
|
|
format: "출력 형식",
|
|
quality: "품질",
|
|
high: "높음",
|
|
balanced: "균형",
|
|
small: "최소",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"compress-video": {
|
|
quality: "압축",
|
|
light: "약하게",
|
|
balanced: "균형",
|
|
strong: "강하게",
|
|
resolution: "해상도",
|
|
original: "원본",
|
|
submit: "압축",
|
|
submitBatch: "압축 ({count}개 파일)",
|
|
progressLabel: "압축 중",
|
|
},
|
|
"trim-video": {
|
|
start: "시작 (초)",
|
|
end: "끝 (초)",
|
|
precise: "프레임 정밀 (재인코딩)",
|
|
submit: "트리밍",
|
|
submitBatch: "트리밍 ({count}개 파일)",
|
|
progressLabel: "트리밍 중",
|
|
},
|
|
"mute-video": {
|
|
submit: "오디오 제거",
|
|
submitBatch: "오디오 제거 ({count}개 파일)",
|
|
progressLabel: "음소거 중",
|
|
},
|
|
"video-to-gif": {
|
|
fps: "초당 프레임 수",
|
|
width: "너비 (px)",
|
|
start: "시작 (초)",
|
|
duration: "재생 시간 (초)",
|
|
submit: "GIF 생성",
|
|
submitBatch: "GIF 생성 ({count}개 파일)",
|
|
progressLabel: "GIF 생성 중",
|
|
},
|
|
"resize-video": {
|
|
preset: "프리셋",
|
|
width: "너비 (px)",
|
|
height: "높이 (px)",
|
|
hint: "가로세로 비율을 유지하려면 한 값을 비워두세요",
|
|
submit: "크기 조정",
|
|
submitBatch: "크기 조정 ({count}개 파일)",
|
|
progressLabel: "크기 조정 중",
|
|
},
|
|
"crop-video": {
|
|
width: "너비 (px)",
|
|
height: "높이 (px)",
|
|
x: "X 오프셋",
|
|
y: "Y 오프셋",
|
|
submit: "크롭",
|
|
submitBatch: "크롭 ({count}개 파일)",
|
|
progressLabel: "크롭 중",
|
|
},
|
|
"rotate-video": {
|
|
transform: "변형",
|
|
cw90: "시계 방향 90도 회전",
|
|
ccw90: "반시계 방향 90도 회전",
|
|
rotate180: "180도 회전",
|
|
hflip: "좌우 반전",
|
|
vflip: "상하 반전",
|
|
submit: "회전",
|
|
submitBatch: "회전 ({count}개 파일)",
|
|
progressLabel: "회전 중",
|
|
},
|
|
"change-fps": {
|
|
fps: "초당 프레임 수",
|
|
submit: "FPS 변경",
|
|
submitBatch: "FPS 변경 ({count}개 파일)",
|
|
progressLabel: "FPS 변경 중",
|
|
},
|
|
"video-color": {
|
|
brightness: "밝기",
|
|
contrast: "대비",
|
|
saturation: "채도",
|
|
gamma: "감마",
|
|
submit: "적용",
|
|
submitBatch: "적용 ({count}개 파일)",
|
|
progressLabel: "색상 조정 중",
|
|
},
|
|
"video-speed": {
|
|
factor: "속도 배율",
|
|
keepPitch: "원래 음높이 유지",
|
|
submit: "속도 변경",
|
|
submitBatch: "속도 변경 ({count}개 파일)",
|
|
progressLabel: "속도 변경 중",
|
|
},
|
|
"reverse-video": {
|
|
hint: "5분 이하의 클립만 지원됩니다",
|
|
submit: "역재생",
|
|
submitBatch: "역재생 ({count}개 파일)",
|
|
progressLabel: "역재생 중",
|
|
},
|
|
"video-loudnorm": {
|
|
hint: "오디오를 EBU R128 방송 표준으로 정규화합니다",
|
|
submit: "정규화",
|
|
submitBatch: "정규화 ({count}개 파일)",
|
|
progressLabel: "정규화 중",
|
|
},
|
|
"aspect-pad": {
|
|
target: "목표 비율",
|
|
color: "배경 색상",
|
|
colorHint: "HEX 색상, 예: #000000",
|
|
submit: "패딩",
|
|
submitBatch: "패딩 ({count}개 파일)",
|
|
progressLabel: "패딩 중",
|
|
},
|
|
"blur-pad": {
|
|
target: "목표 비율",
|
|
blur: "블러 강도",
|
|
submit: "패딩",
|
|
submitBatch: "패딩 ({count}개 파일)",
|
|
progressLabel: "패딩 중",
|
|
},
|
|
"watermark-video": {
|
|
text: "워터마크 텍스트",
|
|
position: "위치",
|
|
fontSize: "글꼴 크기",
|
|
opacity: "불투명도",
|
|
color: "색상",
|
|
colorHint: "HEX 색상, 예: #ffffff",
|
|
submit: "워터마크",
|
|
submitBatch: "워터마크 ({count}개 파일)",
|
|
progressLabel: "워터마크 적용 중",
|
|
},
|
|
"stabilize-video": {
|
|
smoothing: "부드러움",
|
|
hint: "2패스로 처리하며 대부분의 도구보다 시간이 더 걸립니다",
|
|
submit: "손떨림 보정",
|
|
submitBatch: "손떨림 보정 ({count}개 파일)",
|
|
progressLabel: "손떨림 보정 중",
|
|
},
|
|
"gif-to-video": {
|
|
format: "출력 형식",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"video-to-webp": {
|
|
fps: "초당 프레임 수",
|
|
width: "너비 (px)",
|
|
quality: "품질",
|
|
loop: "애니메이션 반복",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"video-to-frames": {
|
|
mode: "추출 모드",
|
|
modeAll: "전체 프레임",
|
|
modeNth: "N번째 프레임마다",
|
|
modeTimestamps: "특정 타임스탬프",
|
|
n: "N번째 프레임마다 추출",
|
|
timestamps: "타임스탬프 (초)",
|
|
timestampsHint: "쉼표로 구분, 예: 0.5, 2, 4.5",
|
|
format: "이미지 형식",
|
|
submit: "프레임 추출",
|
|
submitBatch: "프레임 추출 ({count}개 파일)",
|
|
progressLabel: "프레임 추출 중",
|
|
},
|
|
"merge-videos": {
|
|
hint: "업로드 순서대로 파일이 결합됩니다",
|
|
submit: "병합",
|
|
submitBatch: "병합 ({count}개 파일)",
|
|
progressLabel: "병합 중",
|
|
},
|
|
"replace-audio": {
|
|
hint: "먼저 영상을 업로드한 다음 오디오를 업로드하세요",
|
|
submit: "오디오 교체",
|
|
submitBatch: "오디오 교체 ({count}개 파일)",
|
|
progressLabel: "오디오 교체 중",
|
|
},
|
|
"burn-subtitles": {
|
|
fontSize: "글꼴 크기",
|
|
hint: "영상과 자막 파일(.srt 또는 .vtt)을 업로드하세요",
|
|
submit: "자막 입히기",
|
|
submitBatch: "자막 입히기 ({count}개 파일)",
|
|
progressLabel: "자막 입히는 중",
|
|
},
|
|
"embed-subtitles": {
|
|
language: "언어 코드",
|
|
languageHint: "ISO 639-2 세 글자 코드, 예: eng, spa, fra",
|
|
submit: "자막 삽입",
|
|
submitBatch: "자막 삽입 ({count}개 파일)",
|
|
progressLabel: "자막 삽입 중",
|
|
},
|
|
"extract-subtitles": {
|
|
submit: "자막 추출",
|
|
submitBatch: "자막 추출 ({count}개 파일)",
|
|
progressLabel: "자막 추출 중",
|
|
},
|
|
"images-to-video": {
|
|
secondsPerImage: "이미지당 초",
|
|
resolution: "해상도",
|
|
fps: "초당 프레임 수",
|
|
submit: "영상 생성",
|
|
submitBatch: "영상 생성 ({count}개 파일)",
|
|
progressLabel: "슬라이드쇼 생성 중",
|
|
},
|
|
"video-metadata": {
|
|
hint: "메타데이터 보고서가 결과에 표시됩니다",
|
|
submit: "메타데이터 제거",
|
|
submitBatch: "메타데이터 제거 ({count}개 파일)",
|
|
progressLabel: "메타데이터 제거 중",
|
|
},
|
|
"convert-audio": {
|
|
format: "출력 형식",
|
|
bitrate: "비트레이트 (kbps)",
|
|
sampleRate: "샘플 레이트 (Hz)",
|
|
sampleRatePreserve: "원본 유지",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"trim-audio": {
|
|
start: "시작 (초)",
|
|
end: "끝 (초)",
|
|
submit: "트리밍",
|
|
submitBatch: "트리밍 ({count}개 파일)",
|
|
progressLabel: "트리밍 중",
|
|
},
|
|
"extract-audio": {
|
|
format: "출력 형식",
|
|
submit: "추출",
|
|
submitBatch: "추출 ({count}개 파일)",
|
|
progressLabel: "추출 중",
|
|
},
|
|
"volume-adjust": {
|
|
"gain-db": "게인 (dB)",
|
|
submit: "볼륨 조정",
|
|
submitBatch: "볼륨 조정 ({count}개 파일)",
|
|
progressLabel: "볼륨 조정 중",
|
|
},
|
|
"normalize-audio": {
|
|
hint: "EBU R128 라우드니스 정규화",
|
|
submit: "정규화",
|
|
submitBatch: "정규화 ({count}개 파일)",
|
|
progressLabel: "정규화 중",
|
|
},
|
|
"fade-audio": {
|
|
"fade-in-s": "페이드 인 (초)",
|
|
"fade-out-s": "페이드 아웃 (초)",
|
|
submit: "페이드 적용",
|
|
submitBatch: "페이드 적용 ({count}개 파일)",
|
|
progressLabel: "페이드 적용 중",
|
|
},
|
|
"reverse-audio": {
|
|
submit: "역재생",
|
|
submitBatch: "역재생 ({count}개 파일)",
|
|
progressLabel: "역재생 중",
|
|
},
|
|
"audio-speed": {
|
|
factor: "속도 배수",
|
|
submit: "속도 변경",
|
|
submitBatch: "속도 변경 ({count}개 파일)",
|
|
progressLabel: "속도 변경 중",
|
|
},
|
|
"pitch-shift": {
|
|
semitones: "반음",
|
|
hint: "0 반음은 허용되지 않습니다",
|
|
submit: "피치 변경",
|
|
submitBatch: "피치 변경 ({count}개 파일)",
|
|
progressLabel: "피치 변경 중",
|
|
},
|
|
"audio-channels": {
|
|
mode: "채널 모드",
|
|
"stereo-to-mono": "스테레오에서 모노로",
|
|
"mono-to-stereo": "모노에서 스테레오로",
|
|
swap: "좌/우 채널 교체",
|
|
submit: "채널 변환",
|
|
submitBatch: "채널 변환 ({count}개 파일)",
|
|
progressLabel: "채널 변환 중",
|
|
},
|
|
"silence-removal": {
|
|
"threshold-db": "무음 임계값 (dB)",
|
|
"min-silence-s": "최소 무음 길이(초)",
|
|
submit: "무음 제거",
|
|
submitBatch: "무음 제거 ({count}개 파일)",
|
|
progressLabel: "무음 제거 중",
|
|
},
|
|
"noise-reduction": {
|
|
strength: "강도",
|
|
light: "약하게",
|
|
medium: "보통",
|
|
strong: "강하게",
|
|
submit: "노이즈 감소",
|
|
submitBatch: "노이즈 감소 ({count}개 파일)",
|
|
progressLabel: "노이즈 감소 중",
|
|
},
|
|
"merge-audio": {
|
|
format: "출력 형식",
|
|
mp3: "MP3",
|
|
wav: "WAV",
|
|
flac: "FLAC",
|
|
m4a: "M4A",
|
|
"order-hint": "파일은 업로드 순서대로 결합됩니다",
|
|
submit: "오디오 병합",
|
|
submitBatch: "오디오 병합 ({count}개 파일)",
|
|
progressLabel: "오디오 병합 중",
|
|
},
|
|
"split-audio": {
|
|
mode: "분할 모드",
|
|
time: "시간 기준",
|
|
parts: "균등 분할",
|
|
silence: "무음 기준",
|
|
"segment-s": "구간 길이(초)",
|
|
"num-parts": "분할 수",
|
|
"threshold-db": "무음 임계값 (dB)",
|
|
"min-silence-s": "최소 무음 길이(초)",
|
|
submit: "오디오 분할",
|
|
submitBatch: "오디오 분할 ({count}개 파일)",
|
|
progressLabel: "오디오 분할 중",
|
|
},
|
|
"ringtone-maker": {
|
|
"start-s": "시작 시간(초)",
|
|
"duration-s": "길이(초)",
|
|
"max-hint": "최대 30초",
|
|
submit: "벨소리 만들기",
|
|
submitBatch: "벨소리 만들기 ({count}개 파일)",
|
|
progressLabel: "벨소리 생성 중",
|
|
},
|
|
"waveform-image": {
|
|
width: "너비 (px)",
|
|
height: "높이 (px)",
|
|
color: "파형 색상",
|
|
submit: "파형 생성",
|
|
submitBatch: "파형 생성 ({count}개 파일)",
|
|
progressLabel: "파형 생성 중",
|
|
},
|
|
"audio-metadata": {
|
|
strip: "모든 메타데이터 제거",
|
|
title: "제목",
|
|
artist: "아티스트",
|
|
album: "앨범",
|
|
submit: "메타데이터 적용",
|
|
submitBatch: "메타데이터 적용 ({count}개 파일)",
|
|
progressLabel: "메타데이터 적용 중",
|
|
},
|
|
"merge-pdf": {
|
|
addFiles: "병합할 PDF 추가",
|
|
needTwo: "PDF가 2개 이상 필요합니다",
|
|
orderHint: "{count}개의 PDF가 이 순서로 병합됩니다",
|
|
submit: "병합",
|
|
submitBatch: "병합 ({count}개 파일)",
|
|
progressLabel: "병합 중",
|
|
},
|
|
"split-pdf": {
|
|
mode: "분할 모드",
|
|
range: "페이지 범위",
|
|
rangeHint: "예: 1-3, 5, 7-z",
|
|
everyN: "파트당 페이지 수",
|
|
submit: "분할",
|
|
submitBatch: "분할 ({count}개 파일)",
|
|
progressLabel: "분할 중",
|
|
},
|
|
"compress-pdf": {
|
|
preset: "품질 프리셋",
|
|
screen: "화면용 (최소 크기)",
|
|
ebook: "전자책 (균형)",
|
|
printer: "인쇄용 (최고 품질)",
|
|
submit: "압축",
|
|
submitBatch: "압축 ({count}개 파일)",
|
|
progressLabel: "압축 중",
|
|
bestEffortHint:
|
|
"최대한 노력한 최대치입니다. 이미지 기반 PDF는 이 크기에 가깝게 도달하지만, 텍스트 전용 PDF는 이 크기까지 줄어들지 않을 수 있습니다.",
|
|
targetReached: "목표 {target}에 도달했습니다(결과: {size}).",
|
|
targetMissed:
|
|
"{target}에 도달할 수 없습니다. 이 PDF는 대부분 텍스트나 벡터로 이루어져 있어 이미지 압축으로 줄일 수 없으므로, 달성 가능한 최소 크기는 {size}였습니다.",
|
|
},
|
|
"rotate-pdf": {
|
|
angle: "회전 각도",
|
|
range: "페이지 범위",
|
|
rangeHint: "예: 1-3, 5, 1-z (전체 페이지)",
|
|
submit: "회전",
|
|
submitBatch: "회전 ({count}개 파일)",
|
|
progressLabel: "회전 중",
|
|
},
|
|
"convert-document": {
|
|
format: "출력 형식",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"convert-presentation": {
|
|
format: "출력 형식",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"convert-spreadsheet": {
|
|
format: "출력 형식",
|
|
hint: "다중 시트 통합 문서는 첫 번째 시트만 CSV로 내보냅니다.",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"excel-to-pdf": {
|
|
submit: "PDF로 변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
submit: "PDF로 변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"word-to-pdf": {
|
|
submit: "PDF로 변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"extract-pages": {
|
|
range: "페이지 범위",
|
|
rangeHint: "예: 1-3, 5, 7-z",
|
|
submit: "추출",
|
|
submitBatch: "추출 ({count}개 파일)",
|
|
progressLabel: "추출 중",
|
|
},
|
|
"remove-pages": {
|
|
pages: "제거할 페이지",
|
|
pagesHint: "예: 2, 4-6, z (마지막 페이지)",
|
|
submit: "제거",
|
|
submitBatch: "제거 ({count}개 파일)",
|
|
progressLabel: "제거 중",
|
|
},
|
|
"organize-pdf": {
|
|
order: "페이지 순서",
|
|
orderHint: "예: 3,1,2 또는 1-z (원래 순서)",
|
|
submit: "재정렬",
|
|
submitBatch: "재정렬 ({count}개 파일)",
|
|
progressLabel: "재정렬 중",
|
|
},
|
|
"protect-pdf": {
|
|
userPassword: "사용자 비밀번호",
|
|
ownerPassword: "소유자 비밀번호(선택 사항)",
|
|
ownerPasswordHint: "비어 있으면 사용자 비밀번호가 기본값으로 사용됩니다",
|
|
submit: "보호",
|
|
submitBatch: "보호 ({count}개 파일)",
|
|
progressLabel: "암호화 중",
|
|
},
|
|
"unlock-pdf": {
|
|
password: "비밀번호",
|
|
submit: "잠금 해제",
|
|
submitBatch: "잠금 해제 ({count}개 파일)",
|
|
progressLabel: "복호화 중",
|
|
},
|
|
"repair-pdf": {
|
|
submit: "복구",
|
|
submitBatch: "복구 ({count}개 파일)",
|
|
progressLabel: "복구 중",
|
|
},
|
|
"linearize-pdf": {
|
|
submit: "최적화",
|
|
submitBatch: "최적화 ({count}개 파일)",
|
|
progressLabel: "최적화 중",
|
|
},
|
|
"grayscale-pdf": {
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"pdfa-convert": {
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"crop-pdf": {
|
|
margin: "여백(포인트)",
|
|
submit: "자르기",
|
|
submitBatch: "자르기 ({count}개 파일)",
|
|
progressLabel: "자르는 중",
|
|
},
|
|
"nup-pdf": {
|
|
perSheet: "시트당 페이지 수",
|
|
submit: "배열",
|
|
submitBatch: "배열 ({count}개 파일)",
|
|
progressLabel: "배열 중",
|
|
},
|
|
"booklet-pdf": {
|
|
perSheet: "시트당 페이지 수",
|
|
submit: "소책자 만들기",
|
|
submitBatch: "소책자 만들기 ({count}개 파일)",
|
|
progressLabel: "소책자 생성 중",
|
|
},
|
|
"watermark-pdf": {
|
|
text: "워터마크 텍스트",
|
|
position: "위치",
|
|
fontSize: "글꼴 크기",
|
|
opacity: "불투명도",
|
|
rotation: "회전",
|
|
submit: "워터마크",
|
|
submitBatch: "워터마크 ({count}개 파일)",
|
|
progressLabel: "워터마크 적용 중",
|
|
},
|
|
"pdf-page-numbers": {
|
|
position: "위치",
|
|
fontSize: "글꼴 크기",
|
|
submit: "번호 추가",
|
|
submitBatch: "번호 추가 ({count}개 파일)",
|
|
progressLabel: "번호 추가 중",
|
|
},
|
|
"flatten-pdf": {
|
|
submit: "평면화",
|
|
submitBatch: "평면화 ({count}개 파일)",
|
|
progressLabel: "평면화 중",
|
|
},
|
|
"sign-pdf": {
|
|
yourSignatures: "내 서명",
|
|
newSignature: "새로 만들기",
|
|
clickToPlace: "서명을 클릭하여 현재 페이지에 배치하세요.",
|
|
selectedSignature: "선택한 서명",
|
|
dragToAdjust: "핸들을 드래그하여 크기를 조정하거나 회전하세요.",
|
|
disclaimer: "시각적 서명 이미지를 추가합니다. 인증서 기반 디지털 서명이 아닙니다.",
|
|
signing: "서명 중…",
|
|
signingPercent: "서명 중… {percent}%",
|
|
downloadSigned: "서명된 PDF 다운로드",
|
|
addFirst: "다운로드하기 전에 서명을 하나 이상 추가하세요.",
|
|
loadFailed:
|
|
"이 PDF를 표시할 수 없습니다. 파일이 손상되었거나 비밀번호로 보호되어 있을 수 있습니다. 암호화된 경우 먼저 PDF 잠금 해제 도구로 비밀번호를 제거하세요.",
|
|
pad: {
|
|
title: "서명 만들기",
|
|
draw: "그리기",
|
|
type: "입력",
|
|
upload: "업로드",
|
|
color: "색상",
|
|
pen: "펜",
|
|
namePlaceholder: "이름을 입력하세요",
|
|
yourName: "이름",
|
|
remember: "이 기기에 기억하기",
|
|
save: "저장 후 배치",
|
|
uploadHint: "PNG / JPG를 끌어다 놓거나 클릭하여 선택하세요. 투명한 PNG가 가장 좋습니다.",
|
|
},
|
|
},
|
|
"redact-pdf": {
|
|
terms: "마스킹할 용어",
|
|
termsHint: "한 줄에 하나씩 (최대 50개)",
|
|
caseSensitive: "대소문자 구분",
|
|
submit: "마스킹",
|
|
submitBatch: "마스킹 ({count}개 파일)",
|
|
progressLabel: "마스킹 중",
|
|
},
|
|
"pdf-to-text": {
|
|
submit: "텍스트 추출",
|
|
submitBatch: "텍스트 추출 ({count}개 파일)",
|
|
progressLabel: "추출 중",
|
|
},
|
|
"pdf-to-word": {
|
|
hint: "텍스트 기반 PDF에 적합합니다. 스캔된 페이지는 OCR이 필요합니다",
|
|
submit: "Word로 변환",
|
|
submitBatch: "Word로 변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"pdf-metadata": {
|
|
title: "제목",
|
|
author: "저자",
|
|
subject: "주제",
|
|
keywords: "키워드",
|
|
submit: "메타데이터 설정",
|
|
submitBatch: "메타데이터 설정 ({count}개 파일)",
|
|
progressLabel: "메타데이터 설정 중",
|
|
},
|
|
"html-to-pdf": {
|
|
hint: "개인 정보 보호를 위해 외부 리소스가 비활성화되어 있습니다.",
|
|
submit: "PDF로 변환",
|
|
submitBatch: "PDF로 변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"markdown-to-docx": {
|
|
submit: "DOCX로 변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"markdown-to-html": {
|
|
hint: "원본의 외부 이미지는 출력에 그대로 유지됩니다.",
|
|
submit: "HTML로 변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"markdown-to-pdf": {
|
|
hint: "개인 정보 보호를 위해 외부 리소스가 비활성화되어 있습니다.",
|
|
submit: "PDF로 변환",
|
|
submitBatch: "PDF로 변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"epub-convert": {
|
|
format: "출력 형식",
|
|
hint: "책 내부의 외부 리소스는 가져오지 않습니다.",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"to-epub": {
|
|
submit: "EPUB으로 변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"csv-excel": {
|
|
sheet: "워크시트 번호",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"csv-json": {
|
|
pretty: "보기 좋게 정렬",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"json-xml": {
|
|
pretty: "보기 좋게 정렬",
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"split-csv": {
|
|
rowsPerFile: "파일당 행 수",
|
|
keepHeader: "각 파일에 헤더 유지",
|
|
submit: "분할",
|
|
submitBatch: "분할 ({count}개 파일)",
|
|
progressLabel: "분할 중",
|
|
},
|
|
"merge-csvs": {
|
|
submit: "병합",
|
|
submitBatch: "병합 ({count}개 파일)",
|
|
progressLabel: "병합 중",
|
|
},
|
|
"yaml-json": {
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"xml-to-csv": {
|
|
submit: "변환",
|
|
submitBatch: "변환 ({count}개 파일)",
|
|
progressLabel: "변환 중",
|
|
},
|
|
"create-zip": {
|
|
submit: "ZIP 생성",
|
|
submitBatch: "ZIP 생성 ({count}개 파일)",
|
|
progressLabel: "압축 중",
|
|
},
|
|
"extract-zip": {
|
|
submit: "추출",
|
|
submitBatch: "추출 ({count}개 파일)",
|
|
progressLabel: "추출 중",
|
|
},
|
|
},
|
|
urlImport: {
|
|
title: "URL에서 가져오기",
|
|
placeholder: "이미지 URL을 붙여넣기, 한 줄에 하나씩...",
|
|
importButton: "URL 가져오기",
|
|
addButton: "{count}개 파일 추가",
|
|
adding: "추가 중...",
|
|
retryButton: "재시도",
|
|
cancelButton: "취소",
|
|
readyCount: "{count}개 준비 완료",
|
|
failedStatus: "실패",
|
|
},
|
|
comparison: {
|
|
original: "원본",
|
|
processed: "처리 후",
|
|
before: "이전",
|
|
after: "이후",
|
|
savings: "절감",
|
|
},
|
|
toolPage: {
|
|
emptyPrompt: "이미지를 드롭하거나 업로드하여 시작하세요",
|
|
filesCount: "파일 ({count})",
|
|
addMore: "+ 더 추가",
|
|
clearAll: "모두 지우기",
|
|
acceptDescription: "{exts} 파일만 지원",
|
|
notFound: "도구를 찾을 수 없습니다",
|
|
configureAndGenerate: "설정을 구성하고 생성하세요.",
|
|
processingFailed: "이 파일의 처리에 실패했습니다",
|
|
conversionComplete: "변환 완료",
|
|
cannotPreviewDownload:
|
|
"{type} 파일은 브라우저에서 미리볼 수 없습니다. 다운로드 버튼으로 파일을 저장하세요.",
|
|
generatingPreview: "미리보기 생성 중...",
|
|
cannotPreviewWillProcess:
|
|
"{ext} 파일은 브라우저에서 미리볼 수 없습니다. 도구는 이 파일을 정상적으로 처리합니다.",
|
|
previousImage: "이전 이미지",
|
|
nextImage: "다음 이미지",
|
|
imageCounter: "{current} / {total}",
|
|
settingsLabel: "설정",
|
|
downloadAllZip: "전체 다운로드 (ZIP)",
|
|
hideSettings: "설정 숨기기",
|
|
imageArea: "이미지 영역",
|
|
disabledByAdmin: "이 도구는 관리자에 의해 비활성화되었습니다",
|
|
browseOtherTools: "다른 도구 둘러보기",
|
|
privacyNote: "파일은 서버에서 처리되며 네트워크 외부로 전송되지 않습니다",
|
|
applyAndDownload: "적용 및 다운로드",
|
|
andMore: "외 {count}개",
|
|
importFromFiles: "파일에서 가져오기",
|
|
saveToFiles: "파일에 저장",
|
|
savedToFiles: "파일에 저장됨",
|
|
librarySaveTitle: "이 파일은 내 파일에서 가져왔습니다",
|
|
librarySaveAsNew: "결과를 새 파일로 저장",
|
|
librarySaveAsNewHint: "원본은 내 파일에 유지됩니다",
|
|
libraryOverwrite: "원본 덮어쓰기",
|
|
libraryOverwriteHint: "결과가 내 파일의 원본을 대체합니다",
|
|
viewInFiles: "내 파일에서 보기",
|
|
adjustSettings: "설정 조정",
|
|
startOver: "새 파일로 다시 시작",
|
|
newFile: "새 파일",
|
|
previewUnavailable: "처리 후 미리보기를 사용할 수 있습니다",
|
|
generatePreview: "미리보기 생성",
|
|
previewFailed: "미리보기 생성 실패",
|
|
backToTools: "도구로 돌아가기",
|
|
original: "원본",
|
|
processed: "처리됨",
|
|
saved: "저장됨",
|
|
noChange: "변경 없음",
|
|
download: "다운로드",
|
|
settingsSaved: "설정이 저장되었습니다.",
|
|
tryAgain: "다시 시도",
|
|
tryDifferentFile: "다른 파일 시도",
|
|
batchPartialSuccess: "{total}개 중 {success}개 처리됨. {failed}개 실패.",
|
|
dataResultsHint: "결과가 위에 표시됩니다. 결과 패널의 복사 버튼을 사용하세요.",
|
|
downloadAsFile: "파일로 다운로드",
|
|
downloadAll: "모두 다운로드",
|
|
downloadFiles: "{count}개 파일 다운로드",
|
|
audioDecodeUnsupported: "이 오디오 형식은 브라우저에서 미리 들을 수 없습니다",
|
|
},
|
|
homePage: {
|
|
generatingPreview: "미리보기 생성 중...",
|
|
loadingPreview: "미리보기 로딩 중...",
|
|
changeFile: "파일 변경",
|
|
quickActions: "빠른 실행",
|
|
allTools: "모든 도구",
|
|
searchPlaceholder: "{count}개 도구 검색...",
|
|
recent: "최근",
|
|
pinned: "고정됨",
|
|
popular: "인기",
|
|
browseByCategory: "카테고리별 탐색",
|
|
gettingStarted: "시작하기",
|
|
noToolsMatch: "'{query}'에 일치하는 도구가 없습니다",
|
|
clearSearch: "검색 지우기",
|
|
requestToolCta: "'{query}' 요청",
|
|
requestToolBelowResults: "찾을 수 없나요? 도구 요청",
|
|
all: "전체",
|
|
documents: "PDF",
|
|
data: "파일",
|
|
pdf: "PDF",
|
|
files: "파일",
|
|
toolCount: "{count}개 도구",
|
|
heading: "SnapOtter 도구",
|
|
},
|
|
fullscreenGrid: {
|
|
searchPlaceholder: "도구 검색...",
|
|
hideDetails: "세부사항 숨기기",
|
|
showDetails: "세부사항 보기",
|
|
switchToSidebar: "사이드바 뷰로 전환",
|
|
sidebarButton: "사이드바",
|
|
noToolsFound: "도구를 찾을 수 없습니다",
|
|
tryDifferent: "다른 검색어를 시도해 보세요",
|
|
},
|
|
editor: {
|
|
menu: {
|
|
file: {
|
|
label: "파일",
|
|
new: "새로 만들기",
|
|
open: "열기",
|
|
save: "저장",
|
|
exportAs: "내보내기...",
|
|
quickExportPng: "PNG로 빠른 내보내기",
|
|
close: "닫기",
|
|
},
|
|
edit: {
|
|
label: "편집",
|
|
undo: "실행 취소",
|
|
redo: "다시 실행",
|
|
cut: "잘라내기",
|
|
copy: "복사",
|
|
copyMerged: "병합 복사",
|
|
paste: "붙여넣기",
|
|
pasteInPlace: "같은 위치에 붙여넣기",
|
|
delete: "삭제",
|
|
freeTransform: "자유 변형",
|
|
transform: {
|
|
label: "변형",
|
|
scale: "크기 조절",
|
|
rotate: "회전",
|
|
skew: "기울이기",
|
|
flipHorizontal: "수평 뒤집기",
|
|
flipVertical: "수직 뒤집기",
|
|
},
|
|
},
|
|
image: {
|
|
label: "이미지",
|
|
imageSize: "이미지 크기...",
|
|
canvasSize: "캔버스 크기...",
|
|
rotation: {
|
|
label: "이미지 회전",
|
|
cw90: "시계 방향 90도",
|
|
ccw90: "반시계 방향 90도",
|
|
r180: "180도",
|
|
flipHorizontal: "수평 뒤집기",
|
|
flipVertical: "수직 뒤집기",
|
|
},
|
|
trim: "트림",
|
|
adjustments: {
|
|
label: "조정",
|
|
brightnessContrast: "밝기/대비",
|
|
hueSaturation: "색조/채도",
|
|
colorBalance: "색상 균형",
|
|
levels: "레벨",
|
|
curves: "곡선",
|
|
},
|
|
},
|
|
layer: {
|
|
label: "레이어",
|
|
newLayer: "새 레이어",
|
|
duplicateLayer: "레이어 복제",
|
|
deleteLayer: "레이어 삭제",
|
|
arrange: {
|
|
label: "정렬",
|
|
bringToFront: "맨 앞으로",
|
|
bringForward: "앞으로",
|
|
sendBackward: "뒤로",
|
|
sendToBack: "맨 뒤로",
|
|
},
|
|
mergeDown: "아래 레이어와 병합",
|
|
flattenImage: "이미지 병합",
|
|
},
|
|
select: {
|
|
label: "선택",
|
|
all: "모두 선택",
|
|
deselect: "선택 해제",
|
|
inverse: "선택 반전",
|
|
colorRange: "색상 범위...",
|
|
},
|
|
filter: {
|
|
label: "필터",
|
|
blur: {
|
|
label: "블러",
|
|
gaussian: "가우시안 블러",
|
|
motion: "모션 블러",
|
|
radial: "방사형 블러",
|
|
surface: "표면 블러",
|
|
},
|
|
sharpen: {
|
|
label: "선명하게",
|
|
sharpen: "선명하게",
|
|
unsharpMask: "언샵 마스크",
|
|
},
|
|
noise: {
|
|
label: "노이즈",
|
|
addNoise: "노이즈 추가",
|
|
reduceNoise: "노이즈 감소",
|
|
},
|
|
pixelate: {
|
|
label: "픽셀화",
|
|
pixelate: "픽셀화",
|
|
mosaic: "모자이크",
|
|
},
|
|
stylize: {
|
|
label: "스타일화",
|
|
emboss: "엠보스",
|
|
solarize: "솔라리제이션",
|
|
posterize: "포스터화",
|
|
},
|
|
grayscale: "그레이스케일",
|
|
sepia: "세피아",
|
|
invert: "반전",
|
|
},
|
|
view: {
|
|
label: "보기",
|
|
zoomIn: "확대",
|
|
zoomOut: "축소",
|
|
fitOnScreen: "화면에 맞추기",
|
|
actualPixels: "실제 크기",
|
|
rulers: "눈금자",
|
|
grid: "그리드",
|
|
guides: "안내선",
|
|
snap: "스냅",
|
|
panels: "패널",
|
|
},
|
|
},
|
|
menuBar: {
|
|
backTitle: "SnapOtter로 돌아가기",
|
|
},
|
|
welcome: {
|
|
ariaLabel: "이미지 드롭 영역",
|
|
heading: "이미지 에디터",
|
|
dropDescription: "여기에 이미지를 드롭하여 시작하세요",
|
|
openImageButton: "이미지 열기",
|
|
newDocumentButton: "새 문서",
|
|
pasteHint: "또는 클립보드에서 붙여넣기 (Ctrl+V)",
|
|
},
|
|
mobile: {
|
|
heading: "데스크톱 환경 권장",
|
|
description:
|
|
"이미지 에디터는 데스크톱 화면에서 최적으로 동작합니다. 전체 편집 경험을 위해 더 큰 디스플레이의 기기를 사용해 주세요.",
|
|
},
|
|
errors: {
|
|
serverDecodeFailed: "서버 디코딩 실패",
|
|
},
|
|
shapes: {
|
|
shape: "도형",
|
|
fill: "채우기",
|
|
stroke: "테두리",
|
|
strokeWidth: "두께",
|
|
cornerRadius: "모서리 반경",
|
|
sides: "변",
|
|
points: "꼭짓점",
|
|
dashStyle: "선 스타일",
|
|
solid: "실선",
|
|
dashed: "파선",
|
|
dotted: "점선",
|
|
none: "없음",
|
|
opacity: "불투명도",
|
|
rectangle: "사각형",
|
|
ellipse: "타원",
|
|
line: "선",
|
|
arrow: "화살표",
|
|
polygon: "다각형",
|
|
star: "별",
|
|
},
|
|
},
|
|
settings: {
|
|
heading: "설정",
|
|
nav: {
|
|
general: "일반",
|
|
systemSettings: "시스템 설정",
|
|
security: "보안",
|
|
people: "멤버",
|
|
teams: "팀",
|
|
roles: "역할",
|
|
auditLog: "감사 로그",
|
|
usage: "사용량",
|
|
apiKeys: "API 키",
|
|
aiFeatures: "AI 기능",
|
|
tools: "도구",
|
|
about: "정보",
|
|
},
|
|
general: {
|
|
heading: "일반",
|
|
description: "사용자 환경설정 및 표시 설정.",
|
|
loading: "로딩 중...",
|
|
logOut: "로그아웃",
|
|
defaultToolViewLabel: "기본 도구 뷰",
|
|
defaultToolViewDescription: "홈페이지에서 도구가 표시되는 방식",
|
|
sidebarOption: "사이드바",
|
|
fullscreenGridOption: "전체화면 그리드",
|
|
appVersionLabel: "앱 버전",
|
|
appVersionDescription: "SnapOtter 현재 버전",
|
|
saveButton: "설정 저장",
|
|
saveSuccess: "설정이 저장되었습니다.",
|
|
saveFailed: "설정 저장에 실패했습니다.",
|
|
},
|
|
system: {
|
|
heading: "시스템 설정",
|
|
description: "서버 측 구성 및 제한.",
|
|
fileUploadLimitLabel: "파일 업로드 제한 (MB)",
|
|
fileUploadLimitDescription: "업로드당 최대 파일 크기",
|
|
defaultThemeLabel: "기본 테마",
|
|
defaultThemeDescription: "새 세션에 적용되는 테마",
|
|
lightOption: "라이트",
|
|
darkOption: "다크",
|
|
systemOption: "시스템 설정에 따름",
|
|
languageLabel: "언어",
|
|
languageDescription: "인터페이스 언어",
|
|
loginAttemptLimitLabel: "로그인 시도 제한",
|
|
loginAttemptLimitDescription: "잠금 전 분당 최대 로그인 실패 횟수",
|
|
fileManagementHeading: "파일 관리",
|
|
maxFileAgeLabel: "최대 파일 보관 시간 (시간)",
|
|
maxFileAgeDescription: "처리된 파일이 자동 정리 전까지 보관되는 시간",
|
|
startupCleanupLabel: "시작 시 정리",
|
|
startupCleanupDescription: "서버 시작 시 오래된 임시 파일 정리",
|
|
saveButton: "설정 저장",
|
|
saveSuccess: "설정이 저장되었습니다.",
|
|
saveFailed: "설정 저장에 실패했습니다.",
|
|
limitsAndResources: "제한 및 리소스",
|
|
maxFileSize: "최대 파일 크기",
|
|
maxBatchSize: "최대 배치 크기",
|
|
concurrentJobs: "동시 작업 수",
|
|
workerThreads: "워커 스레드 수",
|
|
maxPipelineSteps: "최대 Pipeline 단계 수",
|
|
processingTimeout: "처리 타임아웃",
|
|
rateLimitPerMin: "요청 제한 (요청/분)",
|
|
unlimited: "무제한",
|
|
auto: "자동",
|
|
envOverride: "환경 변수로 설정됨",
|
|
maxCanvasPixels: "최대 캔버스 픽셀",
|
|
maxSvgSize: "최대 SVG 크기",
|
|
maxSplitGrid: "최대 분할 그리드",
|
|
maxPdfPages: "최대 PDF 페이지 수",
|
|
sessionDuration: "세션 기간",
|
|
supportBundleButton: "지원 번들 다운로드",
|
|
supportBundleDescription:
|
|
"편집된 설정, 로그 및 작업 데이터가 포함된 진단 zip을 다운로드합니다.",
|
|
supportBundleFailed: "지원 번들 다운로드에 실패했습니다.",
|
|
},
|
|
privacy: {
|
|
title: "개인정보",
|
|
description:
|
|
"익명 제품 분석은 SnapOtter 개선에 도움이 됩니다. 기본적으로 켜져 있으며 관리자가 전체 인스턴스에 대해 설정합니다.",
|
|
analyticsLabel: "익명 제품 분석",
|
|
analyticsDescription:
|
|
"익명 사용 데이터(실행된 도구, 소요 시간, 오류 코드)와 충돌 보고서를 공유합니다. IP 주소나 계정 정보는 포함되지 않습니다. 파일 이름, 파일 내용, OCR 결과, 이미지 메타데이터, 문서 텍스트는 절대 수집하지 않습니다. 모두 중단하려면 이 옵션을 끄세요.",
|
|
},
|
|
security: {
|
|
heading: "보안",
|
|
description: "비밀번호 및 인증 설정.",
|
|
changePasswordHeading: "비밀번호 변경",
|
|
currentPasswordPlaceholder: "현재 비밀번호",
|
|
newPasswordPlaceholder: "새 비밀번호",
|
|
confirmPasswordPlaceholder: "새 비밀번호 확인",
|
|
passwordsMismatch: "비밀번호가 일치하지 않습니다",
|
|
passwordTooShort: "비밀번호는 4자 이상이어야 합니다",
|
|
changeSuccess: "비밀번호가 변경되었습니다",
|
|
changeFailed: "비밀번호 변경에 실패했습니다",
|
|
currentPasswordIncorrect: "현재 비밀번호가 올바르지 않습니다",
|
|
changePasswordButton: "비밀번호 변경",
|
|
loginAttemptLimitNote: "로그인 시도 제한은 시스템 설정에서 구성할 수 있습니다.",
|
|
twoFactorHeading: "2단계 인증",
|
|
twoFactorDescription: "인증 앱으로 계정에 보안 단계를 추가하세요.",
|
|
twoFactorEnabledStatus: "2단계 인증이 활성화되어 있습니다.",
|
|
twoFactorDisabledStatus: "2단계 인증이 활성화되어 있지 않습니다.",
|
|
enableTwoFactorButton: "2단계 인증 활성화",
|
|
disableTwoFactorButton: "2단계 인증 비활성화",
|
|
twoFactorScanQr:
|
|
"인증 앱(Google Authenticator, Authy, 1Password 등)으로 이 QR 코드를 스캔하세요.",
|
|
twoFactorManualEntry: "코드를 스캔할 수 없나요? 이 키를 직접 입력하세요:",
|
|
twoFactorRecoveryCodesHeading: "복구 코드",
|
|
twoFactorRecoveryCodesDescription:
|
|
"이 코드를 안전한 곳에 보관하세요. 인증 앱에 접근할 수 없을 때 각 코드는 로그인에 한 번씩 사용할 수 있습니다.",
|
|
twoFactorCopyRecoveryCodes: "코드 복사",
|
|
twoFactorCodesCopied: "복사되었습니다",
|
|
twoFactorCopyFailed:
|
|
"자동으로 복사하지 못했습니다. 위의 코드를 선택하여 수동으로 복사하세요.",
|
|
twoFactorEnterCode: "설정을 확인하려면 앱에 표시된 6자리 코드를 입력하세요.",
|
|
twoFactorCodePlaceholder: "000000",
|
|
twoFactorConfirmButton: "확인 후 활성화",
|
|
twoFactorCancelButton: "취소",
|
|
twoFactorEnableSuccess: "2단계 인증이 활성화되었습니다.",
|
|
twoFactorDisableSuccess: "2단계 인증이 비활성화되었습니다.",
|
|
twoFactorDisablePrompt: "2단계 인증을 비활성화하려면 현재 인증 코드를 입력하세요.",
|
|
adminHeading: "관리자 보안 설정",
|
|
adminDescription: "엔터프라이즈 보안 정책 설정입니다. 모든 사용자에게 적용됩니다.",
|
|
sessionIdleTimeout: "세션 유휴 시간 제한(분)",
|
|
sessionIdleTimeoutDesc: "유휴 세션을 자동으로 로그아웃합니다. 0 = 비활성화.",
|
|
maxSessionsPerUser: "사용자당 최대 세션 수",
|
|
maxSessionsPerUserDesc: "사용자당 동시 세션 수를 제한합니다. 0 = 무제한.",
|
|
mfaPolicy: "MFA 정책",
|
|
mfaPolicyDesc: "사용자에게 다단계 인증을 요구합니다.",
|
|
mfaPolicyOptional: "선택 사항",
|
|
mfaPolicyAdminsOnly: "관리자만 필수",
|
|
mfaPolicyRequired: "모든 사용자 필수",
|
|
ssoEnforcement: "SSO 적용",
|
|
ssoEnforcementDesc: "비상 접근 사용자를 제외한 모든 사용자에게 SSO 로그인을 요구합니다.",
|
|
ssoBreakGlassUsername: "비상 접근 관리자 사용자명",
|
|
ssoBreakGlassUsernameDesc:
|
|
"SSO가 적용된 경우에도 이 관리자는 로컬 자격 증명으로 로그인할 수 있습니다.",
|
|
passwordMinLength: "최소 비밀번호 길이",
|
|
passwordMinLengthDesc: "비밀번호에 필요한 최소 문자 수입니다.",
|
|
passwordRequireUppercase: "대문자 필수",
|
|
passwordRequireUppercaseDesc: "대문자를 하나 이상 포함해야 합니다.",
|
|
passwordRequireNumber: "숫자 필수",
|
|
passwordRequireNumberDesc: "숫자를 하나 이상 포함해야 합니다.",
|
|
passwordRequireSpecial: "특수 문자 필수",
|
|
passwordRequireSpecialDesc: "특수 문자를 하나 이상 포함해야 합니다.",
|
|
passwordPolicyHeading: "비밀번호 정책",
|
|
securitySettingsSaved: "보안 설정이 저장되었습니다",
|
|
securitySettingsFailed: "보안 설정 저장에 실패했습니다",
|
|
},
|
|
people: {
|
|
heading: "멤버",
|
|
description: "워크스페이스 멤버 및 권한 관리",
|
|
userCount: "사용자 {count}명",
|
|
userCountPlural: "사용자 {count}명",
|
|
searchPlaceholder: "멤버 검색...",
|
|
addMembersButton: "멤버 추가",
|
|
newMemberHeading: "새 멤버",
|
|
usernamePlaceholder: "사용자명",
|
|
passwordPlaceholder: "비밀번호",
|
|
roleUserOption: "사용자",
|
|
roleEditorOption: "편집자",
|
|
roleAdminOption: "관리자",
|
|
roleUserDescription: "기본 도구 접근",
|
|
roleEditorDescription: "모든 파일 및 Pipeline",
|
|
roleAdminDescription: "전체 접근",
|
|
noDescription: "설명 없음",
|
|
defaultTeamOption: "기본",
|
|
createButton: "생성",
|
|
cancelButton: "취소",
|
|
createSuccess: "사용자가 생성되었습니다",
|
|
createFailed: "사용자 생성에 실패했습니다",
|
|
userLimitReached: "사용자 한도에 도달했습니다 (최대 {max}명)",
|
|
deleteConfirm: '사용자 "{username}"을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',
|
|
deleteSuccess: '사용자 "{username}"이(가) 삭제되었습니다',
|
|
deleteFailed: "사용자 삭제에 실패했습니다",
|
|
editHeading: "{username} 편집",
|
|
updateSuccess: "사용자가 업데이트되었습니다",
|
|
updateFailed: "사용자 업데이트에 실패했습니다",
|
|
cannotRemoveOwnAdmin: "자신의 관리자 역할은 제거할 수 없습니다",
|
|
resetPasswordHeading: "{username}의 비밀번호 재설정",
|
|
newPasswordLabel: "새 비밀번호 (8자 이상)",
|
|
resetPasswordButton: "비밀번호 재설정",
|
|
resetPasswordWarning: "이 사용자의 모든 세션과 API 키가 무효화됩니다.",
|
|
resetSuccess: "비밀번호가 재설정되었습니다",
|
|
resetFailed: "비밀번호 재설정에 실패했습니다",
|
|
tableHeaderUser: "사용자",
|
|
tableHeaderRole: "역할",
|
|
tableHeaderTeam: "팀",
|
|
noSearchResults: "검색과 일치하는 멤버가 없습니다.",
|
|
noUsersFound: "사용자를 찾을 수 없습니다.",
|
|
authBadgeLocalOidc: "로컬 + OIDC",
|
|
authBadgeOidc: "OIDC",
|
|
editRoleTeamAction: "역할/팀 편집",
|
|
resetPasswordAction: "비밀번호 재설정",
|
|
deleteUserAction: "사용자 삭제",
|
|
saveButton: "저장",
|
|
copyPasswordButton: "비밀번호 복사",
|
|
passwordCopied: "복사됨!",
|
|
copyPasswordWarning: "지금 이 비밀번호를 복사하세요. 사용자 생성 후에는 확인할 수 없습니다.",
|
|
},
|
|
teams: {
|
|
heading: "팀",
|
|
description: "멤버를 팀으로 구성하여 효율적으로 관리하세요.",
|
|
createButton: "새 팀 만들기",
|
|
newTeamHeading: "새 팀",
|
|
teamNamePlaceholder: "팀 이름",
|
|
createSubmitButton: "생성",
|
|
cancelButton: "취소",
|
|
createSuccess: "팀이 생성되었습니다",
|
|
createFailed: "팀 생성에 실패했습니다",
|
|
duplicateTeamError: "같은 이름의 팀이 이미 존재합니다",
|
|
renameSuccess: "팀 이름이 변경되었습니다",
|
|
renameFailed: "팀 이름 변경에 실패했습니다",
|
|
deleteConfirm: '팀 "{name}"을(를) 삭제하시겠습니까? 멤버는 배정 해제됩니다.',
|
|
deleteSuccess: '팀 "{name}"이(가) 삭제되었습니다',
|
|
deleteFailed: "팀 삭제에 실패했습니다",
|
|
cannotDeleteDefault: "기본 팀이나 멤버가 있는 팀은 삭제할 수 없습니다",
|
|
tableHeaderTeamName: "팀 이름",
|
|
tableHeaderMembers: "멤버",
|
|
emptyState: "팀을 찾을 수 없습니다.",
|
|
renameSaveButton: "저장",
|
|
renameCancelButton: "취소",
|
|
renameAction: "이름 변경",
|
|
deleteAction: "삭제",
|
|
totalMembers: "총 멤버 수",
|
|
nameRequired: "팀 이름은 필수입니다",
|
|
nameTooLong: "팀 이름은 50자 이내여야 합니다",
|
|
duplicateName: "같은 이름의 팀이 이미 존재합니다",
|
|
teamStorageQuota: "저장소 할당량 (MB)",
|
|
teamStorageQuotaDesc: "이 팀의 최대 저장 용량(MB)입니다. 제한 없음은 비워 두세요.",
|
|
teamRetentionHours: "보관 기간(시간)",
|
|
teamRetentionHoursDesc:
|
|
"이 팀의 처리 파일 보관 기간입니다. 전역 기본값을 사용하려면 비워 두세요.",
|
|
quotaSaved: "팀 설정이 저장되었습니다",
|
|
},
|
|
roles: {
|
|
heading: "역할",
|
|
description: "역할과 권한을 관리합니다. 기본 제공 역할은 수정할 수 없습니다.",
|
|
createButton: "커스텀 역할 만들기",
|
|
newRoleHeading: "새 역할",
|
|
roleNamePlaceholder: "역할 이름",
|
|
descriptionPlaceholder: "설명 (선택)",
|
|
permissionsLabel: "권한",
|
|
createSubmitButton: "생성",
|
|
cancelButton: "취소",
|
|
createSuccess: "역할이 생성되었습니다",
|
|
createFailed: "역할 생성에 실패했습니다",
|
|
duplicateRoleError: "같은 이름의 역할이 이미 존재합니다",
|
|
editHeading: "역할 편집: {name}",
|
|
editSaveButton: "저장",
|
|
editCancelButton: "취소",
|
|
updateSuccess: "역할이 업데이트되었습니다",
|
|
updateFailed: "역할 업데이트에 실패했습니다",
|
|
deleteConfirm:
|
|
'역할 "{name}"을(를) 삭제하시겠습니까? {count}명의 사용자를 재배정해야 합니다.',
|
|
deleteConfirmSimple: '역할 "{name}"을(를) 삭제하시겠습니까?',
|
|
deleteSuccess: '역할 "{name}"이(가) 삭제되었습니다',
|
|
deleteFailed: "역할 삭제에 실패했습니다",
|
|
emptyState: "역할을 찾을 수 없습니다.",
|
|
builtInBadge: "기본 제공",
|
|
userCountBadge: "{count}명",
|
|
editRoleTitle: "역할 편집",
|
|
deleteRoleTitle: "역할 삭제",
|
|
permGroup: {
|
|
tools: "도구",
|
|
files: "파일",
|
|
apiKeys: "API 키",
|
|
pipelines: "Pipeline",
|
|
settings: "설정",
|
|
users: "사용자",
|
|
teams: "팀",
|
|
system: "시스템",
|
|
},
|
|
},
|
|
auditLog: {
|
|
heading: "감사 로그",
|
|
allActionsFilter: "모든 작업",
|
|
emptyState: "감사 로그 항목이 없습니다.",
|
|
tableHeaderTime: "시간",
|
|
tableHeaderUser: "사용자",
|
|
tableHeaderAction: "작업",
|
|
tableHeaderTarget: "대상",
|
|
paginationInfo: "{page}/{totalPages}페이지 (총 {total}개 항목)",
|
|
previousButton: "이전",
|
|
nextButton: "다음",
|
|
justNow: "방금",
|
|
minutesAgo: "{mins}분 전",
|
|
hoursAgo: "{hrs}시간 전",
|
|
daysAgo: "{days}일 전",
|
|
},
|
|
usage: {
|
|
heading: "사용량",
|
|
description: "작업 및 파일 저장소의 로컬 사용 통계입니다.",
|
|
periodLabel: "기간",
|
|
days7: "7일",
|
|
days30: "30일",
|
|
days90: "90일",
|
|
jobsPerDayHeading: "일별 작업 수",
|
|
topToolsHeading: "인기 도구",
|
|
perUserHeading: "사용자별 사용량",
|
|
durationsHeading: "처리 시간 백분위",
|
|
noData: "해당 기간의 데이터가 없습니다.",
|
|
dayColumn: "날짜",
|
|
totalColumn: "전체",
|
|
completedColumn: "완료",
|
|
failedColumn: "실패",
|
|
toolColumn: "도구",
|
|
runsColumn: "실행 횟수",
|
|
userColumn: "사용자",
|
|
bytesInColumn: "입력 바이트",
|
|
poolColumn: "풀",
|
|
p50Column: "p50",
|
|
p95Column: "p95",
|
|
storageHeading: "라이브러리 저장소",
|
|
storageFiles: "{count}개 파일",
|
|
unknownUser: "(알 수 없음)",
|
|
storageByTeam: "팀별 저장소",
|
|
teamColumn: "팀",
|
|
storageColumn: "저장소",
|
|
usersColumn: "사용자",
|
|
},
|
|
apiKeys: {
|
|
heading: "API 키",
|
|
description: "SnapOtter에 프로그래밍 방식으로 접근하기 위한 API 키를 관리하세요.",
|
|
keyNamePlaceholder: "키 이름 (선택)",
|
|
generateButton: "API 키 생성",
|
|
removeScopingLabel: "권한 범위 해제",
|
|
restrictPermissionsLabel: "권한 제한 (선택)",
|
|
expiresLabel: "만료:",
|
|
clearButton: "지우기",
|
|
copyTitle: "복사",
|
|
keyWarning: "이 키를 안전하게 보관하세요. 다시 표시되지 않습니다.",
|
|
existingKeysHeading: "기존 키",
|
|
createdPrefix: "{date}에 생성됨",
|
|
scopedPrefix: "범위:",
|
|
expiresPrefix: "{date}에 만료",
|
|
deleteKeyTitle: "키 삭제",
|
|
deleteConfirm: "이 API 키를 삭제하시겠습니까? 이 키를 사용하는 모든 연동이 중단됩니다.",
|
|
emptyState: "아직 API 키가 없습니다. 하나를 생성하여 시작하세요.",
|
|
},
|
|
tools: {
|
|
heading: "도구",
|
|
description:
|
|
"개별 도구를 활성화하거나 비활성화합니다. 비활성화된 도구는 모든 사용자에게 숨겨집니다.",
|
|
restartBanner: "변경 사항을 적용하려면 재시작이 필요합니다.",
|
|
searchPlaceholder: "도구 검색...",
|
|
noSearchResults: "검색과 일치하는 도구가 없습니다.",
|
|
loadFailedError:
|
|
"도구 설정 로드에 실패했습니다. 데이터 손실을 방지하기 위해 저장이 비활성화되었습니다.",
|
|
saveButton: "도구 설정 저장",
|
|
disabledCount: "{count}개 도구 비활성화됨",
|
|
},
|
|
experimental: {
|
|
label: "실험적 도구 활성화",
|
|
description: "아직 개발 중인 도구를 표시합니다. 불안정할 수 있습니다.",
|
|
},
|
|
fileManagement: {
|
|
title: "파일 관리",
|
|
maxAge: "최대 파일 보관 시간 (시간)",
|
|
maxAgeDescription: "처리된 파일이 자동 정리 전까지 보관되는 시간",
|
|
startupCleanup: "시작 시 정리",
|
|
startupCleanupDescription: "서버 시작 시 오래된 임시 파일 정리",
|
|
},
|
|
dataRetention: {
|
|
title: "데이터 보관",
|
|
fileMaxAgeHours: "처리 파일 보관 기간(시간)",
|
|
fileMaxAgeHoursDesc: "업로드 및 처리된 파일의 보관 기간입니다. 기본값: 72시간.",
|
|
jobsRetentionDays: "작업 기록 보관 기간(일)",
|
|
jobsRetentionDaysDesc: "작업 메타데이터 보관 기간입니다. 0 = 영구 보관. 기본값: 30일.",
|
|
auditRetentionDays: "감사 로그 보관 기간(일)",
|
|
auditRetentionDaysDesc: "감사 로그 항목 보관 기간입니다. 0 = 영구 보관. 기본값: 영구 보관.",
|
|
},
|
|
aiFeatures: {
|
|
title: "AI 기능",
|
|
description: "고급 파일 처리를 위한 AI 모델 번들을 관리합니다.",
|
|
installAll: "모두 설치",
|
|
diskUsage: "디스크 사용량: {size}",
|
|
sizeOnDisk: "디스크에 {size}",
|
|
installed: "설치됨",
|
|
notInstalled: "설치되지 않음",
|
|
queued: "대기 중",
|
|
install: "설치",
|
|
repair: "복구",
|
|
uninstall: "제거",
|
|
installing: "설치 중...",
|
|
importBundle: "번들 가져오기",
|
|
importDescription: "오프라인용 서명된 OCR 런타임 또는 레거시 AI 번들을 가져옵니다.",
|
|
importButton: "파일에서 가져오기",
|
|
importing: "가져오는 중...",
|
|
importSuccess: "번들을 가져왔습니다.",
|
|
importError: "번들 가져오기 실패: {error}",
|
|
importType: "번들 유형",
|
|
importOcr: "고정밀 OCR 팩",
|
|
importLegacy: "레거시 AI 번들",
|
|
importOcrIndex: "서명된 OCR 인덱스 (.json)",
|
|
importOcrArchive: "OCR 런타임 아카이브 (.tar.gz)",
|
|
importLegacyArchive: "레거시 번들 아카이브 (.tar.gz)",
|
|
resetTitle: "AI 환경 재설정",
|
|
resetDescription:
|
|
"설치된 모든 AI 기능과 다운로드한 모델을 삭제한 후 처음부터 다시 시작합니다. 업데이트 후 AI 도구가 예상치 못하게 동작하고 번들을 다시 설치해도 문제가 해결되지 않을 때 사용하세요.",
|
|
resetButton: "재설정",
|
|
resetConfirmMessage:
|
|
"설치된 모든 AI 기능과 모델이 삭제됩니다. Hugging Face에서 다시 설치해야 합니다. 이 작업은 되돌릴 수 없습니다.",
|
|
resetFailed: "재설정 실패: {error}",
|
|
},
|
|
about: {
|
|
heading: "정보",
|
|
appName: "SnapOtter",
|
|
appDescription:
|
|
"셀프 호스팅, 개인정보 우선의 파일 처리 도구 모음으로 200+개의 도구를 제공합니다. 변환, 압축, 편집, 전사, OCR 등 이미지, 동영상, 오디오, PDF, 파일 워크플로를 클라우드에 데이터를 보내지 않고 자동화할 수 있습니다.",
|
|
versionLabel: "버전:",
|
|
linksHeading: "링크",
|
|
githubLink: "GitHub 저장소",
|
|
docsLink: "문서",
|
|
apiRefLink: "API 레퍼런스 (Swagger)",
|
|
licenseLabel: "라이선스:",
|
|
licenseDescription:
|
|
"SnapOtter는 GNU Affero General Public License v3 (AGPLv3)로 라이선스된 오픈 소스 소프트웨어입니다.",
|
|
},
|
|
},
|
|
auth: {
|
|
login: "로그인",
|
|
logout: "로그아웃",
|
|
username: "사용자명",
|
|
password: "비밀번호",
|
|
loginButton: "로그인",
|
|
loggingIn: "로그인 중...",
|
|
invalidCredentials: "사용자명 또는 비밀번호가 올바르지 않습니다",
|
|
connectionError: "연결 오류",
|
|
signInWith: "{provider}(으)로 로그인",
|
|
signInWithSso: "SSO로 로그인",
|
|
or: "또는",
|
|
methodLocal: "로컬",
|
|
methodOidc: "OIDC",
|
|
methodBoth: "로컬 + OIDC",
|
|
oidcAuthFailed: "인증에 실패했습니다. 다시 시도해 주세요.",
|
|
oidcProviderUnreachable: "ID 제공자에 연결할 수 없습니다. 나중에 다시 시도해 주세요.",
|
|
oidcSessionExpired: "로그인 세션이 만료되었습니다. 다시 시도해 주세요.",
|
|
oidcUserNotAuthorized:
|
|
"귀하의 계정은 이 애플리케이션에 접근할 권한이 없습니다. 관리자에게 문의하세요.",
|
|
oidcUserLimitReached: "사용자 한도에 도달했습니다. 관리자에게 문의하세요.",
|
|
oidcGenericError: "인증 오류. 다시 시도해 주세요.",
|
|
samlAuthFailed: "SAML 인증에 실패했습니다. 다시 시도해 주세요.",
|
|
samlUserNotAuthorized: "이 애플리케이션에 대한 접근 권한이 없습니다. 관리자에게 문의하세요.",
|
|
samlUserLimitReached: "사용자 제한에 도달했습니다. 관리자에게 문의하세요.",
|
|
ssoEnforcedLocalRestricted: "로컬 로그인은 승인된 관리자로 제한됩니다.",
|
|
mfaRequired: "인증 코드를 입력하세요",
|
|
mfaRecoveryHint: "복구 코드를 사용할 수도 있습니다",
|
|
verify: "확인",
|
|
verifying: "확인 중...",
|
|
mfaInvalidCode: "잘못된 코드입니다. 다시 시도해 주세요.",
|
|
mfaEnrollmentRequired: "조직에서 다단계 인증을 요구합니다. 계정 설정에서 MFA를 설정해 주세요.",
|
|
methodSaml: "SAML",
|
|
passwordManagedByProvider: "비밀번호는 ID 제공자에서 관리됩니다.",
|
|
enterUsername: "사용자명 입력",
|
|
enterPassword: "비밀번호 입력",
|
|
heroTitle: "당신의 파일은, 당신의 것입니다.",
|
|
heroSubtitle: "필요한 모든 도구가 여기에.",
|
|
rotatingPhrases: [
|
|
"가입도 필요 없고, 계정도 필요 없어요.",
|
|
"클라우드 업로드? 절대 없습니다.",
|
|
"100% 로컬 처리.",
|
|
"무료. 영원히 무료.",
|
|
"제한 없음. 숨겨진 상한 없음.",
|
|
"완전히 오프라인으로 작동해요.",
|
|
"무제한 일괄 처리.",
|
|
"200+개의 도구.",
|
|
"15개 AI 모델. 당신의 하드웨어에서.",
|
|
"Sharp 기반의 초고속 처리.",
|
|
"에어갭 환경에서도 사용 가능.",
|
|
"Docker 컨테이너 하나면 충분해요.",
|
|
"오픈 소스. 언제나.",
|
|
"모든 픽셀이 당신의 하드웨어에 머물러요.",
|
|
"당신의 서버. 당신의 규칙.",
|
|
"docker pull 한 줄이면 배포 끝.",
|
|
"셀프 호스팅의 새로운 기준.",
|
|
"리사이즈, 압축, 변환. 모두 로컬에서.",
|
|
"무료 이미지 에디터. 워터마크 없음.",
|
|
"일괄 파일 처리. 무제한으로.",
|
|
"배경 제거도 오프라인으로.",
|
|
"셀프 호스팅 Canva 대안.",
|
|
"API 키가 필요 없어요.",
|
|
"설계 단계부터 GDPR 준수.",
|
|
"인터넷 없이도 작동해요.",
|
|
],
|
|
},
|
|
changePassword: {
|
|
title: "비밀번호를 변경하세요",
|
|
description:
|
|
"계속하려면 새 비밀번호를 설정해야 합니다. 8자 이상으로 대문자, 소문자, 숫자를 포함해야 합니다.",
|
|
usernameLabel: "사용자명",
|
|
currentPasswordLabel: "현재 비밀번호",
|
|
currentPasswordPlaceholder: "현재 비밀번호 입력",
|
|
newPasswordLabel: "새 비밀번호",
|
|
generateButton: "강력한 비밀번호 생성",
|
|
newPasswordPlaceholder: "8자 이상",
|
|
confirmPasswordLabel: "새 비밀번호 확인",
|
|
confirmPasswordPlaceholder: "새 비밀번호 다시 입력",
|
|
passwordsMismatch: "비밀번호가 일치하지 않습니다",
|
|
failedError: "비밀번호 변경에 실패했습니다",
|
|
connectionError: "연결 오류",
|
|
changingButton: "변경 중...",
|
|
changeButton: "비밀번호 변경",
|
|
sidebarTitle: "거의 다 됐어요",
|
|
sidebarDescription: "강력한 비밀번호를 설정하여 계정을 보호하면 바로 시작할 수 있습니다.",
|
|
},
|
|
automate: {
|
|
title: "자동화",
|
|
invalidPipelineFile: "유효한 SnapOtter Pipeline 파일이 아닙니다",
|
|
newerVersion: "이 Pipeline은 더 최신 버전의 SnapOtter에서 생성되었습니다",
|
|
missingName: "Pipeline 파일에 이름이 없습니다",
|
|
noSteps: "Pipeline 파일에 단계가 없습니다",
|
|
importFailed: "가져오기 실패",
|
|
couldNotRead: "Pipeline 파일을 읽을 수 없습니다",
|
|
fileCount: "{count}개 파일",
|
|
fileCountPlural: "{count}개 파일",
|
|
importFromLibrary: "라이브러리에서 가져오기",
|
|
addButton: "+ 추가",
|
|
libraryButton: "라이브러리",
|
|
clearButton: "지우기",
|
|
processingFailed: "이 파일의 처리에 실패했습니다",
|
|
processingMultiple: "{count}개 파일 처리 중...",
|
|
processingPipeline: "Pipeline 처리 중...",
|
|
processButton: "처리",
|
|
processButtonMultiple: "처리 ({count})",
|
|
processAllButton: "모두 처리 ({count})",
|
|
addTool: "도구 추가",
|
|
toolPalette: "도구 팔레트",
|
|
clickToAdd: "클릭하여 Pipeline에 추가",
|
|
savedLabel: "저장됨",
|
|
templatesLabel: "템플릿",
|
|
importButton: "가져오기",
|
|
noSavedPipelines: "저장된 Pipeline이 없습니다",
|
|
stepCount: "({count}단계)",
|
|
stepCountPlural: "({count}단계)",
|
|
exportPipeline: "Pipeline 내보내기",
|
|
deletePipeline: "Pipeline 삭제",
|
|
moreCount: "+{count}개 더",
|
|
pipelineBuilder: "Pipeline 빌더",
|
|
addToolsPrompt: "팔레트에서 도구를 추가하여 시작하세요",
|
|
stepsConfigured: "{count}단계 구성됨",
|
|
stepsConfiguredPlural: "{count}단계 구성됨",
|
|
noFilesLoaded: "로드된 파일 없음",
|
|
downloadZip: "ZIP 다운로드",
|
|
saveButton: "저장",
|
|
pipelineNamePlaceholder: "Pipeline 이름",
|
|
descriptionPlaceholder: "설명",
|
|
savingIndicator: "...",
|
|
cancelButton: "취소",
|
|
preview: "미리보기",
|
|
previousImage: "이전 이미지",
|
|
nextImage: "다음 이미지",
|
|
imageCounter: "{current} / {total}",
|
|
imageArea: "이미지 영역",
|
|
templateSocialMedia: "소셜 미디어 준비",
|
|
templatePrivacyClean: "개인정보 정리",
|
|
templateWebOptimization: "웹 최적화",
|
|
templateProfilePicture: "프로필 사진",
|
|
templateWatermarkBatch: "일괄 워터마크",
|
|
createNew: "새 자동화 만들기",
|
|
savedAutomations: "저장된 자동화",
|
|
templates: "템플릿",
|
|
addStep: "단계 추가",
|
|
removeStep: "제거",
|
|
moveUp: "위로 이동",
|
|
moveDown: "아래로 이동",
|
|
savePipeline: "Pipeline 저장",
|
|
runPipeline: "처리",
|
|
pipelineName: "Pipeline 이름",
|
|
pipelineDescription: "설명 (선택)",
|
|
noStepsPrompt: "단계를 추가하여 자동화를 구성하세요",
|
|
noStepsHeading: "단계가 없습니다",
|
|
searchToolsPlaceholder: "도구 검색...",
|
|
step: "단계",
|
|
modalityWarning: "모달리티 불일치",
|
|
modalityWarningTooltip:
|
|
"이 단계는 {expected}을(를) 기대하지만 {received}을(를) 받습니다. 파이프라인을 실행하면 실패할 수 있습니다.",
|
|
},
|
|
nav: {
|
|
tools: "도구",
|
|
reader: "리더",
|
|
automate: "자동화",
|
|
editor: "에디터",
|
|
files: "파일",
|
|
help: "도움말",
|
|
settings: "설정",
|
|
grid: "그리드",
|
|
},
|
|
files: {
|
|
myFiles: "내 파일",
|
|
recentTab: "최근",
|
|
uploadTab: "파일 업로드",
|
|
fileDetailsAriaLabel: "파일 상세 정보",
|
|
fileDetailsHeading: "파일 상세 정보",
|
|
searchPlaceholder: "파일 검색...",
|
|
selectedCount: "{count}개 선택됨",
|
|
fileCount: "{count}개 파일",
|
|
fileCountSingular: "{count}개 파일",
|
|
noFilesFound: "파일을 찾을 수 없습니다",
|
|
selectFilePrompt: "파일을 선택하여 상세 정보를 확인하세요",
|
|
openFile: "파일 열기",
|
|
selectFile: "파일 선택",
|
|
openInPipeline: "파이프라인에서 열기",
|
|
dropFilesHere: "여기에 파일을 놓으세요",
|
|
orClickToSelect: "또는 클릭하여 파일 선택",
|
|
name: "이름",
|
|
format: "형식",
|
|
size: "크기",
|
|
dimensions: "해상도",
|
|
version: "버전",
|
|
toolsUsed: "사용한 도구",
|
|
none: "없음",
|
|
delete: "삭제",
|
|
pipeline: "파이프라인",
|
|
download: "다운로드",
|
|
},
|
|
dropzone: {
|
|
unsupportedFileType: "이 도구에서 지원하지 않는 파일 형식입니다",
|
|
urlFetchFailed: "URL에서 이미지를 가져올 수 없습니다",
|
|
ariaLabel: "파일 드롭 영역",
|
|
dropPrompt: "여기에 이미지를 드롭하세요",
|
|
browseOrPaste: "업로드 버튼을 사용하거나 클립보드에서 붙여넣기",
|
|
uploadButton: "업로드",
|
|
defaultFormats: "이미지, 동영상, 오디오, PDF, 파일 및 150가지 이상의 포맷",
|
|
orSeparator: "또는",
|
|
urlPlaceholder: "이미지 URL 붙여넣기...",
|
|
urlLoadingIndicator: "...",
|
|
addUrlButton: "추가",
|
|
importMultipleUrls: "여러 URL 가져오기...",
|
|
filesSelected: "{count}개 파일 선택됨",
|
|
dropToAdd: "파일을 추가하려면 놓기",
|
|
dropToReplace: "파일을 교체하려면 놓기",
|
|
},
|
|
reviewPanel: {
|
|
processedResultAlt: "처리 결과",
|
|
sizeLabel: "크기: {size}",
|
|
typeLabel: "유형: {type}",
|
|
processedLabel: "처리 시간: {time}",
|
|
undoButton: "실행 취소",
|
|
downloadButton: "다운로드",
|
|
openInEditor: "에디터에서 열기",
|
|
reviewHeading: "리뷰",
|
|
continueEditing: "편집 계속하기",
|
|
},
|
|
features: {
|
|
notEnabledTitle: "기능이 활성화되지 않았습니다",
|
|
notEnabledDescription:
|
|
"이 기능이 활성화되지 않았습니다. 관리자에게 설정에서 활성화를 요청하세요.",
|
|
requiresDownload: "이 기능은 추가 다운로드가 필요합니다 (약 {size})",
|
|
retryButton: "재시도",
|
|
queued: "설치 대기 중...",
|
|
enableButton: "{name} 활성화",
|
|
repairRequired: "복구 필요",
|
|
repairDescription:
|
|
"일부 모델 파일이 누락되었거나 손상되었습니다. 복구하면 다시 다운로드됩니다.",
|
|
repairButton: "{name} 복구",
|
|
lessThanMinute: "1분 미만",
|
|
oneMinuteLeft: "약 1분",
|
|
minutesLeft: "약 {mins}분",
|
|
progressMessages: [
|
|
"거의 다 됐어요... 아마도...",
|
|
"좋은 건 기다림이 필요한 법이에요...",
|
|
"라면 끓이는 것보다는 빠를 거예요...",
|
|
"당신의 인내심, 정말 대단해요...",
|
|
"보이는 것보다 열심히 일하는 중이에요...",
|
|
"지금부터가 진짜예요, 믿어 주세요...",
|
|
"무대 뒤에서 중요한 작업 중...",
|
|
"이게 보인다면, 잘 돌아가고 있는 거예요...",
|
|
"대단한 걸 준비하는 중이에요...",
|
|
"기다린 보람이 있을 거예요, 약속해요...",
|
|
"긴장감도 경험의 일부예요...",
|
|
"컴퓨터에 새로운 기술을 가르치는 중...",
|
|
"슈퍼파워를 세팅 중이에요...",
|
|
"나중에 파일이 고마워할 거예요...",
|
|
"로딩 중... 근데 좀 있어 보이게...",
|
|
"커피 한 잔 타기에 딱 좋은 타이밍이에요...",
|
|
"로마도 하루 만에 세워지진 않았어요...",
|
|
"쉿... 천재가 일하는 중이에요...",
|
|
"당신의 프로젝트가 곧 올 결과를 부러워하는 중...",
|
|
"드림팀을 구성하는 중이에요...",
|
|
"대단한 걸 풀어내는 중...",
|
|
"시작할까 말까 고민 중... 농담이에요...",
|
|
"반전: 진짜로 뭔가 하고 있는 중이에요...",
|
|
"크리에이티브 엔진을 워밍업 중...",
|
|
"상상력을 로딩 중...",
|
|
"화면보호기 아니에요, 진짜로...",
|
|
"위대한 예술에는 설치 시간이 필요해요...",
|
|
"미래의 당신이 지금의 당신에게 감사할 거예요...",
|
|
"아주 스마트한 파일을 가져오는 중...",
|
|
"조금만 기다려 주세요, 좋은 건 아직이에요...",
|
|
],
|
|
},
|
|
help: {
|
|
heading: "도움말",
|
|
gettingStarted: {
|
|
heading: "시작하기",
|
|
description:
|
|
"사이드바에서 도구를 선택하거나 검색하세요. 페이지에 파일을 드래그하거나 업로드 영역을 클릭하여 파일을 업로드하세요. 설정을 조정한 후 결과를 다운로드하세요.",
|
|
},
|
|
keyboardShortcuts: {
|
|
heading: "키보드 단축키",
|
|
focusSearchBar: "검색바로 포커스",
|
|
goToTools: "도구로 이동",
|
|
toggleTheme: "테마 전환",
|
|
goToResize: "리사이즈로 이동",
|
|
goToCrop: "크롭으로 이동",
|
|
goToCompress: "압축으로 이동",
|
|
goToConvert: "변환으로 이동",
|
|
goToRemoveBackground: "배경 제거로 이동",
|
|
goToWatermarkText: "텍스트 워터마크로 이동",
|
|
goToStripMetadata: "메타데이터 제거로 이동",
|
|
goToImageInfo: "이미지 정보로 이동",
|
|
processFile: "파일 처리",
|
|
downloadResult: "결과 다운로드",
|
|
},
|
|
resources: {
|
|
heading: "리소스",
|
|
githubLink: "GitHub 저장소",
|
|
reportIssueLink: "문제 보고",
|
|
docsLink: "문서",
|
|
apiRefLink: "API 레퍼런스 (Swagger)",
|
|
},
|
|
versionLabel: "SnapOtter v{version}",
|
|
},
|
|
errors: {
|
|
generic: "오류가 발생했습니다",
|
|
offline: "오프라인 상태입니다",
|
|
reconnecting: "서버에 재연결 중...",
|
|
connected: "연결됨",
|
|
processingFailed: "이 파일의 처리에 실패했습니다",
|
|
timeout: "요청 시간이 초과되었습니다. 서버가 과부하일 수 있습니다. 다시 시도해 주세요.",
|
|
networkError: "네트워크 오류. 연결을 확인하세요.",
|
|
invalidCredentials: "사용자명 또는 비밀번호가 올바르지 않습니다",
|
|
connectionError: "연결 오류",
|
|
},
|
|
sidebar: {
|
|
sponsor: "후원하기",
|
|
tools: "도구",
|
|
grid: "그리드",
|
|
automate: "자동화",
|
|
editor: "에디터",
|
|
files: "파일",
|
|
help: "도움말",
|
|
settings: "설정",
|
|
},
|
|
toolCard: {
|
|
pin: "고정",
|
|
unpin: "고정 해제",
|
|
},
|
|
appLayout: {
|
|
mobileNavTools: "도구",
|
|
mobileNavAutomate: "자동화",
|
|
mobileNavEditor: "에디터",
|
|
mobileNavFiles: "파일",
|
|
mobileNavSettings: "설정",
|
|
},
|
|
a11y: {
|
|
sponsorLink: "GitHub Sponsors에서 SnapOtter 후원하기",
|
|
skipToContent: "본문으로 건너뛰기",
|
|
openSidebar: "사이드바 열기",
|
|
closeSidebar: "사이드바 닫기",
|
|
closeSettings: "설정 닫기",
|
|
closeHelp: "도움말 닫기",
|
|
closeDialog: "대화 상자 닫기",
|
|
zoomIn: "확대",
|
|
zoomOut: "축소",
|
|
fitToView: "화면에 맞추기",
|
|
actualSize: "실제 크기",
|
|
pan: "이동",
|
|
previousImage: "Previous image",
|
|
nextImage: "Next image",
|
|
imageArea: "Image area",
|
|
imageViewer: "Image viewer",
|
|
fileDropZone: "파일 드롭 영역",
|
|
imageDropZone: "Image drop zone",
|
|
beforeAfterSlider: "전후 비교 슬라이더",
|
|
imageControls: "Image controls",
|
|
zoomControls: "확대/축소 컨트롤",
|
|
dragToReorder: "드래그하여 순서 변경",
|
|
whiteBackground: "흰색 배경",
|
|
blackBackground: "검은색 배경",
|
|
expandPanel: "패널 펼치기",
|
|
collapsePanel: "패널 접기",
|
|
swapDimensions: "가로세로 바꾸기",
|
|
applyCrop: "자르기 적용",
|
|
cancelCrop: "자르기 취소",
|
|
fontFamily: "글꼴",
|
|
textColor: "텍스트 색상",
|
|
flipHorizontal: "좌우 반전",
|
|
flipVertical: "상하 반전",
|
|
hexColorValue: "HEX 색상 값",
|
|
backgroundColor: "배경색",
|
|
foregroundColor: "전경색",
|
|
swapColors: "전경색과 배경색 바꾸기",
|
|
resetColors: "기본 흑백으로 초기화",
|
|
foregroundHex: "전경색 HEX 값",
|
|
undo: "실행 취소",
|
|
redo: "다시 실행",
|
|
layers: "레이어",
|
|
addLayer: "레이어 추가",
|
|
deleteLayer: "레이어 삭제",
|
|
cancelOperation: "작업 취소",
|
|
fill: "채우기",
|
|
fileDetails: "파일 상세 정보",
|
|
language: "언어",
|
|
selected: "선택됨",
|
|
deleteKey: "키 삭제",
|
|
editRole: "역할 편집",
|
|
deleteRole: "역할 삭제",
|
|
notInstalled: "설치되지 않음",
|
|
queued: "설치 대기 중",
|
|
installing: "설치 중",
|
|
imageNOfTotal: "이미지 {n}/{total}",
|
|
processingComplete: "이미지 처리가 완료되었습니다",
|
|
processingFailed: "처리에 실패했습니다",
|
|
settingsDialog: "설정",
|
|
helpDialog: "도움말",
|
|
navigationMenu: "탐색 메뉴",
|
|
homeLink: "SnapOtter 홈",
|
|
},
|
|
pipelineTemplates: {
|
|
"web-optimize": {
|
|
name: "웹 최적화",
|
|
description:
|
|
"이미지 크기를 조정하고 WebP로 변환한 뒤 압축하여 웹에서 빠르게 로드되도록 합니다.",
|
|
},
|
|
"email-friendly": {
|
|
name: "이메일 적합",
|
|
description: "이메일에 첨부할 수 있을 만큼 이미지를 충분히 작게 줄입니다.",
|
|
},
|
|
"privacy-scrub": {
|
|
name: "개인정보 정리",
|
|
description: "EXIF, GPS 및 기타 메타데이터를 제거한 뒤 압축합니다.",
|
|
},
|
|
"social-square": {
|
|
name: "소셜 정사각형",
|
|
description: "1:1 정사각형으로 자르고 소셜 게시물용으로 압축합니다.",
|
|
},
|
|
"watermark-batch": {
|
|
name: "워터마크 일괄 처리",
|
|
description: "이미지에 텍스트 워터마크를 찍은 뒤 압축합니다.",
|
|
},
|
|
"shrink-pdf-email": {
|
|
name: "이메일용 PDF 축소",
|
|
description: "PDF를 평면화하고 이메일 용량 제한에 맞게 강하게 압축합니다.",
|
|
},
|
|
"podcast-polish": {
|
|
name: "팟캐스트 다듬기",
|
|
description: "무음 구간을 제거하고 음량을 정규화한 뒤 녹음에 페이드를 추가합니다.",
|
|
},
|
|
"cut-out-subject": {
|
|
name: "피사체 오려내기",
|
|
description: "AI로 배경을 제거하고 투명한 누끼 이미지를 압축합니다.",
|
|
},
|
|
"restore-old-photo": {
|
|
name: "오래된 사진 복원",
|
|
description: "AI로 오래되거나 손상된 사진을 복구하고 색을 입히며 업스케일합니다.",
|
|
},
|
|
},
|
|
} as const;
|
|
|
|
export default ko;
|