mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
3416 lines
158 KiB
TypeScript
3416 lines
158 KiB
TypeScript
import type { TranslationKeys } from "./en.js";
|
|
|
|
export const th: 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: "แยกข้อความจากเอกสาร PDF ด้วย OCR ที่ขับเคลื่อนด้วย AI",
|
|
},
|
|
"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: "สร้างคิวอาร์โค้ด",
|
|
description: "สร้างคิวอาร์โค้ดพร้อมสไตล์ สี ลวดลาย และโลโก้ที่กำหนดเอง",
|
|
},
|
|
"html-to-image": {
|
|
name: "HTML to Image",
|
|
description: "Capture webpages as high-quality images",
|
|
},
|
|
"barcode-read": {
|
|
name: "อ่านบาร์โค้ด",
|
|
description: "สแกนภาพเพื่อหาคิวอาร์โค้ด บาร์โค้ด และโค้ด 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 เดียว หนึ่งภาพต่อหนึ่งหน้า",
|
|
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}x",
|
|
submitBatch: "ขยาย {scale}x ({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 หาบริเวณที่มีรายละเอียดและข้อมูลมากที่สุด",
|
|
attention: "Attention",
|
|
entropy: "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: "ขนาด (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: "สร้างคิวอาร์โค้ด",
|
|
download: "ดาวน์โหลดคิวอาร์โค้ด",
|
|
},
|
|
"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",
|
|
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",
|
|
},
|
|
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: "จัดการคีย์ API สำหรับเข้าถึง SnapOtter แบบโปรแกรม",
|
|
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 container เดียว",
|
|
"โอเพนซอร์ส ตลอดไป",
|
|
"ทุกพิกเซลอยู่บนเครื่องของคุณ",
|
|
"เซิร์ฟเวอร์คุณ กฎคุณ",
|
|
"ติดตั้งด้วย 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: "ไม่ใช่ไฟล์ Pipeline SnapOtter ที่ถูกต้อง",
|
|
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: "ไปที่ข้อมูลภาพ",
|
|
},
|
|
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;
|