Files
SnapOtter/packages/shared/src/i18n/zh-TW.ts
T

3378 lines
112 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { TranslationKeys } from "./en.js";
export const zhTW: TranslationKeys = {
common: {
upload: "從電腦上傳",
process: "處理",
download: "下載",
cancel: "取消",
save: "儲存",
delete: "刪除",
settings: "設定",
search: "搜尋工具...",
dropFiles: "拖放檔案至此處或點擊上傳按鈕",
loading: "載入中...",
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: "覆疊Logo作為浮水印" },
"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: "產生自訂色彩、圖案和Logo的QR碼",
},
"html-to-image": {
name: "HTML to Image",
description: "Capture webpages as high-quality images",
},
"barcode-read": {
name: "條碼讀取器",
description: "掃描影像中的QR碼、條碼和二維碼",
},
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,每頁一張影像",
separatePdfMode: "獨立PDF,每張影像一個",
combineAllImages: "將所有影像合併為一個PDF",
pageSize: "頁面大小",
orientation: "方向",
portrait: "直向",
landscape: "橫向",
margin: "邊距",
targetSizeLabel: "目標檔案大小(選填)",
targetSizePlaceholder: "例如2",
targetSizeHint: "留空表示最高品質",
targetSizeMet: "已達到目標",
targetSizeNotMet: "無法達到目標。檔案已壓縮至最低品質。",
targetSizeTooSmall: "目標至少為50KB",
jpegQualityLabel: "使用的JPEG品質",
noImage: "無影像",
submitCollate: "建立PDF{count}頁)",
submitSeparate: "建立{count}個PDF",
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: "AI降噪處理GIF檔案時僅處理第一影格。對於動態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: "尺寸(毫米)",
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: "簡訊",
styling: "樣式",
dotStyle: "點樣式",
cornerSquareStyle: "角方塊樣式",
cornerDotStyle: "角點樣式",
foregroundColor: "前景色",
bgColor: "背景色",
logo: "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: "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",
adjustSettings: "Adjust settings",
startOver: "Start over with a new file",
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: "無法連線到身分提供者,請稍後重試。",
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: "密碼由您的身分提供者管理。",
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",
openInPipeline: "Open in Pipeline",
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: "不到一分鐘",
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 zhTW;