mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
3408 lines
121 KiB
TypeScript
3408 lines
121 KiB
TypeScript
import type { TranslationKeys } from "./en.js";
|
|
|
|
export const ko: TranslationKeys = {
|
|
common: {
|
|
upload: "컴퓨터에서 업로드",
|
|
process: "처리",
|
|
download: "다운로드",
|
|
cancel: "취소",
|
|
save: "저장",
|
|
delete: "삭제",
|
|
settings: "설정",
|
|
search: "도구 검색...",
|
|
dropFiles: "여기에 파일을 놓거나 업로드 버튼을 클릭하세요",
|
|
loading: "로딩 중...",
|
|
saving: "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: "Page not found",
|
|
pageNotFoundDescription: "The page you are looking for does not exist or has been moved.",
|
|
},
|
|
categories: {
|
|
essentials: "기본 도구",
|
|
adjustments: "조정",
|
|
enhance: "Enhance & AI",
|
|
watermark: "워터마크 및 오버레이",
|
|
layout: "레이아웃 및 구도",
|
|
utilities: "유틸리티",
|
|
optimization: "최적화",
|
|
format: "포맷 및 변환",
|
|
"video-edit": "Video",
|
|
"video-convert": "Convert",
|
|
"video-effects": "Effects & Compose",
|
|
"video-subtitles": "Subtitles",
|
|
"video-metadata": "Metadata",
|
|
"audio-edit": "Edit",
|
|
"audio-convert": "Convert",
|
|
"audio-effects": "Effects & Compose",
|
|
"audio-metadata": "Metadata",
|
|
"pdf-organize": "Organize",
|
|
"pdf-edit": "Edit & Annotate",
|
|
"pdf-security": "Security",
|
|
"pdf-optimize": "Optimize",
|
|
"doc-convert": "Convert",
|
|
data: "Data Files",
|
|
archives: "Archives",
|
|
},
|
|
modalities: {
|
|
image: "Image",
|
|
video: "Video",
|
|
audio: "Audio",
|
|
documentsAndFiles: "Documents & Files",
|
|
},
|
|
tools: {
|
|
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 to Image",
|
|
description: "Capture webpages as high-quality images",
|
|
},
|
|
"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: "Circle Crop",
|
|
description: "Crop image to a centered circle with transparent corners",
|
|
},
|
|
duotone: {
|
|
name: "Duotone",
|
|
description: "Apply a two-color duotone effect with custom shadow and highlight colors",
|
|
},
|
|
"image-pad": {
|
|
name: "Image Pad",
|
|
description: "Pad image to a target aspect ratio with a solid color background",
|
|
},
|
|
pixelate: {
|
|
name: "Pixelate",
|
|
description: "Apply a pixelation effect to the full image or a specific region",
|
|
},
|
|
vignette: {
|
|
name: "Vignette",
|
|
description: "Add a vignette effect with adjustable strength and color",
|
|
},
|
|
"gif-webp": {
|
|
name: "GIF/WebP Converter",
|
|
description: "Convert animated GIF to WebP and vice versa, preserving all frames",
|
|
},
|
|
histogram: {
|
|
name: "Histogram",
|
|
description: "Generate an RGB histogram chart from an image",
|
|
},
|
|
"lqip-placeholder": {
|
|
name: "LQIP Placeholder",
|
|
description: "Generate a tiny low-quality image placeholder with base64 data URI",
|
|
},
|
|
"sprite-sheet": {
|
|
name: "Sprite Sheet",
|
|
description: "Combine multiple images into a single sprite sheet grid",
|
|
},
|
|
"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: "Barcode Generator",
|
|
description: "Generate barcodes in Code 128, EAN-13, UPC-A, Code 39, ITF-14, and Data Matrix",
|
|
},
|
|
"chart-maker": {
|
|
name: "Chart Maker",
|
|
description: "Create bar, line, or pie charts from CSV or JSON data",
|
|
},
|
|
"convert-video": {
|
|
name: "Convert Video",
|
|
description: "Convert videos between MP4, MOV, and WebM",
|
|
},
|
|
"compress-video": {
|
|
name: "Compress Video",
|
|
description: "Shrink video file size with quality control",
|
|
},
|
|
"trim-video": {
|
|
name: "Trim Video",
|
|
description: "Cut a clip out of a video",
|
|
},
|
|
"mute-video": {
|
|
name: "Mute Video",
|
|
description: "Remove the audio track from a video",
|
|
},
|
|
"video-to-gif": {
|
|
name: "Video to GIF",
|
|
description: "Turn a video clip into an animated GIF",
|
|
},
|
|
"resize-video": {
|
|
name: "Resize Video",
|
|
description: "Scale a video to a new resolution or preset size",
|
|
},
|
|
"crop-video": {
|
|
name: "Crop Video",
|
|
description: "Crop a region out of a video",
|
|
},
|
|
"rotate-video": {
|
|
name: "Rotate Video",
|
|
description: "Rotate or flip a video",
|
|
},
|
|
"change-fps": {
|
|
name: "Change FPS",
|
|
description: "Change the frame rate of a video",
|
|
},
|
|
"video-color": {
|
|
name: "Video Color",
|
|
description: "Adjust brightness, contrast, saturation, and gamma",
|
|
},
|
|
"video-speed": {
|
|
name: "Video Speed",
|
|
description: "Speed up or slow down a video",
|
|
},
|
|
"reverse-video": {
|
|
name: "Reverse Video",
|
|
description: "Play a video clip backwards",
|
|
},
|
|
"video-loudnorm": {
|
|
name: "Normalize Audio",
|
|
description: "Normalize video audio volume to broadcast standard",
|
|
},
|
|
"aspect-pad": {
|
|
name: "Aspect Pad",
|
|
description: "Add solid-color bars to fit a target aspect ratio",
|
|
},
|
|
"blur-pad": {
|
|
name: "Blur Pad",
|
|
description: "Fill bars with a blurred copy of the video",
|
|
},
|
|
"watermark-video": {
|
|
name: "Watermark Video",
|
|
description: "Burn a text watermark onto video frames",
|
|
},
|
|
"stabilize-video": {
|
|
name: "Stabilize Video",
|
|
description: "Reduce camera shake with two-pass stabilization",
|
|
},
|
|
"gif-to-video": {
|
|
name: "GIF to Video",
|
|
description: "Convert an animated GIF into an MP4 or WebM video",
|
|
},
|
|
"video-to-webp": {
|
|
name: "Video to WebP",
|
|
description: "Convert a video clip into an animated WebP image",
|
|
},
|
|
"video-to-frames": {
|
|
name: "Video to Frames",
|
|
description: "Extract frames from a video as a ZIP of images",
|
|
},
|
|
"merge-videos": {
|
|
name: "Merge Videos",
|
|
description: "Join multiple video clips into one file",
|
|
},
|
|
"replace-audio": {
|
|
name: "Replace Audio",
|
|
description: "Swap the audio track of a video with another file",
|
|
},
|
|
"burn-subtitles": {
|
|
name: "Burn Subtitles",
|
|
description: "Permanently render subtitles onto video frames",
|
|
},
|
|
"embed-subtitles": {
|
|
name: "Embed Subtitles",
|
|
description: "Mux a subtitle track into the video container",
|
|
},
|
|
"extract-subtitles": {
|
|
name: "Extract Subtitles",
|
|
description: "Pull the subtitle track out of a video as an SRT file",
|
|
},
|
|
"images-to-video": {
|
|
name: "Images to Video",
|
|
description: "Turn a set of images into a slideshow video",
|
|
},
|
|
"video-metadata": {
|
|
name: "Clean Video Metadata",
|
|
description: "Strip metadata from a video and report what was found",
|
|
},
|
|
"convert-audio": {
|
|
name: "Convert Audio",
|
|
description: "Convert audio between MP3, WAV, OGG, and more",
|
|
},
|
|
"trim-audio": {
|
|
name: "Trim Audio",
|
|
description: "Cut a section out of an audio file",
|
|
},
|
|
"extract-audio": {
|
|
name: "Extract Audio",
|
|
description: "Pull the audio track out of a video",
|
|
},
|
|
"volume-adjust": {
|
|
name: "Volume Adjust",
|
|
description: "Increase or decrease audio volume by a fixed gain",
|
|
},
|
|
"normalize-audio": {
|
|
name: "Normalize Audio",
|
|
description: "Even out loudness to broadcast standard levels",
|
|
},
|
|
"fade-audio": {
|
|
name: "Fade Audio",
|
|
description: "Add fade-in and fade-out effects to audio",
|
|
},
|
|
"reverse-audio": {
|
|
name: "Reverse Audio",
|
|
description: "Play audio backwards",
|
|
},
|
|
"audio-speed": {
|
|
name: "Audio Speed",
|
|
description: "Speed up or slow down audio playback",
|
|
},
|
|
"pitch-shift": {
|
|
name: "Pitch Shift",
|
|
description: "Raise or lower pitch by semitones without changing speed",
|
|
},
|
|
"audio-channels": {
|
|
name: "Audio Channels",
|
|
description: "Convert between mono, stereo, or swap left and right channels",
|
|
},
|
|
"silence-removal": {
|
|
name: "Silence Removal",
|
|
description: "Strip silent sections from audio",
|
|
},
|
|
"noise-reduction": {
|
|
name: "Noise Reduction",
|
|
description: "Reduce background noise with FFT-based denoising",
|
|
},
|
|
"merge-audio": {
|
|
name: "Merge Audio",
|
|
description: "Combine multiple audio files into one",
|
|
},
|
|
"split-audio": {
|
|
name: "Split Audio",
|
|
description: "Split audio by time, equal parts, or silence detection",
|
|
},
|
|
"ringtone-maker": {
|
|
name: "Ringtone Maker",
|
|
description: "Create a ringtone clip from any audio file",
|
|
},
|
|
"waveform-image": {
|
|
name: "Waveform Image",
|
|
description: "Generate a waveform visualization as a PNG image",
|
|
},
|
|
"audio-metadata": {
|
|
name: "Audio Metadata",
|
|
description: "View, edit, or strip audio tags (ID3)",
|
|
},
|
|
"merge-pdf": {
|
|
name: "Merge PDFs",
|
|
description: "Combine multiple PDFs into one",
|
|
},
|
|
"split-pdf": {
|
|
name: "Split PDF",
|
|
description: "Extract pages or split into parts",
|
|
},
|
|
"compress-pdf": {
|
|
name: "Compress PDF",
|
|
description: "Shrink PDF file size",
|
|
},
|
|
"rotate-pdf": {
|
|
name: "Rotate PDF",
|
|
description: "Rotate pages in a PDF",
|
|
},
|
|
"convert-document": {
|
|
name: "Convert Document",
|
|
description: "Convert between Word, OpenDocument, RTF, and plain text formats",
|
|
},
|
|
"convert-presentation": {
|
|
name: "Convert Presentation",
|
|
description: "Convert between PowerPoint and OpenDocument presentation formats",
|
|
},
|
|
"convert-spreadsheet": {
|
|
name: "Convert Spreadsheet",
|
|
description:
|
|
"Convert between Excel, OpenDocument, and CSV formats. Multi-sheet workbooks export the first sheet to CSV.",
|
|
},
|
|
"excel-to-pdf": {
|
|
name: "Excel to PDF",
|
|
description: "Convert spreadsheets to PDF. Wide sheets may paginate across multiple pages.",
|
|
},
|
|
"word-to-pdf": {
|
|
name: "Word to PDF",
|
|
description: "Convert Word documents to PDF",
|
|
},
|
|
"extract-pages": {
|
|
name: "Extract Pages",
|
|
description: "Pull selected pages into a new PDF",
|
|
},
|
|
"remove-pages": {
|
|
name: "Remove Pages",
|
|
description: "Delete specific pages from a PDF",
|
|
},
|
|
"organize-pdf": {
|
|
name: "Organize PDF",
|
|
description: "Reorder pages with an explicit page order",
|
|
},
|
|
"protect-pdf": {
|
|
name: "Protect PDF",
|
|
description: "Add password protection (AES-256 encryption)",
|
|
},
|
|
"unlock-pdf": {
|
|
name: "Unlock PDF",
|
|
description: "Remove password protection from a PDF",
|
|
},
|
|
"repair-pdf": {
|
|
name: "Repair PDF",
|
|
description: "Attempt to repair a damaged or corrupted PDF",
|
|
},
|
|
"linearize-pdf": {
|
|
name: "Web-Optimize PDF",
|
|
description: "Linearize a PDF for fast web viewing",
|
|
},
|
|
"grayscale-pdf": {
|
|
name: "Grayscale PDF",
|
|
description: "Convert all colors to grayscale",
|
|
},
|
|
"pdfa-convert": {
|
|
name: "PDF/A Convert",
|
|
description: "Convert to archival PDF/A-2",
|
|
},
|
|
"crop-pdf": {
|
|
name: "Crop PDF",
|
|
description: "Crop all pages with a uniform margin",
|
|
},
|
|
"nup-pdf": {
|
|
name: "N-up PDF",
|
|
description: "Arrange multiple pages per sheet",
|
|
},
|
|
"booklet-pdf": {
|
|
name: "Booklet PDF",
|
|
description: "Arrange pages for folding into a booklet",
|
|
},
|
|
"watermark-pdf": {
|
|
name: "Watermark PDF",
|
|
description: "Add a text watermark to every page",
|
|
},
|
|
"pdf-page-numbers": {
|
|
name: "PDF Page Numbers",
|
|
description: "Add page numbers to every page",
|
|
},
|
|
"flatten-pdf": {
|
|
name: "Flatten PDF",
|
|
description: "Bake forms and annotations into page content",
|
|
},
|
|
"redact-pdf": {
|
|
name: "Redact PDF",
|
|
description: "Permanently remove text occurrences (verified true redaction)",
|
|
},
|
|
"pdf-to-text": {
|
|
name: "PDF to Text",
|
|
description: "Extract plain text from a PDF",
|
|
},
|
|
"pdf-to-word": {
|
|
name: "PDF to Word",
|
|
description: "Best for text-based PDFs; scanned pages need OCR",
|
|
},
|
|
"pdf-metadata": {
|
|
name: "PDF Metadata",
|
|
description: "Read and write PDF document metadata",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
name: "PowerPoint to PDF",
|
|
description: "Convert presentations to PDF",
|
|
},
|
|
"html-to-pdf": {
|
|
name: "HTML to PDF",
|
|
description: "Convert an HTML file to PDF. Remote resources are disabled for privacy.",
|
|
},
|
|
"markdown-to-docx": {
|
|
name: "Markdown to Word",
|
|
description: "Convert a Markdown file to a Word document (DOCX)",
|
|
},
|
|
"markdown-to-html": {
|
|
name: "Markdown to HTML",
|
|
description:
|
|
"Convert a Markdown file to a standalone HTML page. Remote images in the source are left as-is in the output.",
|
|
},
|
|
"markdown-to-pdf": {
|
|
name: "Markdown to PDF",
|
|
description:
|
|
"Convert a Markdown file to a styled PDF. Remote resources are disabled for privacy.",
|
|
},
|
|
"epub-convert": {
|
|
name: "Convert EPUB",
|
|
description:
|
|
"Convert an EPUB to PDF, DOCX, HTML, or Markdown. Remote resources inside the book are not fetched.",
|
|
},
|
|
"to-epub": {
|
|
name: "Convert to EPUB",
|
|
description: "Convert Word, Markdown, HTML, or plain text files to EPUB",
|
|
},
|
|
"csv-excel": {
|
|
name: "CSV to Excel",
|
|
description: "Convert between CSV and Excel (XLSX), both directions",
|
|
},
|
|
"csv-json": {
|
|
name: "CSV to JSON",
|
|
description: "Convert between CSV and JSON, both directions",
|
|
},
|
|
"json-xml": {
|
|
name: "JSON to XML",
|
|
description: "Convert between JSON and XML, both directions",
|
|
},
|
|
"split-csv": {
|
|
name: "Split CSV",
|
|
description: "Split a CSV into smaller files by row count",
|
|
},
|
|
"merge-csvs": {
|
|
name: "Merge CSVs",
|
|
description: "Combine multiple CSV or TSV files with matching columns into one",
|
|
},
|
|
"yaml-json": {
|
|
name: "YAML / JSON",
|
|
description: "Convert between YAML and JSON, both directions",
|
|
},
|
|
"xml-to-csv": {
|
|
name: "XML to CSV",
|
|
description: "Extract repeating elements from XML into a CSV table",
|
|
},
|
|
"create-zip": {
|
|
name: "Create ZIP",
|
|
description: "Bundle multiple files into a single ZIP archive",
|
|
},
|
|
"extract-zip": {
|
|
name: "Extract ZIP",
|
|
description:
|
|
"Safely extract files from a ZIP archive with bomb protection. Single-file archives return the file directly.",
|
|
},
|
|
pipeline: { name: "Pipeline 빌더", description: "여러 도구를 워크플로로 연결" },
|
|
processing: { canceled: "Processing canceled" },
|
|
mediaPlayer: {
|
|
unsupported: "Your browser does not support this media format.",
|
|
},
|
|
documentView: {
|
|
loadFailed: "Failed to load document.",
|
|
previousPage: "Previous page",
|
|
nextPage: "Next page",
|
|
},
|
|
},
|
|
toolSettings: {
|
|
compress: {
|
|
compressionMode: "압축 모드",
|
|
targetSize: "목표 크기",
|
|
quality: "품질",
|
|
smallestFile: "최소 파일",
|
|
bestQuality: "최고 품질",
|
|
submit: "압축",
|
|
submitBatch: "압축 ({count}개 파일)",
|
|
progressLabel: "압축 중",
|
|
original: "원본: {size} KB",
|
|
processed: "처리 후: {size} KB",
|
|
saved: "절감: {percent}%",
|
|
},
|
|
resize: {
|
|
customSize: "맞춤 크기",
|
|
scale: "스케일",
|
|
presets: "프리셋",
|
|
contentAware: "콘텐츠 인식",
|
|
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: "위치 정보 발견",
|
|
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: "Output Format",
|
|
edgeSmoothing: "Edge Smoothing",
|
|
edgeSmoothingOff: "Off",
|
|
edgeSmoothingLight: "Light",
|
|
edgeSmoothingMedium: "Medium",
|
|
edgeSmoothingStrong: "Strong",
|
|
colorDecontamination: "Color Decontamination",
|
|
rendering: "렌더링 중...",
|
|
submit: "배경 제거",
|
|
submitBatch: "배경 제거 ({count}개 파일)",
|
|
progressLabel: "배경 제거 중",
|
|
},
|
|
upscale: {
|
|
scaleFactor: "확대 배율",
|
|
quality: "품질",
|
|
enhanceFaces: "얼굴 향상",
|
|
noiseReduction: "노이즈 감소",
|
|
noiseReductionHint:
|
|
"입자와 노이즈를 스무딩합니다. 값이 높을수록 노이즈 제거가 강하지만 디테일이 부드러워질 수 있습니다.",
|
|
outputFormat: "출력 포맷",
|
|
submit: "{scale}배 확대",
|
|
submitBatch: "{scale}배 확대 ({count}개 파일)",
|
|
progressLabel: "이미지 업스케일 중",
|
|
progressLabelBatch: "{count}개 이미지 업스케일 중",
|
|
},
|
|
"erase-object": {
|
|
brushSize: "브러시 크기",
|
|
fine: "가늘게",
|
|
wide: "굵게",
|
|
undo: "실행 취소",
|
|
clear: "지우기",
|
|
outputFormat: "출력 포맷",
|
|
quality: "품질",
|
|
paintHint: "제거할 객체 위를 칠하세요. Ctrl+Z로 실행 취소할 수 있습니다.",
|
|
submit: "객체 지우기",
|
|
submitBatch: "모두 지우기 ({count})",
|
|
progressLabel: "객체 지우는 중",
|
|
},
|
|
ocr: {
|
|
quality: "품질",
|
|
enhanceBeforeScanning: "스캔 전 향상",
|
|
enhanceHint:
|
|
"스캔 전에 자동으로 기울기 보정, 대비 향상, 노이즈 제거, 업스케일을 수행하여 인식 정확도를 높입니다.",
|
|
language: "언어",
|
|
autoDetect: "자동 감지",
|
|
extractedText: "추출된 텍스트",
|
|
noTextDetected: "이 이미지에서 텍스트가 감지되지 않았습니다",
|
|
characters: "{count}자",
|
|
submit: "텍스트 추출",
|
|
submitBatch: "텍스트 추출 ({count}개 파일)",
|
|
progressLabel: "텍스트 추출 중",
|
|
},
|
|
"ocr-pdf": {
|
|
quality: "품질",
|
|
language: "언어",
|
|
autoDetect: "자동 감지",
|
|
pages: "페이지",
|
|
pagesPlaceholder: "all, 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: "Download",
|
|
defaultText: "Your Text Here",
|
|
},
|
|
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: "Read Info",
|
|
reading: "Reading...",
|
|
channelStats: "Channel Stats",
|
|
yes: "Yes",
|
|
no: "No",
|
|
na: "N/A",
|
|
failedToRead: "Failed to read info",
|
|
},
|
|
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 File",
|
|
htmlFile: "HTML File",
|
|
url: "URL",
|
|
urlPlaceholder: "https://snapotter.com",
|
|
format: "Output Format",
|
|
quality: "Quality",
|
|
devicePreset: "Device",
|
|
viewportWidth: "Width",
|
|
viewportHeight: "Height",
|
|
fullPage: "Full Page",
|
|
submit: "Capture",
|
|
download: "Download Screenshot",
|
|
capturing: "Capturing webpage...",
|
|
errorTimeout: "Page took too long to load",
|
|
errorBlocked: "This URL cannot be captured",
|
|
errorUnavailable: "Screenshot service is not available",
|
|
errorFailed: "Failed to capture the page",
|
|
placeholder: "Enter a URL and click Capture",
|
|
presets: {
|
|
desktop: "Desktop",
|
|
tablet: "Tablet",
|
|
mobile: "Mobile",
|
|
custom: "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: "Circle Crop",
|
|
submitBatch: "Circle Crop ({count} files)",
|
|
progressLabel: "Cropping to circle",
|
|
},
|
|
duotone: {
|
|
shadow: "Shadow Color",
|
|
highlight: "Highlight Color",
|
|
submit: "Apply Duotone",
|
|
submitBatch: "Apply Duotone ({count} files)",
|
|
progressLabel: "Applying duotone",
|
|
},
|
|
"image-pad": {
|
|
target: "Target Ratio",
|
|
color: "Background Color",
|
|
submit: "Pad Image",
|
|
submitBatch: "Pad Image ({count} files)",
|
|
progressLabel: "Padding image",
|
|
},
|
|
pixelate: {
|
|
blockSize: "Block Size",
|
|
submit: "Pixelate",
|
|
submitBatch: "Pixelate ({count} files)",
|
|
progressLabel: "Pixelating",
|
|
},
|
|
vignette: {
|
|
strength: "Strength",
|
|
color: "Vignette Color",
|
|
submit: "Apply Vignette",
|
|
submitBatch: "Apply Vignette ({count} files)",
|
|
progressLabel: "Applying vignette",
|
|
},
|
|
"gif-webp": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting animation",
|
|
},
|
|
histogram: {
|
|
submit: "Generate Histogram",
|
|
submitBatch: "Generate Histogram ({count} files)",
|
|
progressLabel: "Generating histogram",
|
|
},
|
|
"lqip-placeholder": {
|
|
width: "Width",
|
|
blur: "Blur",
|
|
submit: "Generate Placeholder",
|
|
submitBatch: "Generate Placeholder ({count} files)",
|
|
progressLabel: "Generating placeholder",
|
|
},
|
|
"sprite-sheet": {
|
|
columns: "Columns",
|
|
padding: "Padding",
|
|
background: "Background Color",
|
|
submit: "Create Sprite Sheet",
|
|
submitBatch: "Create Sprite Sheet",
|
|
progressLabel: "Creating sprite sheet",
|
|
},
|
|
"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: "Text",
|
|
type: "Barcode Type",
|
|
scale: "Scale",
|
|
includeText: "Include Text",
|
|
submit: "Generate Barcode",
|
|
download: "Download Barcode",
|
|
},
|
|
"chart-maker": {
|
|
kind: "Chart Type",
|
|
title: "Title",
|
|
width: "Width",
|
|
height: "Height",
|
|
submit: "Create Chart",
|
|
submitBatch: "Create Chart ({count} files)",
|
|
progressLabel: "Creating chart",
|
|
},
|
|
"enhance-faces-standalone": {
|
|
model: "모델",
|
|
fast: "빠름",
|
|
balanced: "균형",
|
|
best: "최고",
|
|
},
|
|
"convert-video": {
|
|
format: "Output format",
|
|
quality: "Quality",
|
|
high: "High",
|
|
balanced: "Balanced",
|
|
small: "Smallest",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"compress-video": {
|
|
quality: "Compression",
|
|
light: "Light",
|
|
balanced: "Balanced",
|
|
strong: "Strong",
|
|
resolution: "Resolution",
|
|
original: "Original",
|
|
submit: "Compress",
|
|
submitBatch: "Compress ({count} files)",
|
|
progressLabel: "Compressing",
|
|
},
|
|
"trim-video": {
|
|
start: "Start (seconds)",
|
|
end: "End (seconds)",
|
|
precise: "Frame-accurate (re-encodes)",
|
|
submit: "Trim",
|
|
submitBatch: "Trim ({count} files)",
|
|
progressLabel: "Trimming",
|
|
},
|
|
"mute-video": {
|
|
submit: "Remove audio",
|
|
submitBatch: "Remove audio ({count} files)",
|
|
progressLabel: "Muting",
|
|
},
|
|
"video-to-gif": {
|
|
fps: "Frames per second",
|
|
width: "Width (px)",
|
|
start: "Start (seconds)",
|
|
duration: "Duration (seconds)",
|
|
submit: "Create GIF",
|
|
submitBatch: "Create GIFs ({count} files)",
|
|
progressLabel: "Creating GIF",
|
|
},
|
|
"resize-video": {
|
|
preset: "Preset",
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
hint: "Leave one dimension empty to keep aspect ratio",
|
|
submit: "Resize",
|
|
submitBatch: "Resize ({count} files)",
|
|
progressLabel: "Resizing",
|
|
},
|
|
"crop-video": {
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
x: "X offset",
|
|
y: "Y offset",
|
|
submit: "Crop",
|
|
submitBatch: "Crop ({count} files)",
|
|
progressLabel: "Cropping",
|
|
},
|
|
"rotate-video": {
|
|
transform: "Transform",
|
|
cw90: "Rotate 90 clockwise",
|
|
ccw90: "Rotate 90 counter-clockwise",
|
|
rotate180: "Rotate 180",
|
|
hflip: "Flip horizontal",
|
|
vflip: "Flip vertical",
|
|
submit: "Rotate",
|
|
submitBatch: "Rotate ({count} files)",
|
|
progressLabel: "Rotating",
|
|
},
|
|
"change-fps": {
|
|
fps: "Frames per second",
|
|
submit: "Change FPS",
|
|
submitBatch: "Change FPS ({count} files)",
|
|
progressLabel: "Changing FPS",
|
|
},
|
|
"video-color": {
|
|
brightness: "Brightness",
|
|
contrast: "Contrast",
|
|
saturation: "Saturation",
|
|
gamma: "Gamma",
|
|
submit: "Apply",
|
|
submitBatch: "Apply ({count} files)",
|
|
progressLabel: "Adjusting color",
|
|
},
|
|
"video-speed": {
|
|
factor: "Speed factor",
|
|
keepPitch: "Keep original pitch",
|
|
submit: "Change speed",
|
|
submitBatch: "Change speed ({count} files)",
|
|
progressLabel: "Changing speed",
|
|
},
|
|
"reverse-video": {
|
|
hint: "Limited to clips up to 5 minutes",
|
|
submit: "Reverse",
|
|
submitBatch: "Reverse ({count} files)",
|
|
progressLabel: "Reversing",
|
|
},
|
|
"video-loudnorm": {
|
|
hint: "Normalizes audio to EBU R128 broadcast standard",
|
|
submit: "Normalize",
|
|
submitBatch: "Normalize ({count} files)",
|
|
progressLabel: "Normalizing",
|
|
},
|
|
"aspect-pad": {
|
|
target: "Target ratio",
|
|
color: "Background color",
|
|
colorHint: "Hex color, e.g. #000000",
|
|
submit: "Pad",
|
|
submitBatch: "Pad ({count} files)",
|
|
progressLabel: "Padding",
|
|
},
|
|
"blur-pad": {
|
|
target: "Target ratio",
|
|
blur: "Blur strength",
|
|
submit: "Pad",
|
|
submitBatch: "Pad ({count} files)",
|
|
progressLabel: "Padding",
|
|
},
|
|
"watermark-video": {
|
|
text: "Watermark text",
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
opacity: "Opacity",
|
|
color: "Color",
|
|
colorHint: "Hex color, e.g. #ffffff",
|
|
submit: "Watermark",
|
|
submitBatch: "Watermark ({count} files)",
|
|
progressLabel: "Watermarking",
|
|
},
|
|
"stabilize-video": {
|
|
smoothing: "Smoothing",
|
|
hint: "Runs two passes and takes longer than most tools",
|
|
submit: "Stabilize",
|
|
submitBatch: "Stabilize ({count} files)",
|
|
progressLabel: "Stabilizing",
|
|
},
|
|
"gif-to-video": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"video-to-webp": {
|
|
fps: "Frames per second",
|
|
width: "Width (px)",
|
|
quality: "Quality",
|
|
loop: "Loop animation",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"video-to-frames": {
|
|
mode: "Extraction mode",
|
|
modeAll: "All frames",
|
|
modeNth: "Every Nth frame",
|
|
modeTimestamps: "Specific timestamps",
|
|
n: "Take every Nth frame",
|
|
timestamps: "Timestamps (seconds)",
|
|
timestampsHint: "Comma-separated, e.g. 0.5, 2, 4.5",
|
|
format: "Image format",
|
|
submit: "Extract Frames",
|
|
submitBatch: "Extract Frames ({count} files)",
|
|
progressLabel: "Extracting frames",
|
|
},
|
|
"merge-videos": {
|
|
hint: "Files are joined in upload order",
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"replace-audio": {
|
|
hint: "Upload the video first, then the audio",
|
|
submit: "Replace Audio",
|
|
submitBatch: "Replace Audio ({count} files)",
|
|
progressLabel: "Replacing audio",
|
|
},
|
|
"burn-subtitles": {
|
|
fontSize: "Font size",
|
|
hint: "Upload a video and a subtitle file (.srt or .vtt)",
|
|
submit: "Burn Subtitles",
|
|
submitBatch: "Burn Subtitles ({count} files)",
|
|
progressLabel: "Burning subtitles",
|
|
},
|
|
"embed-subtitles": {
|
|
language: "Language code",
|
|
languageHint: "Three-letter ISO 639-2 code, e.g. eng, spa, fra",
|
|
submit: "Embed Subtitles",
|
|
submitBatch: "Embed Subtitles ({count} files)",
|
|
progressLabel: "Embedding subtitles",
|
|
},
|
|
"extract-subtitles": {
|
|
submit: "Extract Subtitles",
|
|
submitBatch: "Extract Subtitles ({count} files)",
|
|
progressLabel: "Extracting subtitles",
|
|
},
|
|
"images-to-video": {
|
|
secondsPerImage: "Seconds per image",
|
|
resolution: "Resolution",
|
|
fps: "Frames per second",
|
|
submit: "Create Video",
|
|
submitBatch: "Create Video ({count} files)",
|
|
progressLabel: "Creating slideshow",
|
|
},
|
|
"video-metadata": {
|
|
hint: "Metadata report appears in the result",
|
|
submit: "Strip Metadata",
|
|
submitBatch: "Strip Metadata ({count} files)",
|
|
progressLabel: "Stripping metadata",
|
|
},
|
|
"convert-audio": {
|
|
format: "Output format",
|
|
bitrate: "Bitrate (kbps)",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"trim-audio": {
|
|
start: "Start (seconds)",
|
|
end: "End (seconds)",
|
|
submit: "Trim",
|
|
submitBatch: "Trim ({count} files)",
|
|
progressLabel: "Trimming",
|
|
},
|
|
"extract-audio": {
|
|
format: "Output format",
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"volume-adjust": {
|
|
"gain-db": "Gain (dB)",
|
|
submit: "Adjust Volume",
|
|
submitBatch: "Adjust Volume ({count} files)",
|
|
progressLabel: "Adjusting volume",
|
|
},
|
|
"normalize-audio": {
|
|
hint: "EBU R128 loudness normalization",
|
|
submit: "Normalize",
|
|
submitBatch: "Normalize ({count} files)",
|
|
progressLabel: "Normalizing",
|
|
},
|
|
"fade-audio": {
|
|
"fade-in-s": "Fade in (seconds)",
|
|
"fade-out-s": "Fade out (seconds)",
|
|
submit: "Apply Fade",
|
|
submitBatch: "Apply Fade ({count} files)",
|
|
progressLabel: "Applying fade",
|
|
},
|
|
"reverse-audio": {
|
|
submit: "Reverse",
|
|
submitBatch: "Reverse ({count} files)",
|
|
progressLabel: "Reversing",
|
|
},
|
|
"audio-speed": {
|
|
factor: "Speed factor",
|
|
submit: "Change Speed",
|
|
submitBatch: "Change Speed ({count} files)",
|
|
progressLabel: "Changing speed",
|
|
},
|
|
"pitch-shift": {
|
|
semitones: "Semitones",
|
|
hint: "0 semitones is not allowed",
|
|
submit: "Shift Pitch",
|
|
submitBatch: "Shift Pitch ({count} files)",
|
|
progressLabel: "Shifting pitch",
|
|
},
|
|
"audio-channels": {
|
|
mode: "Channel mode",
|
|
"stereo-to-mono": "Stereo to mono",
|
|
"mono-to-stereo": "Mono to stereo",
|
|
swap: "Swap left/right",
|
|
submit: "Convert Channels",
|
|
submitBatch: "Convert Channels ({count} files)",
|
|
progressLabel: "Converting channels",
|
|
},
|
|
"silence-removal": {
|
|
"threshold-db": "Silence threshold (dB)",
|
|
"min-silence-s": "Minimum silence duration (seconds)",
|
|
submit: "Remove Silence",
|
|
submitBatch: "Remove Silence ({count} files)",
|
|
progressLabel: "Removing silence",
|
|
},
|
|
"noise-reduction": {
|
|
strength: "Strength",
|
|
light: "Light",
|
|
medium: "Medium",
|
|
strong: "Strong",
|
|
submit: "Reduce Noise",
|
|
submitBatch: "Reduce Noise ({count} files)",
|
|
progressLabel: "Reducing noise",
|
|
},
|
|
"merge-audio": {
|
|
format: "Output format",
|
|
mp3: "MP3",
|
|
wav: "WAV",
|
|
flac: "FLAC",
|
|
m4a: "M4A",
|
|
"order-hint": "Files will be joined in upload order",
|
|
submit: "Merge Audio",
|
|
submitBatch: "Merge Audio ({count} files)",
|
|
progressLabel: "Merging audio",
|
|
},
|
|
"split-audio": {
|
|
mode: "Split mode",
|
|
time: "By time",
|
|
parts: "Equal parts",
|
|
silence: "By silence",
|
|
"segment-s": "Segment length (seconds)",
|
|
"num-parts": "Number of parts",
|
|
"threshold-db": "Silence threshold (dB)",
|
|
"min-silence-s": "Minimum silence duration (seconds)",
|
|
submit: "Split Audio",
|
|
submitBatch: "Split Audio ({count} files)",
|
|
progressLabel: "Splitting audio",
|
|
},
|
|
"ringtone-maker": {
|
|
"start-s": "Start time (seconds)",
|
|
"duration-s": "Duration (seconds)",
|
|
"max-hint": "Maximum 30 seconds",
|
|
submit: "Create Ringtone",
|
|
submitBatch: "Create Ringtone ({count} files)",
|
|
progressLabel: "Creating ringtone",
|
|
},
|
|
"waveform-image": {
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
color: "Waveform color",
|
|
submit: "Generate Waveform",
|
|
submitBatch: "Generate Waveform ({count} files)",
|
|
progressLabel: "Generating waveform",
|
|
},
|
|
"audio-metadata": {
|
|
strip: "Strip all metadata",
|
|
title: "Title",
|
|
artist: "Artist",
|
|
album: "Album",
|
|
submit: "Apply Metadata",
|
|
submitBatch: "Apply Metadata ({count} files)",
|
|
progressLabel: "Applying metadata",
|
|
},
|
|
"merge-pdf": {
|
|
addFiles: "Add PDFs to merge",
|
|
needTwo: "At least two PDFs are required",
|
|
orderHint: "{count} PDFs will merge in this order",
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"split-pdf": {
|
|
mode: "Split mode",
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 7-z",
|
|
everyN: "Pages per part",
|
|
submit: "Split",
|
|
submitBatch: "Split ({count} files)",
|
|
progressLabel: "Splitting",
|
|
},
|
|
"compress-pdf": {
|
|
preset: "Quality preset",
|
|
screen: "Screen (smallest)",
|
|
ebook: "Ebook (balanced)",
|
|
printer: "Printer (best quality)",
|
|
submit: "Compress",
|
|
submitBatch: "Compress ({count} files)",
|
|
progressLabel: "Compressing",
|
|
},
|
|
"rotate-pdf": {
|
|
angle: "Rotation angle",
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 1-z (all pages)",
|
|
submit: "Rotate",
|
|
submitBatch: "Rotate ({count} files)",
|
|
progressLabel: "Rotating",
|
|
},
|
|
"convert-document": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"convert-presentation": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"convert-spreadsheet": {
|
|
format: "Output format",
|
|
hint: "Multi-sheet workbooks export the first sheet to CSV.",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"excel-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"word-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"extract-pages": {
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 7-z",
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"remove-pages": {
|
|
pages: "Pages to remove",
|
|
pagesHint: "e.g. 2, 4-6, z (last page)",
|
|
submit: "Remove",
|
|
submitBatch: "Remove ({count} files)",
|
|
progressLabel: "Removing",
|
|
},
|
|
"organize-pdf": {
|
|
order: "Page order",
|
|
orderHint: "e.g. 3,1,2 or 1-z (identity)",
|
|
submit: "Reorder",
|
|
submitBatch: "Reorder ({count} files)",
|
|
progressLabel: "Reordering",
|
|
},
|
|
"protect-pdf": {
|
|
userPassword: "User password",
|
|
ownerPassword: "Owner password (optional)",
|
|
ownerPasswordHint: "Defaults to user password if empty",
|
|
submit: "Protect",
|
|
submitBatch: "Protect ({count} files)",
|
|
progressLabel: "Encrypting",
|
|
},
|
|
"unlock-pdf": {
|
|
password: "Password",
|
|
submit: "Unlock",
|
|
submitBatch: "Unlock ({count} files)",
|
|
progressLabel: "Decrypting",
|
|
},
|
|
"repair-pdf": {
|
|
submit: "Repair",
|
|
submitBatch: "Repair ({count} files)",
|
|
progressLabel: "Repairing",
|
|
},
|
|
"linearize-pdf": {
|
|
submit: "Optimize",
|
|
submitBatch: "Optimize ({count} files)",
|
|
progressLabel: "Linearizing",
|
|
},
|
|
"grayscale-pdf": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"pdfa-convert": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"crop-pdf": {
|
|
margin: "Margin (points)",
|
|
submit: "Crop",
|
|
submitBatch: "Crop ({count} files)",
|
|
progressLabel: "Cropping",
|
|
},
|
|
"nup-pdf": {
|
|
perSheet: "Pages per sheet",
|
|
submit: "Arrange",
|
|
submitBatch: "Arrange ({count} files)",
|
|
progressLabel: "Arranging",
|
|
},
|
|
"booklet-pdf": {
|
|
perSheet: "Pages per sheet",
|
|
submit: "Create Booklet",
|
|
submitBatch: "Create Booklet ({count} files)",
|
|
progressLabel: "Creating booklet",
|
|
},
|
|
"watermark-pdf": {
|
|
text: "Watermark text",
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
opacity: "Opacity",
|
|
rotation: "Rotation",
|
|
submit: "Watermark",
|
|
submitBatch: "Watermark ({count} files)",
|
|
progressLabel: "Watermarking",
|
|
},
|
|
"pdf-page-numbers": {
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
submit: "Add Numbers",
|
|
submitBatch: "Add Numbers ({count} files)",
|
|
progressLabel: "Numbering",
|
|
},
|
|
"flatten-pdf": {
|
|
submit: "Flatten",
|
|
submitBatch: "Flatten ({count} files)",
|
|
progressLabel: "Flattening",
|
|
},
|
|
"redact-pdf": {
|
|
terms: "Terms to redact",
|
|
termsHint: "One term per line (max 50)",
|
|
caseSensitive: "Case sensitive",
|
|
submit: "Redact",
|
|
submitBatch: "Redact ({count} files)",
|
|
progressLabel: "Redacting",
|
|
},
|
|
"pdf-to-text": {
|
|
submit: "Extract Text",
|
|
submitBatch: "Extract Text ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"pdf-to-word": {
|
|
hint: "Best for text-based PDFs; scanned pages need OCR",
|
|
submit: "Convert to Word",
|
|
submitBatch: "Convert to Word ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"pdf-metadata": {
|
|
title: "Title",
|
|
author: "Author",
|
|
subject: "Subject",
|
|
keywords: "Keywords",
|
|
submit: "Set Metadata",
|
|
submitBatch: "Set Metadata ({count} files)",
|
|
progressLabel: "Setting metadata",
|
|
},
|
|
"html-to-pdf": {
|
|
hint: "Remote resources are disabled for privacy.",
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert to PDF ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-docx": {
|
|
submit: "Convert to DOCX",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-html": {
|
|
hint: "Remote images in the source are left as-is in the output.",
|
|
submit: "Convert to HTML",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-pdf": {
|
|
hint: "Remote resources are disabled for privacy.",
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert to PDF ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"epub-convert": {
|
|
format: "Output format",
|
|
hint: "Remote resources inside the book are not fetched.",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"to-epub": {
|
|
submit: "Convert to EPUB",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"csv-excel": {
|
|
sheet: "Worksheet number",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"csv-json": {
|
|
pretty: "Pretty print",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"json-xml": {
|
|
pretty: "Pretty print",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"split-csv": {
|
|
rowsPerFile: "Rows per file",
|
|
keepHeader: "Keep header in each file",
|
|
submit: "Split",
|
|
submitBatch: "Split ({count} files)",
|
|
progressLabel: "Splitting",
|
|
},
|
|
"merge-csvs": {
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"yaml-json": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"xml-to-csv": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"create-zip": {
|
|
submit: "Create ZIP",
|
|
submitBatch: "Create ZIP ({count} files)",
|
|
progressLabel: "Zipping",
|
|
},
|
|
"extract-zip": {
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
},
|
|
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: "This tool has been disabled by your administrator",
|
|
browseOtherTools: "Browse other tools",
|
|
privacyNote: "Files are processed on your server and never leave your network",
|
|
applyAndDownload: "적용 및 다운로드",
|
|
andMore: "and {count} more",
|
|
importFromFiles: "Import from Files",
|
|
saveToFiles: "Save to Files",
|
|
savedToFiles: "Saved to Files",
|
|
adjustSettings: "Adjust settings",
|
|
startOver: "Start over with a new file",
|
|
newFile: "New file",
|
|
previewUnavailable: "Preview will be available after processing",
|
|
generatePreview: "Generate Preview",
|
|
previewFailed: "Preview generation failed",
|
|
backToTools: "Back to Tools",
|
|
original: "Original",
|
|
processed: "Processed",
|
|
saved: "Saved",
|
|
noChange: "no change",
|
|
download: "Download",
|
|
settingsSaved: "설정이 저장되었습니다.",
|
|
tryAgain: "다시 시도",
|
|
tryDifferentFile: "다른 파일 시도",
|
|
batchPartialSuccess: "{success} of {total} processed. {failed} failed.",
|
|
dataResultsHint: "Results shown above. Use the copy button in the results panel.",
|
|
downloadAsFile: "Download as file",
|
|
downloadAll: "Download All",
|
|
downloadFiles: "Download {count} files",
|
|
},
|
|
homePage: {
|
|
generatingPreview: "미리보기 생성 중...",
|
|
loadingPreview: "미리보기 로딩 중...",
|
|
changeFile: "파일 변경",
|
|
quickActions: "빠른 실행",
|
|
allTools: "모든 도구",
|
|
searchPlaceholder: "Search {count} tools...",
|
|
recent: "Recent",
|
|
popular: "Popular",
|
|
browseByCategory: "Browse by Category",
|
|
gettingStarted: "Getting Started",
|
|
noToolsMatch: "No tools match '{query}'",
|
|
clearSearch: "Clear search",
|
|
all: "All",
|
|
documents: "Documents",
|
|
data: "Data",
|
|
toolCount: "{count} tools",
|
|
},
|
|
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: "Shape",
|
|
fill: "Fill",
|
|
stroke: "Stroke",
|
|
strokeWidth: "Width",
|
|
cornerRadius: "Radius",
|
|
sides: "Sides",
|
|
points: "Points",
|
|
dashStyle: "Dash",
|
|
solid: "Solid",
|
|
dashed: "Dashed",
|
|
dotted: "Dotted",
|
|
none: "None",
|
|
opacity: "Opacity",
|
|
rectangle: "Rectangle",
|
|
ellipse: "Ellipse",
|
|
line: "Line",
|
|
arrow: "Arrow",
|
|
polygon: "Polygon",
|
|
star: "Star",
|
|
},
|
|
},
|
|
settings: {
|
|
heading: "설정",
|
|
nav: {
|
|
general: "일반",
|
|
systemSettings: "시스템 설정",
|
|
security: "보안",
|
|
people: "멤버",
|
|
teams: "팀",
|
|
roles: "역할",
|
|
auditLog: "감사 로그",
|
|
usage: "Usage",
|
|
apiKeys: "API 키",
|
|
aiFeatures: "AI 기능",
|
|
tools: "도구",
|
|
productAnalytics: "제품 분석",
|
|
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: "Download Support Bundle",
|
|
supportBundleDescription:
|
|
"Download a diagnostic zip with redacted config, logs, and job data for troubleshooting.",
|
|
supportBundleFailed: "Failed to download support bundle.",
|
|
},
|
|
security: {
|
|
heading: "보안",
|
|
description: "비밀번호 및 인증 설정.",
|
|
changePasswordHeading: "비밀번호 변경",
|
|
currentPasswordPlaceholder: "현재 비밀번호",
|
|
newPasswordPlaceholder: "새 비밀번호",
|
|
confirmPasswordPlaceholder: "새 비밀번호 확인",
|
|
passwordsMismatch: "비밀번호가 일치하지 않습니다",
|
|
passwordTooShort: "비밀번호는 4자 이상이어야 합니다",
|
|
changeSuccess: "비밀번호가 변경되었습니다",
|
|
changeFailed: "비밀번호 변경에 실패했습니다",
|
|
currentPasswordIncorrect: "현재 비밀번호가 올바르지 않습니다",
|
|
changePasswordButton: "비밀번호 변경",
|
|
loginAttemptLimitNote: "로그인 시도 제한은 시스템 설정에서 구성할 수 있습니다.",
|
|
adminHeading: "Admin Security Settings",
|
|
adminDescription: "Enterprise security policy settings. These apply to all users.",
|
|
sessionIdleTimeout: "Session Idle Timeout (minutes)",
|
|
sessionIdleTimeoutDesc: "Automatically log out idle sessions. 0 = disabled.",
|
|
maxSessionsPerUser: "Max Sessions Per User",
|
|
maxSessionsPerUserDesc: "Limit concurrent sessions per user. 0 = unlimited.",
|
|
mfaPolicy: "MFA Policy",
|
|
mfaPolicyDesc: "Require multi-factor authentication for users.",
|
|
mfaPolicyOptional: "Optional",
|
|
mfaPolicyAdminsOnly: "Required for admins",
|
|
mfaPolicyRequired: "Required for all users",
|
|
ssoEnforcement: "SSO Enforcement",
|
|
ssoEnforcementDesc: "Require SSO login for all non-break-glass users.",
|
|
ssoBreakGlassUsername: "Break Glass Admin Username",
|
|
ssoBreakGlassUsernameDesc:
|
|
"This admin can still log in with local credentials when SSO is enforced.",
|
|
passwordMinLength: "Minimum Password Length",
|
|
passwordMinLengthDesc: "Minimum number of characters required for passwords.",
|
|
passwordRequireUppercase: "Require Uppercase",
|
|
passwordRequireUppercaseDesc: "Require at least one uppercase letter.",
|
|
passwordRequireNumber: "Require Number",
|
|
passwordRequireNumberDesc: "Require at least one number.",
|
|
passwordRequireSpecial: "Require Special Character",
|
|
passwordRequireSpecialDesc: "Require at least one special character.",
|
|
passwordPolicyHeading: "Password Policy",
|
|
securitySettingsSaved: "Security settings saved",
|
|
securitySettingsFailed: "Failed to save security settings",
|
|
},
|
|
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: "Storage Quota (MB)",
|
|
teamStorageQuotaDesc: "Maximum storage for this team in MB. Leave empty for no limit.",
|
|
teamRetentionHours: "Retention (hours)",
|
|
teamRetentionHoursDesc:
|
|
"Processing file retention for this team. Leave empty to use global default.",
|
|
quotaSaved: "Team settings saved",
|
|
},
|
|
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: "Usage",
|
|
description: "Local usage statistics from jobs and file storage.",
|
|
periodLabel: "Period",
|
|
days7: "7 days",
|
|
days30: "30 days",
|
|
days90: "90 days",
|
|
jobsPerDayHeading: "Jobs per day",
|
|
topToolsHeading: "Top tools",
|
|
perUserHeading: "Per-user volume",
|
|
durationsHeading: "Duration percentiles",
|
|
noData: "No data for this period.",
|
|
dayColumn: "Day",
|
|
totalColumn: "Total",
|
|
completedColumn: "Completed",
|
|
failedColumn: "Failed",
|
|
toolColumn: "Tool",
|
|
runsColumn: "Runs",
|
|
userColumn: "User",
|
|
bytesInColumn: "Bytes in",
|
|
poolColumn: "Pool",
|
|
p50Column: "p50",
|
|
p95Column: "p95",
|
|
storageHeading: "Library storage",
|
|
storageFiles: "{count} files",
|
|
unknownUser: "(unknown)",
|
|
storageByTeam: "Storage by Team",
|
|
teamColumn: "Team",
|
|
storageColumn: "Storage",
|
|
usersColumn: "Users",
|
|
},
|
|
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: "Data Retention",
|
|
fileMaxAgeHours: "Processing file retention (hours)",
|
|
fileMaxAgeHoursDesc: "How long to keep uploaded and processed files. Default: 72 hours.",
|
|
jobsRetentionDays: "Job record retention (days)",
|
|
jobsRetentionDaysDesc: "How long to keep job metadata. 0 = keep forever. Default: 30 days.",
|
|
auditRetentionDays: "Audit log retention (days)",
|
|
auditRetentionDaysDesc:
|
|
"How long to keep audit log entries. 0 = keep forever. Default: forever.",
|
|
},
|
|
analytics: {
|
|
heading: "제품 분석",
|
|
description: "익명 사용 데이터를 공유하여 SnapOtter 개선에 도움을 주세요.",
|
|
privacyNote: "이미지는 절대 기기 밖으로 나가지 않습니다.",
|
|
disabledByAdmin: "서버 관리자가 제품 분석을 비활성화했습니다.",
|
|
enabledLabel: "분석 활성화됨",
|
|
disabledLabel: "분석 비활성화됨",
|
|
learnMore: "자세히 알아보기",
|
|
},
|
|
aiFeatures: {
|
|
title: "AI Features",
|
|
description: "Manage AI model bundles for advanced image processing.",
|
|
installAll: "Install All",
|
|
diskUsage: "Disk usage:",
|
|
installed: "Installed",
|
|
notInstalled: "Not installed",
|
|
queued: "Queued",
|
|
install: "Install",
|
|
repair: "Repair",
|
|
uninstall: "Uninstall",
|
|
installing: "Installing...",
|
|
importBundle: "Import Bundle",
|
|
importDescription: "Upload a .tar.gz bundle archive exported from another installation.",
|
|
importButton: "Import from file",
|
|
importing: "Importing...",
|
|
importSuccess: "Bundle imported successfully.",
|
|
importError: "Bundle import failed: {error}",
|
|
},
|
|
about: {
|
|
heading: "정보",
|
|
appName: "SnapOtter",
|
|
appDescription:
|
|
"셀프 호스팅, 개인정보 우선의 이미지 처리 도구 모음으로 70+개의 도구를 제공합니다. 리사이즈, 압축, 변환, 워터마크 추가 등 이미지 워크플로를 클라우드에 데이터를 보내지 않고 자동화할 수 있습니다.",
|
|
versionLabel: "버전:",
|
|
linksHeading: "링크",
|
|
githubLink: "GitHub 저장소",
|
|
docsLink: "문서",
|
|
apiRefLink: "API 레퍼런스 (Swagger)",
|
|
licenseLabel: "License:",
|
|
licenseDescription:
|
|
"SnapOtter is open-source software licensed under the 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 authentication failed. Please try again.",
|
|
samlUserNotAuthorized:
|
|
"Your account is not authorized to access this application. Contact your administrator.",
|
|
samlUserLimitReached: "User limit reached. Contact your administrator.",
|
|
ssoEnforcedLocalRestricted: "Local login is restricted to authorized administrators.",
|
|
mfaRequired: "Enter your authentication code",
|
|
mfaRecoveryHint: "You can also use a recovery code",
|
|
verify: "Verify",
|
|
verifying: "Verifying...",
|
|
mfaInvalidCode: "Invalid code. Please try again.",
|
|
mfaEnrollmentRequired:
|
|
"Your organization requires multi-factor authentication. Please set up MFA in your account settings.",
|
|
methodSaml: "SAML",
|
|
passwordManagedByProvider: "비밀번호는 ID 제공자에서 관리됩니다.",
|
|
enterUsername: "사용자명 입력",
|
|
enterPassword: "비밀번호 입력",
|
|
heroTitle: "당신의 이미지는, 당신의 것입니다.",
|
|
heroSubtitle: "필요한 모든 이미지 도구가 여기에.",
|
|
rotatingPhrases: [
|
|
"가입도 필요 없고, 계정도 필요 없어요.",
|
|
"클라우드 업로드? 절대 없습니다.",
|
|
"100% 로컬 처리.",
|
|
"무료. 영원히 무료.",
|
|
"제한 없음. 숨겨진 상한 없음.",
|
|
"완전히 오프라인으로 작동해요.",
|
|
"무제한 일괄 처리.",
|
|
"70+개의 이미지 도구.",
|
|
"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: "저장됨",
|
|
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: "No steps yet",
|
|
searchToolsPlaceholder: "Search tools...",
|
|
step: "단계",
|
|
},
|
|
nav: {
|
|
tools: "도구",
|
|
reader: "리더",
|
|
automate: "자동화",
|
|
editor: "에디터",
|
|
files: "파일",
|
|
help: "도움말",
|
|
settings: "설정",
|
|
grid: "그리드",
|
|
},
|
|
files: {
|
|
myFiles: "My Files",
|
|
recentTab: "Recent",
|
|
uploadTab: "Upload Files",
|
|
fileDetailsAriaLabel: "File Details",
|
|
fileDetailsHeading: "File Details",
|
|
searchPlaceholder: "Search files...",
|
|
selectedCount: "{count} selected",
|
|
fileCount: "{count} files",
|
|
fileCountSingular: "{count} file",
|
|
noFilesFound: "No files found",
|
|
selectFilePrompt: "Select a file to view details",
|
|
openFile: "Open File",
|
|
selectFile: "Select File",
|
|
openInPipeline: "Open in Pipeline",
|
|
dropFilesHere: "Drop files here",
|
|
orClickToSelect: "or click to select files",
|
|
name: "Name",
|
|
format: "Format",
|
|
size: "Size",
|
|
dimensions: "Dimensions",
|
|
version: "Version",
|
|
toolsUsed: "Tools Used",
|
|
none: "None",
|
|
delete: "Delete",
|
|
pipeline: "Pipeline",
|
|
download: "Download",
|
|
},
|
|
dropzone: {
|
|
unsupportedFileType: "이 도구에서 지원하지 않는 파일 형식입니다",
|
|
urlFetchFailed: "URL에서 이미지를 가져올 수 없습니다",
|
|
ariaLabel: "파일 드롭 영역",
|
|
dropPrompt: "여기에 이미지를 드롭하세요",
|
|
browseOrPaste: "아무 곳이나 클릭하여 파일 탐색, 또는 클립보드에서 붙여넣기",
|
|
uploadButton: "업로드",
|
|
defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD 외 65가지 이상의 포맷",
|
|
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: "Repair Required",
|
|
repairDescription: "Some model files are missing or corrupted. Repair will re-download them.",
|
|
repairButton: "Repair {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: "연결 오류",
|
|
},
|
|
analytics: {
|
|
consentTitle: "SnapOtter 개선에 도움을 주세요",
|
|
consentDescription:
|
|
"익명 사용 데이터는 버그 수정과 정말 필요한 도구 개발에 도움이 됩니다. 이미지와 파일은 항상 사용자의 기기에 머물러요.",
|
|
consentChangeable: "설정에서 언제든 끌 수 있어요.",
|
|
acceptButton: "네, 좋아요",
|
|
declineButton: "지금은 괜찮아요",
|
|
settingsTitle: "제품 분석",
|
|
settingsDescription: "익명 사용 데이터를 공유하여 SnapOtter 개선에 도움을 주세요.",
|
|
settingsPrivacy: "이미지는 절대 기기 밖으로 나가지 않습니다.",
|
|
settingsDisabledByAdmin: "서버 관리자가 제품 분석을 비활성화했습니다.",
|
|
learnMore: "자세히 알아보기",
|
|
},
|
|
sidebar: {
|
|
tools: "도구",
|
|
grid: "그리드",
|
|
automate: "자동화",
|
|
editor: "에디터",
|
|
files: "파일",
|
|
help: "도움말",
|
|
settings: "설정",
|
|
},
|
|
toolCard: {
|
|
addToFavourites: "즐겨찾기에 추가",
|
|
},
|
|
appLayout: {
|
|
mobileNavTools: "도구",
|
|
mobileNavAutomate: "자동화",
|
|
mobileNavEditor: "에디터",
|
|
mobileNavFiles: "파일",
|
|
mobileNavSettings: "설정",
|
|
},
|
|
a11y: {
|
|
skipToContent: "Skip to main content",
|
|
openSidebar: "Open sidebar",
|
|
closeSidebar: "Close sidebar",
|
|
closeSettings: "Close settings",
|
|
closeHelp: "Close help",
|
|
closeDialog: "Close dialog",
|
|
zoomIn: "Zoom in",
|
|
zoomOut: "Zoom out",
|
|
fitToView: "Fit to view",
|
|
actualSize: "Actual size",
|
|
previousImage: "Previous image",
|
|
nextImage: "Next image",
|
|
imageArea: "Image area",
|
|
imageViewer: "Image viewer",
|
|
fileDropZone: "File drop zone",
|
|
imageDropZone: "Image drop zone",
|
|
beforeAfterSlider: "Before/after comparison slider",
|
|
imageControls: "Image controls",
|
|
zoomControls: "Zoom controls",
|
|
dragToReorder: "Drag to reorder",
|
|
whiteBackground: "White background",
|
|
blackBackground: "Black background",
|
|
expandPanel: "Expand panel",
|
|
collapsePanel: "Collapse panel",
|
|
swapDimensions: "Swap dimensions",
|
|
applyCrop: "Apply crop",
|
|
cancelCrop: "Cancel crop",
|
|
fontFamily: "Font family",
|
|
textColor: "Text color",
|
|
flipHorizontal: "Flip horizontal",
|
|
flipVertical: "Flip vertical",
|
|
hexColorValue: "Hex color value",
|
|
backgroundColor: "Background color",
|
|
foregroundColor: "Foreground color",
|
|
swapColors: "Swap foreground and background colors",
|
|
resetColors: "Reset to default black and white",
|
|
foregroundHex: "Foreground color hex value",
|
|
undo: "Undo",
|
|
redo: "Redo",
|
|
layers: "Layers",
|
|
addLayer: "Add layer",
|
|
deleteLayer: "Delete layer",
|
|
cancelOperation: "Cancel operation",
|
|
fill: "Fill",
|
|
fileDetails: "File details",
|
|
language: "Language",
|
|
selected: "Selected",
|
|
deleteKey: "Delete key",
|
|
editRole: "Edit role",
|
|
deleteRole: "Delete role",
|
|
notInstalled: "Not installed",
|
|
queued: "Queued for install",
|
|
installing: "Installing",
|
|
imageNOfTotal: "Image {n} of {total}",
|
|
processingComplete: "Image processed successfully",
|
|
processingFailed: "Processing failed",
|
|
settingsDialog: "Settings",
|
|
helpDialog: "Help",
|
|
navigationMenu: "Navigation",
|
|
},
|
|
} as const;
|
|
|
|
export default ko;
|