mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
refactor(shared): modality-scoped tool categories, dissolve ai category
Replace the flat 12-category structure with 27 modality-scoped sub-categories. The cross-modality "ai" category is dissolved: each AI tool moves into its natural modality's sub-category (e.g. remove-background -> image/enhance, auto-subtitles -> video/subtitles, ocr -> documents/convert, transcribe-audio -> audio/convert). New category hierarchy: - Image (8): essentials, adjustments, enhance, watermark, layout, utilities, optimization, format - Video (5): video-edit, video-convert, video-effects, video-subtitles, video-metadata - Audio (4): audio-edit, audio-convert, audio-effects, audio-metadata - Documents (5): pdf-organize, pdf-edit, pdf-security, pdf-optimize, doc-convert - Data (2): data, archives No tool IDs, routes, or backend behavior changed. Category labels updated across all 21 locales.
This commit is contained in:
+127
-110
@@ -2,18 +2,35 @@ import { AUDIO_INPUTS, IMAGE_INPUTS, SUBTITLE_INPUTS, VIDEO_INPUTS } from "./mod
|
||||
import type { CategoryInfo, SocialMediaPreset, Tool } from "./types.js";
|
||||
|
||||
export const CATEGORIES: CategoryInfo[] = [
|
||||
// Image
|
||||
{ id: "essentials", name: "Essentials", icon: "Layers", color: "#3B82F6" },
|
||||
{ id: "optimization", name: "Optimization", icon: "Zap", color: "#10B981" },
|
||||
{ id: "adjustments", name: "Adjustments", icon: "SlidersHorizontal", color: "#8B5CF6" },
|
||||
{ id: "enhance", name: "Enhance & AI", icon: "Sparkles", color: "#F59E0B" },
|
||||
{ id: "watermark", name: "Watermark & Overlay", icon: "Stamp", color: "#EF4444" },
|
||||
{ id: "utilities", name: "Utilities", icon: "Wrench", color: "#6366F1" },
|
||||
{ id: "layout", name: "Layout & Composition", icon: "LayoutGrid", color: "#EC4899" },
|
||||
{ id: "utilities", name: "Utilities", icon: "Wrench", color: "#6366F1" },
|
||||
{ id: "optimization", name: "Optimization", icon: "Zap", color: "#10B981" },
|
||||
{ id: "format", name: "Format & Conversion", icon: "FileType", color: "#14B8A6" },
|
||||
{ id: "video", name: "Video", icon: "Video", color: "#EF4444" },
|
||||
{ id: "audio", name: "Audio", icon: "AudioLines", color: "#10B981" },
|
||||
{ id: "documents", name: "PDF & Documents", icon: "FileText", color: "#8B5CF6" },
|
||||
// Video
|
||||
{ id: "video-edit", name: "Edit", icon: "Video", color: "#EF4444" },
|
||||
{ id: "video-convert", name: "Convert", icon: "FileVideo", color: "#F97316" },
|
||||
{ id: "video-effects", name: "Effects & Compose", icon: "Wand2", color: "#EC4899" },
|
||||
{ id: "video-subtitles", name: "Subtitles", icon: "Captions", color: "#8B5CF6" },
|
||||
{ id: "video-metadata", name: "Metadata", icon: "Tags", color: "#6366F1" },
|
||||
// Audio
|
||||
{ id: "audio-edit", name: "Edit", icon: "AudioLines", color: "#10B981" },
|
||||
{ id: "audio-convert", name: "Convert", icon: "FileAudio", color: "#14B8A6" },
|
||||
{ id: "audio-effects", name: "Effects & Compose", icon: "Waves", color: "#06B6D4" },
|
||||
{ id: "audio-metadata", name: "Metadata", icon: "Tags", color: "#6366F1" },
|
||||
// Documents
|
||||
{ id: "pdf-organize", name: "Organize", icon: "FolderOpen", color: "#8B5CF6" },
|
||||
{ id: "pdf-edit", name: "Edit & Annotate", icon: "PenLine", color: "#3B82F6" },
|
||||
{ id: "pdf-security", name: "Security", icon: "Lock", color: "#EF4444" },
|
||||
{ id: "pdf-optimize", name: "Optimize", icon: "Zap", color: "#10B981" },
|
||||
{ id: "doc-convert", name: "Convert", icon: "FileType", color: "#14B8A6" },
|
||||
// Data & Files
|
||||
{ id: "data", name: "Data Files", icon: "Table", color: "#F59E0B" },
|
||||
{ id: "ai", name: "AI Tools", icon: "Sparkles", color: "#F59E0B" },
|
||||
{ id: "archives", name: "Archives", icon: "FolderArchive", color: "#6366F1" },
|
||||
];
|
||||
|
||||
export const TOOLS: Tool[] = [
|
||||
@@ -186,12 +203,12 @@ export const TOOLS: Tool[] = [
|
||||
acceptedInputs: IMAGE_INPUTS,
|
||||
executionHint: "fast",
|
||||
},
|
||||
// AI Tools
|
||||
// Enhance & AI
|
||||
{
|
||||
id: "remove-background",
|
||||
name: "Remove Background",
|
||||
description: "AI-powered background removal",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Eraser",
|
||||
route: "/remove-background",
|
||||
modality: "image",
|
||||
@@ -202,7 +219,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "upscale",
|
||||
name: "Image Upscaling",
|
||||
description: "AI super-resolution enhancement",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "ZoomIn",
|
||||
route: "/upscale",
|
||||
modality: "image",
|
||||
@@ -213,7 +230,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "erase-object",
|
||||
name: "Object Eraser",
|
||||
description: "Remove unwanted objects with AI",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Wand",
|
||||
route: "/erase-object",
|
||||
modality: "image",
|
||||
@@ -224,7 +241,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "ocr",
|
||||
name: "OCR / Text Extraction",
|
||||
description: "Extract text from images",
|
||||
category: "ai",
|
||||
category: "doc-convert",
|
||||
icon: "ScanText",
|
||||
route: "/ocr",
|
||||
modality: "image",
|
||||
@@ -235,7 +252,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "ocr-pdf",
|
||||
name: "PDF OCR",
|
||||
description: "Extract text from PDF documents using AI-powered OCR",
|
||||
category: "ai",
|
||||
category: "doc-convert",
|
||||
icon: "ScanText",
|
||||
route: "/ocr-pdf",
|
||||
modality: "document",
|
||||
@@ -246,7 +263,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "blur-faces",
|
||||
name: "Face / PII Blur",
|
||||
description: "Auto-detect and blur faces and sensitive info",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "EyeOff",
|
||||
route: "/blur-faces",
|
||||
modality: "image",
|
||||
@@ -257,7 +274,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "smart-crop",
|
||||
name: "Smart Crop",
|
||||
description: "Smart subject, face, or trim-based cropping",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Crosshair",
|
||||
route: "/smart-crop",
|
||||
modality: "image",
|
||||
@@ -268,7 +285,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "image-enhancement",
|
||||
name: "Image Enhancement",
|
||||
description: "One-click auto-improve with smart analysis",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Sparkles",
|
||||
route: "/image-enhancement",
|
||||
modality: "image",
|
||||
@@ -279,7 +296,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "enhance-faces",
|
||||
name: "Face Enhancement",
|
||||
description: "Restore and enhance faces with AI",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "ScanFace",
|
||||
route: "/enhance-faces",
|
||||
modality: "image",
|
||||
@@ -290,7 +307,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "colorize",
|
||||
name: "AI Colorization",
|
||||
description: "Convert B&W photos to full color with AI",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Palette",
|
||||
route: "/colorize",
|
||||
modality: "image",
|
||||
@@ -301,7 +318,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "noise-removal",
|
||||
name: "Noise Removal",
|
||||
description: "AI-powered noise and grain removal",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "AudioLines",
|
||||
route: "/noise-removal",
|
||||
modality: "image",
|
||||
@@ -312,7 +329,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "red-eye-removal",
|
||||
name: "Red Eye Removal",
|
||||
description: "AI-detect and fix red eye in flash photos",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "ScanEye",
|
||||
route: "/red-eye-removal",
|
||||
modality: "image",
|
||||
@@ -323,7 +340,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "restore-photo",
|
||||
name: "Photo Restoration",
|
||||
description: "Fix scratches, tears, and damage on old photos with AI",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Undo2",
|
||||
route: "/restore-photo",
|
||||
modality: "image",
|
||||
@@ -334,7 +351,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "passport-photo",
|
||||
name: "Passport Photo",
|
||||
description: "AI-powered passport and ID photo generator",
|
||||
category: "ai",
|
||||
category: "utilities",
|
||||
icon: "UserCheck",
|
||||
route: "/passport-photo",
|
||||
modality: "image",
|
||||
@@ -345,7 +362,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "content-aware-resize",
|
||||
name: "Content-Aware Resize",
|
||||
description: "Seam carving resize that preserves important content with face protection",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Scaling",
|
||||
route: "/content-aware-resize",
|
||||
modality: "image",
|
||||
@@ -356,7 +373,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "ai-canvas-expand",
|
||||
name: "AI Canvas Expand",
|
||||
description: "Expand canvas with AI-powered fill",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Expand",
|
||||
route: "/ai-canvas-expand",
|
||||
modality: "image",
|
||||
@@ -367,7 +384,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "transcribe-audio",
|
||||
name: "Transcribe Audio",
|
||||
description: "Convert speech to text with AI-powered transcription",
|
||||
category: "ai",
|
||||
category: "audio-convert",
|
||||
icon: "MicVocal",
|
||||
route: "/transcribe-audio",
|
||||
modality: "audio",
|
||||
@@ -378,7 +395,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "auto-subtitles",
|
||||
name: "Auto Subtitles",
|
||||
description: "Generate subtitle files from video audio tracks",
|
||||
category: "ai",
|
||||
category: "video-subtitles",
|
||||
icon: "Captions",
|
||||
route: "/auto-subtitles",
|
||||
modality: "video",
|
||||
@@ -389,7 +406,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "transparency-fixer",
|
||||
name: "PNG Transparency Fixer",
|
||||
description: "Fix fake transparent PNGs in one click",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "ShieldCheck",
|
||||
route: "/transparency-fixer",
|
||||
modality: "image",
|
||||
@@ -400,7 +417,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "background-replace",
|
||||
name: "Background Replace",
|
||||
description: "Replace image background with a solid color",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "PaintBucket",
|
||||
route: "/background-replace",
|
||||
modality: "image",
|
||||
@@ -411,7 +428,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "blur-background",
|
||||
name: "Blur Background",
|
||||
description: "Blur the background while keeping the subject sharp",
|
||||
category: "ai",
|
||||
category: "enhance",
|
||||
icon: "Focus",
|
||||
route: "/blur-background",
|
||||
modality: "image",
|
||||
@@ -768,7 +785,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "pdf-to-image",
|
||||
name: "PDF to Image",
|
||||
description: "Convert PDF pages to images",
|
||||
category: "documents",
|
||||
category: "pdf-organize",
|
||||
icon: "BookImage",
|
||||
route: "/pdf-to-image",
|
||||
modality: "document",
|
||||
@@ -780,7 +797,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "convert-video",
|
||||
name: "Convert Video",
|
||||
description: "Convert videos between MP4, MOV, and WebM",
|
||||
category: "video",
|
||||
category: "video-convert",
|
||||
icon: "Video",
|
||||
route: "/convert-video",
|
||||
modality: "video",
|
||||
@@ -791,7 +808,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "compress-video",
|
||||
name: "Compress Video",
|
||||
description: "Shrink video file size with quality control",
|
||||
category: "video",
|
||||
category: "video-convert",
|
||||
icon: "FileVideo",
|
||||
route: "/compress-video",
|
||||
modality: "video",
|
||||
@@ -802,7 +819,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "trim-video",
|
||||
name: "Trim Video",
|
||||
description: "Cut a clip out of a video",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "Scissors",
|
||||
route: "/trim-video",
|
||||
modality: "video",
|
||||
@@ -813,7 +830,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "mute-video",
|
||||
name: "Mute Video",
|
||||
description: "Remove the audio track from a video",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "VolumeX",
|
||||
route: "/mute-video",
|
||||
modality: "video",
|
||||
@@ -824,7 +841,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "video-to-gif",
|
||||
name: "Video to GIF",
|
||||
description: "Turn a video clip into an animated GIF",
|
||||
category: "video",
|
||||
category: "video-convert",
|
||||
icon: "Film",
|
||||
route: "/video-to-gif",
|
||||
modality: "video",
|
||||
@@ -835,7 +852,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "resize-video",
|
||||
name: "Resize Video",
|
||||
description: "Scale a video to a new resolution or preset size",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "Scaling",
|
||||
route: "/resize-video",
|
||||
modality: "video",
|
||||
@@ -846,7 +863,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "crop-video",
|
||||
name: "Crop Video",
|
||||
description: "Crop a region out of a video",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "Crop",
|
||||
route: "/crop-video",
|
||||
modality: "video",
|
||||
@@ -857,7 +874,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "rotate-video",
|
||||
name: "Rotate Video",
|
||||
description: "Rotate or flip a video",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "RotateCw",
|
||||
route: "/rotate-video",
|
||||
modality: "video",
|
||||
@@ -868,7 +885,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "change-fps",
|
||||
name: "Change FPS",
|
||||
description: "Change the frame rate of a video",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "Gauge",
|
||||
route: "/change-fps",
|
||||
modality: "video",
|
||||
@@ -879,7 +896,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "video-color",
|
||||
name: "Video Color",
|
||||
description: "Adjust brightness, contrast, saturation, and gamma",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "SlidersHorizontal",
|
||||
route: "/video-color",
|
||||
modality: "video",
|
||||
@@ -890,7 +907,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "video-speed",
|
||||
name: "Video Speed",
|
||||
description: "Speed up or slow down a video",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "FastForward",
|
||||
route: "/video-speed",
|
||||
modality: "video",
|
||||
@@ -901,7 +918,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "reverse-video",
|
||||
name: "Reverse Video",
|
||||
description: "Play a video clip backwards",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "Rewind",
|
||||
route: "/reverse-video",
|
||||
modality: "video",
|
||||
@@ -912,7 +929,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "video-loudnorm",
|
||||
name: "Normalize Audio",
|
||||
description: "Normalize video audio volume to broadcast standard",
|
||||
category: "video",
|
||||
category: "video-edit",
|
||||
icon: "Volume2",
|
||||
route: "/video-loudnorm",
|
||||
modality: "video",
|
||||
@@ -923,7 +940,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "aspect-pad",
|
||||
name: "Aspect Pad",
|
||||
description: "Add solid-color bars to fit a target aspect ratio",
|
||||
category: "video",
|
||||
category: "video-effects",
|
||||
icon: "RectangleHorizontal",
|
||||
route: "/aspect-pad",
|
||||
modality: "video",
|
||||
@@ -934,7 +951,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "blur-pad",
|
||||
name: "Blur Pad",
|
||||
description: "Fill bars with a blurred copy of the video",
|
||||
category: "video",
|
||||
category: "video-effects",
|
||||
icon: "GalleryHorizontalEnd",
|
||||
route: "/blur-pad",
|
||||
modality: "video",
|
||||
@@ -945,7 +962,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "watermark-video",
|
||||
name: "Watermark Video",
|
||||
description: "Burn a text watermark onto video frames",
|
||||
category: "video",
|
||||
category: "video-effects",
|
||||
icon: "Stamp",
|
||||
route: "/watermark-video",
|
||||
modality: "video",
|
||||
@@ -956,7 +973,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "stabilize-video",
|
||||
name: "Stabilize Video",
|
||||
description: "Reduce camera shake with two-pass stabilization",
|
||||
category: "video",
|
||||
category: "video-effects",
|
||||
icon: "Anchor",
|
||||
route: "/stabilize-video",
|
||||
modality: "video",
|
||||
@@ -967,7 +984,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "gif-to-video",
|
||||
name: "GIF to Video",
|
||||
description: "Convert an animated GIF into an MP4 or WebM video",
|
||||
category: "video",
|
||||
category: "video-convert",
|
||||
icon: "Film",
|
||||
route: "/gif-to-video",
|
||||
modality: "video",
|
||||
@@ -978,7 +995,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "video-to-webp",
|
||||
name: "Video to WebP",
|
||||
description: "Convert a video clip into an animated WebP image",
|
||||
category: "video",
|
||||
category: "video-convert",
|
||||
icon: "Image",
|
||||
route: "/video-to-webp",
|
||||
modality: "video",
|
||||
@@ -989,7 +1006,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "video-to-frames",
|
||||
name: "Video to Frames",
|
||||
description: "Extract frames from a video as a ZIP of images",
|
||||
category: "video",
|
||||
category: "video-convert",
|
||||
icon: "Images",
|
||||
route: "/video-to-frames",
|
||||
modality: "video",
|
||||
@@ -1000,7 +1017,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "merge-videos",
|
||||
name: "Merge Videos",
|
||||
description: "Join multiple video clips into one file",
|
||||
category: "video",
|
||||
category: "video-effects",
|
||||
icon: "Combine",
|
||||
route: "/merge-videos",
|
||||
modality: "video",
|
||||
@@ -1011,7 +1028,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "replace-audio",
|
||||
name: "Replace Audio",
|
||||
description: "Swap the audio track of a video with another file",
|
||||
category: "video",
|
||||
category: "video-effects",
|
||||
icon: "MicVocal",
|
||||
route: "/replace-audio",
|
||||
modality: "video",
|
||||
@@ -1022,7 +1039,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "burn-subtitles",
|
||||
name: "Burn Subtitles",
|
||||
description: "Permanently render subtitles onto video frames",
|
||||
category: "video",
|
||||
category: "video-subtitles",
|
||||
icon: "Captions",
|
||||
route: "/burn-subtitles",
|
||||
modality: "video",
|
||||
@@ -1033,7 +1050,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "embed-subtitles",
|
||||
name: "Embed Subtitles",
|
||||
description: "Mux a subtitle track into the video container",
|
||||
category: "video",
|
||||
category: "video-subtitles",
|
||||
icon: "MessageSquareText",
|
||||
route: "/embed-subtitles",
|
||||
modality: "video",
|
||||
@@ -1044,7 +1061,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "extract-subtitles",
|
||||
name: "Extract Subtitles",
|
||||
description: "Pull the subtitle track out of a video as an SRT file",
|
||||
category: "video",
|
||||
category: "video-subtitles",
|
||||
icon: "FileText",
|
||||
route: "/extract-subtitles",
|
||||
modality: "video",
|
||||
@@ -1055,7 +1072,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "images-to-video",
|
||||
name: "Images to Video",
|
||||
description: "Turn a set of images into a slideshow video",
|
||||
category: "video",
|
||||
category: "video-effects",
|
||||
icon: "GalleryThumbnails",
|
||||
route: "/images-to-video",
|
||||
modality: "video",
|
||||
@@ -1066,7 +1083,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "video-metadata",
|
||||
name: "Clean Video Metadata",
|
||||
description: "Strip metadata from a video and report what was found",
|
||||
category: "video",
|
||||
category: "video-metadata",
|
||||
icon: "Tags",
|
||||
route: "/video-metadata",
|
||||
modality: "video",
|
||||
@@ -1078,7 +1095,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "convert-audio",
|
||||
name: "Convert Audio",
|
||||
description: "Convert audio between MP3, WAV, OGG, and more",
|
||||
category: "audio",
|
||||
category: "audio-convert",
|
||||
icon: "AudioLines",
|
||||
route: "/convert-audio",
|
||||
modality: "audio",
|
||||
@@ -1089,7 +1106,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "trim-audio",
|
||||
name: "Trim Audio",
|
||||
description: "Cut a section out of an audio file",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "Scissors",
|
||||
route: "/trim-audio",
|
||||
modality: "audio",
|
||||
@@ -1100,7 +1117,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "extract-audio",
|
||||
name: "Extract Audio",
|
||||
description: "Pull the audio track out of a video",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "FileAudio",
|
||||
route: "/extract-audio",
|
||||
modality: "video",
|
||||
@@ -1111,7 +1128,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "volume-adjust",
|
||||
name: "Volume Adjust",
|
||||
description: "Increase or decrease audio volume by a fixed gain",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "Volume2",
|
||||
route: "/volume-adjust",
|
||||
modality: "audio",
|
||||
@@ -1122,7 +1139,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "normalize-audio",
|
||||
name: "Normalize Audio",
|
||||
description: "Even out loudness to broadcast standard levels",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "AudioWaveform",
|
||||
route: "/normalize-audio",
|
||||
modality: "audio",
|
||||
@@ -1133,7 +1150,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "fade-audio",
|
||||
name: "Fade Audio",
|
||||
description: "Add fade-in and fade-out effects to audio",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "Waves",
|
||||
route: "/fade-audio",
|
||||
modality: "audio",
|
||||
@@ -1144,7 +1161,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "reverse-audio",
|
||||
name: "Reverse Audio",
|
||||
description: "Play audio backwards",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "Rewind",
|
||||
route: "/reverse-audio",
|
||||
modality: "audio",
|
||||
@@ -1155,7 +1172,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "audio-speed",
|
||||
name: "Audio Speed",
|
||||
description: "Speed up or slow down audio playback",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "FastForward",
|
||||
route: "/audio-speed",
|
||||
modality: "audio",
|
||||
@@ -1166,7 +1183,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "pitch-shift",
|
||||
name: "Pitch Shift",
|
||||
description: "Raise or lower pitch by semitones without changing speed",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "Music",
|
||||
route: "/pitch-shift",
|
||||
modality: "audio",
|
||||
@@ -1177,7 +1194,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "audio-channels",
|
||||
name: "Audio Channels",
|
||||
description: "Convert between mono, stereo, or swap left and right channels",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "Split",
|
||||
route: "/audio-channels",
|
||||
modality: "audio",
|
||||
@@ -1188,7 +1205,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "silence-removal",
|
||||
name: "Silence Removal",
|
||||
description: "Strip silent sections from audio",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "VolumeX",
|
||||
route: "/silence-removal",
|
||||
modality: "audio",
|
||||
@@ -1199,7 +1216,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "noise-reduction",
|
||||
name: "Noise Reduction",
|
||||
description: "Reduce background noise with FFT-based denoising",
|
||||
category: "audio",
|
||||
category: "audio-edit",
|
||||
icon: "Sparkles",
|
||||
route: "/noise-reduction",
|
||||
modality: "audio",
|
||||
@@ -1210,7 +1227,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "merge-audio",
|
||||
name: "Merge Audio",
|
||||
description: "Combine multiple audio files into one",
|
||||
category: "audio",
|
||||
category: "audio-effects",
|
||||
icon: "Combine",
|
||||
route: "/merge-audio",
|
||||
modality: "audio",
|
||||
@@ -1221,7 +1238,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "split-audio",
|
||||
name: "Split Audio",
|
||||
description: "Split audio by time, equal parts, or silence detection",
|
||||
category: "audio",
|
||||
category: "audio-effects",
|
||||
icon: "Scissors",
|
||||
route: "/split-audio",
|
||||
modality: "audio",
|
||||
@@ -1232,7 +1249,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "ringtone-maker",
|
||||
name: "Ringtone Maker",
|
||||
description: "Create a ringtone clip from any audio file",
|
||||
category: "audio",
|
||||
category: "audio-convert",
|
||||
icon: "BellRing",
|
||||
route: "/ringtone-maker",
|
||||
modality: "audio",
|
||||
@@ -1243,7 +1260,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "waveform-image",
|
||||
name: "Waveform Image",
|
||||
description: "Generate a waveform visualization as a PNG image",
|
||||
category: "audio",
|
||||
category: "audio-effects",
|
||||
icon: "Activity",
|
||||
route: "/waveform-image",
|
||||
modality: "audio",
|
||||
@@ -1254,7 +1271,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "audio-metadata",
|
||||
name: "Audio Metadata",
|
||||
description: "View, edit, or strip audio tags (ID3)",
|
||||
category: "audio",
|
||||
category: "audio-metadata",
|
||||
icon: "Tags",
|
||||
route: "/audio-metadata",
|
||||
modality: "audio",
|
||||
@@ -1266,7 +1283,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "merge-pdf",
|
||||
name: "Merge PDFs",
|
||||
description: "Combine multiple PDFs into one",
|
||||
category: "documents",
|
||||
category: "pdf-organize",
|
||||
icon: "Combine",
|
||||
route: "/merge-pdf",
|
||||
modality: "document",
|
||||
@@ -1277,7 +1294,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "split-pdf",
|
||||
name: "Split PDF",
|
||||
description: "Extract pages or split into parts",
|
||||
category: "documents",
|
||||
category: "pdf-organize",
|
||||
icon: "Split",
|
||||
route: "/split-pdf",
|
||||
modality: "document",
|
||||
@@ -1288,7 +1305,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "compress-pdf",
|
||||
name: "Compress PDF",
|
||||
description: "Shrink PDF file size",
|
||||
category: "documents",
|
||||
category: "pdf-optimize",
|
||||
icon: "FileArchive",
|
||||
route: "/compress-pdf",
|
||||
modality: "document",
|
||||
@@ -1299,7 +1316,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "rotate-pdf",
|
||||
name: "Rotate PDF",
|
||||
description: "Rotate pages in a PDF",
|
||||
category: "documents",
|
||||
category: "pdf-edit",
|
||||
icon: "RotateCw",
|
||||
route: "/rotate-pdf",
|
||||
modality: "document",
|
||||
@@ -1310,7 +1327,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "convert-document",
|
||||
name: "Convert Document",
|
||||
description: "Convert between Word, OpenDocument, RTF, and plain text formats",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "FileType2",
|
||||
route: "/convert-document",
|
||||
modality: "document",
|
||||
@@ -1321,7 +1338,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "convert-presentation",
|
||||
name: "Convert Presentation",
|
||||
description: "Convert between PowerPoint and OpenDocument presentation formats",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "Presentation",
|
||||
route: "/convert-presentation",
|
||||
modality: "document",
|
||||
@@ -1333,7 +1350,7 @@ export const TOOLS: Tool[] = [
|
||||
name: "Convert Spreadsheet",
|
||||
description:
|
||||
"Convert between Excel, OpenDocument, and CSV formats. Multi-sheet workbooks export the first sheet to CSV.",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "Grid3x3",
|
||||
route: "/convert-spreadsheet",
|
||||
modality: "document",
|
||||
@@ -1344,7 +1361,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "excel-to-pdf",
|
||||
name: "Excel to PDF",
|
||||
description: "Convert spreadsheets to PDF. Wide sheets may paginate across multiple pages.",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "Table",
|
||||
route: "/excel-to-pdf",
|
||||
modality: "document",
|
||||
@@ -1355,7 +1372,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "word-to-pdf",
|
||||
name: "Word to PDF",
|
||||
description: "Convert Word documents to PDF",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "FileText",
|
||||
route: "/word-to-pdf",
|
||||
modality: "document",
|
||||
@@ -1366,7 +1383,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "extract-pages",
|
||||
name: "Extract Pages",
|
||||
description: "Pull selected pages into a new PDF",
|
||||
category: "documents",
|
||||
category: "pdf-organize",
|
||||
icon: "FileOutput",
|
||||
route: "/extract-pages",
|
||||
modality: "document",
|
||||
@@ -1377,7 +1394,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "remove-pages",
|
||||
name: "Remove Pages",
|
||||
description: "Delete specific pages from a PDF",
|
||||
category: "documents",
|
||||
category: "pdf-organize",
|
||||
icon: "FileX",
|
||||
route: "/remove-pages",
|
||||
modality: "document",
|
||||
@@ -1388,7 +1405,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "organize-pdf",
|
||||
name: "Organize PDF",
|
||||
description: "Reorder pages with an explicit page order",
|
||||
category: "documents",
|
||||
category: "pdf-organize",
|
||||
icon: "ListOrdered",
|
||||
route: "/organize-pdf",
|
||||
modality: "document",
|
||||
@@ -1399,7 +1416,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "protect-pdf",
|
||||
name: "Protect PDF",
|
||||
description: "Add password protection (AES-256 encryption)",
|
||||
category: "documents",
|
||||
category: "pdf-security",
|
||||
icon: "Lock",
|
||||
route: "/protect-pdf",
|
||||
modality: "document",
|
||||
@@ -1410,7 +1427,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "unlock-pdf",
|
||||
name: "Unlock PDF",
|
||||
description: "Remove password protection from a PDF",
|
||||
category: "documents",
|
||||
category: "pdf-security",
|
||||
icon: "LockOpen",
|
||||
route: "/unlock-pdf",
|
||||
modality: "document",
|
||||
@@ -1421,7 +1438,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "repair-pdf",
|
||||
name: "Repair PDF",
|
||||
description: "Attempt to repair a damaged or corrupted PDF",
|
||||
category: "documents",
|
||||
category: "pdf-optimize",
|
||||
icon: "Wrench",
|
||||
route: "/repair-pdf",
|
||||
modality: "document",
|
||||
@@ -1432,7 +1449,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "linearize-pdf",
|
||||
name: "Web-Optimize PDF",
|
||||
description: "Linearize a PDF for fast web viewing",
|
||||
category: "documents",
|
||||
category: "pdf-optimize",
|
||||
icon: "Zap",
|
||||
route: "/linearize-pdf",
|
||||
modality: "document",
|
||||
@@ -1443,7 +1460,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "grayscale-pdf",
|
||||
name: "Grayscale PDF",
|
||||
description: "Convert all colors to grayscale",
|
||||
category: "documents",
|
||||
category: "pdf-optimize",
|
||||
icon: "Contrast",
|
||||
route: "/grayscale-pdf",
|
||||
modality: "document",
|
||||
@@ -1454,7 +1471,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "pdfa-convert",
|
||||
name: "PDF/A Convert",
|
||||
description: "Convert to archival PDF/A-2",
|
||||
category: "documents",
|
||||
category: "pdf-optimize",
|
||||
icon: "Archive",
|
||||
route: "/pdfa-convert",
|
||||
modality: "document",
|
||||
@@ -1465,7 +1482,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "crop-pdf",
|
||||
name: "Crop PDF",
|
||||
description: "Crop all pages with a uniform margin",
|
||||
category: "documents",
|
||||
category: "pdf-optimize",
|
||||
icon: "Crop",
|
||||
route: "/crop-pdf",
|
||||
modality: "document",
|
||||
@@ -1476,7 +1493,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "nup-pdf",
|
||||
name: "N-up PDF",
|
||||
description: "Arrange multiple pages per sheet",
|
||||
category: "documents",
|
||||
category: "pdf-optimize",
|
||||
icon: "LayoutGrid",
|
||||
route: "/nup-pdf",
|
||||
modality: "document",
|
||||
@@ -1487,7 +1504,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "booklet-pdf",
|
||||
name: "Booklet PDF",
|
||||
description: "Arrange pages for folding into a booklet",
|
||||
category: "documents",
|
||||
category: "pdf-optimize",
|
||||
icon: "BookOpen",
|
||||
route: "/booklet-pdf",
|
||||
modality: "document",
|
||||
@@ -1498,7 +1515,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "watermark-pdf",
|
||||
name: "Watermark PDF",
|
||||
description: "Add a text watermark to every page",
|
||||
category: "documents",
|
||||
category: "pdf-edit",
|
||||
icon: "Stamp",
|
||||
route: "/watermark-pdf",
|
||||
modality: "document",
|
||||
@@ -1509,7 +1526,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "pdf-page-numbers",
|
||||
name: "PDF Page Numbers",
|
||||
description: "Add page numbers to every page",
|
||||
category: "documents",
|
||||
category: "pdf-edit",
|
||||
icon: "Hash",
|
||||
route: "/pdf-page-numbers",
|
||||
modality: "document",
|
||||
@@ -1520,7 +1537,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "flatten-pdf",
|
||||
name: "Flatten PDF",
|
||||
description: "Bake forms and annotations into page content",
|
||||
category: "documents",
|
||||
category: "pdf-edit",
|
||||
icon: "Layers2",
|
||||
route: "/flatten-pdf",
|
||||
modality: "document",
|
||||
@@ -1531,7 +1548,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "redact-pdf",
|
||||
name: "Redact PDF",
|
||||
description: "Permanently remove text occurrences (verified true redaction)",
|
||||
category: "documents",
|
||||
category: "pdf-edit",
|
||||
icon: "EyeOff",
|
||||
route: "/redact-pdf",
|
||||
modality: "document",
|
||||
@@ -1542,7 +1559,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "pdf-to-text",
|
||||
name: "PDF to Text",
|
||||
description: "Extract plain text from a PDF",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "FileText",
|
||||
route: "/pdf-to-text",
|
||||
modality: "document",
|
||||
@@ -1553,7 +1570,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "pdf-to-word",
|
||||
name: "PDF to Word",
|
||||
description: "Best for text-based PDFs; scanned pages need OCR",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "FileType",
|
||||
route: "/pdf-to-word",
|
||||
modality: "document",
|
||||
@@ -1564,7 +1581,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "pdf-metadata",
|
||||
name: "PDF Metadata",
|
||||
description: "Read and write PDF document metadata",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "Tags",
|
||||
route: "/pdf-metadata",
|
||||
modality: "document",
|
||||
@@ -1575,7 +1592,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "powerpoint-to-pdf",
|
||||
name: "PowerPoint to PDF",
|
||||
description: "Convert presentations to PDF",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "Presentation",
|
||||
route: "/powerpoint-to-pdf",
|
||||
modality: "document",
|
||||
@@ -1586,7 +1603,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "html-to-pdf",
|
||||
name: "HTML to PDF",
|
||||
description: "Convert an HTML file to PDF. Remote resources are disabled for privacy.",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "FileCode",
|
||||
route: "/html-to-pdf",
|
||||
modality: "document",
|
||||
@@ -1597,7 +1614,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "markdown-to-docx",
|
||||
name: "Markdown to Word",
|
||||
description: "Convert a Markdown file to a Word document (DOCX)",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "FileType",
|
||||
route: "/markdown-to-docx",
|
||||
modality: "document",
|
||||
@@ -1609,7 +1626,7 @@ export const TOOLS: Tool[] = [
|
||||
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.",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "FileCode",
|
||||
route: "/markdown-to-html",
|
||||
modality: "document",
|
||||
@@ -1621,7 +1638,7 @@ export const TOOLS: Tool[] = [
|
||||
name: "Markdown to PDF",
|
||||
description:
|
||||
"Convert a Markdown file to a styled PDF. Remote resources are disabled for privacy.",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "FileCode2",
|
||||
route: "/markdown-to-pdf",
|
||||
modality: "document",
|
||||
@@ -1633,7 +1650,7 @@ export const TOOLS: Tool[] = [
|
||||
name: "Convert EPUB",
|
||||
description:
|
||||
"Convert an EPUB to PDF, DOCX, HTML, or Markdown. Remote resources inside the book are not fetched.",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "BookOpen",
|
||||
route: "/epub-convert",
|
||||
modality: "document",
|
||||
@@ -1644,7 +1661,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "to-epub",
|
||||
name: "Convert to EPUB",
|
||||
description: "Convert Word, Markdown, HTML, or plain text files to EPUB",
|
||||
category: "documents",
|
||||
category: "doc-convert",
|
||||
icon: "Book",
|
||||
route: "/to-epub",
|
||||
modality: "document",
|
||||
@@ -1745,7 +1762,7 @@ export const TOOLS: Tool[] = [
|
||||
id: "create-zip",
|
||||
name: "Create ZIP",
|
||||
description: "Bundle multiple files into a single ZIP archive",
|
||||
category: "data",
|
||||
category: "archives",
|
||||
icon: "FolderArchive",
|
||||
route: "/create-zip",
|
||||
modality: "file",
|
||||
@@ -1757,7 +1774,7 @@ export const TOOLS: Tool[] = [
|
||||
name: "Extract ZIP",
|
||||
description:
|
||||
"Safely extract files from a ZIP archive with bomb protection. Single-file archives return the file directly.",
|
||||
category: "data",
|
||||
category: "archives",
|
||||
icon: "FolderOpen",
|
||||
route: "/extract-zip",
|
||||
modality: "file",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const ar: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "الأساسيات",
|
||||
optimization: "التحسين",
|
||||
adjustments: "التعديلات",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "العلامة المائية والتراكب",
|
||||
utilities: "الأدوات المساعدة",
|
||||
layout: "التخطيط والتكوين",
|
||||
utilities: "الأدوات المساعدة",
|
||||
optimization: "التحسين",
|
||||
format: "التنسيق والتحويل",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "أدوات AI",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const de: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Grundlagen",
|
||||
optimization: "Optimierung",
|
||||
adjustments: "Anpassungen",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Wasserzeichen & Overlay",
|
||||
utilities: "Hilfswerkzeuge",
|
||||
layout: "Layout & Komposition",
|
||||
utilities: "Hilfswerkzeuge",
|
||||
optimization: "Optimierung",
|
||||
format: "Format & Konvertierung",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI-Werkzeuge",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -38,18 +38,35 @@ export const en = {
|
||||
pageNotFoundDescription: "The page you are looking for does not exist or has been moved.",
|
||||
},
|
||||
categories: {
|
||||
// Image
|
||||
essentials: "Essentials",
|
||||
optimization: "Optimization",
|
||||
adjustments: "Adjustments",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Watermark & Overlay",
|
||||
utilities: "Utilities",
|
||||
layout: "Layout & Composition",
|
||||
utilities: "Utilities",
|
||||
optimization: "Optimization",
|
||||
format: "Format & Conversion",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
// Video
|
||||
"video-edit": "Edit",
|
||||
"video-convert": "Convert",
|
||||
"video-effects": "Effects & Compose",
|
||||
"video-subtitles": "Subtitles",
|
||||
"video-metadata": "Metadata",
|
||||
// Audio
|
||||
"audio-edit": "Edit",
|
||||
"audio-convert": "Convert",
|
||||
"audio-effects": "Effects & Compose",
|
||||
"audio-metadata": "Metadata",
|
||||
// Documents
|
||||
"pdf-organize": "Organize",
|
||||
"pdf-edit": "Edit & Annotate",
|
||||
"pdf-security": "Security",
|
||||
"pdf-optimize": "Optimize",
|
||||
"doc-convert": "Convert",
|
||||
// Data & Files
|
||||
data: "Data Files",
|
||||
ai: "AI Tools",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const es: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Esenciales",
|
||||
optimization: "Optimizacion",
|
||||
adjustments: "Ajustes",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Marca de agua y superposicion",
|
||||
utilities: "Utilidades",
|
||||
layout: "Diseno y composicion",
|
||||
utilities: "Utilidades",
|
||||
optimization: "Optimizacion",
|
||||
format: "Formato y conversion",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "Herramientas de AI",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const fr: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Essentiels",
|
||||
optimization: "Optimisation",
|
||||
adjustments: "Reglages",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Filigrane et superposition",
|
||||
utilities: "Utilitaires",
|
||||
layout: "Mise en page et composition",
|
||||
utilities: "Utilitaires",
|
||||
optimization: "Optimisation",
|
||||
format: "Format et conversion",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "Outils AI",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const hi: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "आवश्यक टूल्स",
|
||||
optimization: "ऑप्टिमाइज़ेशन",
|
||||
adjustments: "समायोजन",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "वॉटरमार्क और ओवरले",
|
||||
utilities: "सहायक टूल्स",
|
||||
layout: "लेआउट और कंपोज़िशन",
|
||||
utilities: "सहायक टूल्स",
|
||||
optimization: "ऑप्टिमाइज़ेशन",
|
||||
format: "फॉर्मेट और कन्वर्शन",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI टूल्स",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const id: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Dasar",
|
||||
optimization: "Optimasi",
|
||||
adjustments: "Penyesuaian",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Watermark & Overlay",
|
||||
utilities: "Utilitas",
|
||||
layout: "Tata Letak & Komposisi",
|
||||
utilities: "Utilitas",
|
||||
optimization: "Optimasi",
|
||||
format: "Format & Konversi",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "Alat AI",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const it: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Essenziali",
|
||||
optimization: "Ottimizzazione",
|
||||
adjustments: "Regolazioni",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Filigrana e sovrapposizione",
|
||||
utilities: "Utilita",
|
||||
layout: "Layout e composizione",
|
||||
utilities: "Utilita",
|
||||
optimization: "Ottimizzazione",
|
||||
format: "Formato e conversione",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "Strumenti IA",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const ja: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "基本ツール",
|
||||
optimization: "最適化",
|
||||
adjustments: "調整",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "ウォーターマークとオーバーレイ",
|
||||
utilities: "ユーティリティ",
|
||||
layout: "レイアウトと構図",
|
||||
utilities: "ユーティリティ",
|
||||
optimization: "最適化",
|
||||
format: "フォーマットと変換",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AIツール",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const ko: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "기본 도구",
|
||||
optimization: "최적화",
|
||||
adjustments: "조정",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "워터마크 및 오버레이",
|
||||
utilities: "유틸리티",
|
||||
layout: "레이아웃 및 구도",
|
||||
utilities: "유틸리티",
|
||||
optimization: "최적화",
|
||||
format: "포맷 및 변환",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI 도구",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const nl: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Basistools",
|
||||
optimization: "Optimalisatie",
|
||||
adjustments: "Aanpassingen",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Watermerk & Overlay",
|
||||
utilities: "Hulptools",
|
||||
layout: "Lay-out & Compositie",
|
||||
utilities: "Hulptools",
|
||||
optimization: "Optimalisatie",
|
||||
format: "Formaat & Conversie",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI-tools",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const pl: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Podstawowe",
|
||||
optimization: "Optymalizacja",
|
||||
adjustments: "Korekta",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Znak wodny i nakładka",
|
||||
utilities: "Narzędzia",
|
||||
layout: "Układ i kompozycja",
|
||||
utilities: "Narzędzia",
|
||||
optimization: "Optymalizacja",
|
||||
format: "Format i konwersja",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "Narzędzia AI",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const ptBR: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Essenciais",
|
||||
optimization: "Otimizacao",
|
||||
adjustments: "Ajustes",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Marca d'agua e sobreposicao",
|
||||
utilities: "Utilitarios",
|
||||
layout: "Layout e composicao",
|
||||
utilities: "Utilitarios",
|
||||
optimization: "Otimizacao",
|
||||
format: "Formato e conversao",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "Ferramentas de AI",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const ru: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Основные",
|
||||
optimization: "Оптимизация",
|
||||
adjustments: "Коррекция",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Водяной знак и наложение",
|
||||
utilities: "Утилиты",
|
||||
layout: "Компоновка и композиция",
|
||||
utilities: "Утилиты",
|
||||
optimization: "Оптимизация",
|
||||
format: "Формат и конвертация",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI-инструменты",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const sv: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Grundlaggande",
|
||||
optimization: "Optimering",
|
||||
adjustments: "Justeringar",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Vattenstampel & Overlay",
|
||||
utilities: "Verktyg",
|
||||
layout: "Layout & Komposition",
|
||||
utilities: "Verktyg",
|
||||
optimization: "Optimering",
|
||||
format: "Format & Konvertering",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI-verktyg",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const th: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "พื้นฐาน",
|
||||
optimization: "การเพิ่มประสิทธิภาพ",
|
||||
adjustments: "การปรับแต่ง",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "ลายน้ำและการซ้อนทับ",
|
||||
utilities: "เครื่องมือเสริม",
|
||||
layout: "เค้าโครงและการจัดองค์ประกอบ",
|
||||
utilities: "เครื่องมือเสริม",
|
||||
optimization: "การเพิ่มประสิทธิภาพ",
|
||||
format: "รูปแบบและการแปลง",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "เครื่องมือ AI",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const tr: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Temel Araçlar",
|
||||
optimization: "Optimizasyon",
|
||||
adjustments: "Ayarlamalar",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Filigran ve Kaplama",
|
||||
utilities: "Yardımcı Araçlar",
|
||||
layout: "Düzen ve Kompozisyon",
|
||||
utilities: "Yardımcı Araçlar",
|
||||
optimization: "Optimizasyon",
|
||||
format: "Biçim ve Dönüştürme",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI Araçları",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const uk: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Основні",
|
||||
optimization: "Оптимізація",
|
||||
adjustments: "Корекція",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Водяний знак і накладання",
|
||||
utilities: "Утиліти",
|
||||
layout: "Компонування та композиція",
|
||||
utilities: "Утиліти",
|
||||
optimization: "Оптимізація",
|
||||
format: "Формат і конвертація",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI-інструменти",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const vi: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "Cơ bản",
|
||||
optimization: "Tối ưu hóa",
|
||||
adjustments: "Điều chỉnh",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "Hình mờ & Lớp phủ",
|
||||
utilities: "Tiện ích",
|
||||
layout: "Bố cục & Kết hợp",
|
||||
utilities: "Tiện ích",
|
||||
optimization: "Tối ưu hóa",
|
||||
format: "Định dạng & Chuyển đổi",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "Công cụ AI",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const zhCN: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "基础工具",
|
||||
optimization: "优化",
|
||||
adjustments: "调整",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "水印与叠加",
|
||||
utilities: "实用工具",
|
||||
layout: "布局与排版",
|
||||
utilities: "实用工具",
|
||||
optimization: "优化",
|
||||
format: "格式与转换",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI 工具",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -41,17 +41,29 @@ export const zhTW: TranslationKeys = {
|
||||
},
|
||||
categories: {
|
||||
essentials: "基本工具",
|
||||
optimization: "最佳化",
|
||||
adjustments: "調整",
|
||||
enhance: "Enhance & AI",
|
||||
watermark: "浮水印與覆疊",
|
||||
utilities: "實用工具",
|
||||
layout: "版面與構圖",
|
||||
utilities: "實用工具",
|
||||
optimization: "最佳化",
|
||||
format: "格式與轉換",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
"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",
|
||||
ai: "AI工具",
|
||||
archives: "Archives",
|
||||
},
|
||||
modalities: {
|
||||
image: "Image",
|
||||
|
||||
@@ -17,18 +17,35 @@ export interface Tool {
|
||||
}
|
||||
|
||||
export type ToolCategory =
|
||||
// Image
|
||||
| "essentials"
|
||||
| "optimization"
|
||||
| "adjustments"
|
||||
| "ai"
|
||||
| "enhance"
|
||||
| "watermark"
|
||||
| "utilities"
|
||||
| "layout"
|
||||
| "format"
|
||||
| "video"
|
||||
| "audio"
|
||||
| "documents"
|
||||
| "data";
|
||||
// Video
|
||||
| "video-edit"
|
||||
| "video-convert"
|
||||
| "video-effects"
|
||||
| "video-subtitles"
|
||||
| "video-metadata"
|
||||
// Audio
|
||||
| "audio-edit"
|
||||
| "audio-convert"
|
||||
| "audio-effects"
|
||||
| "audio-metadata"
|
||||
// Documents
|
||||
| "pdf-organize"
|
||||
| "pdf-edit"
|
||||
| "pdf-security"
|
||||
| "pdf-optimize"
|
||||
| "doc-convert"
|
||||
// Data & Files
|
||||
| "data"
|
||||
| "archives";
|
||||
|
||||
export interface CategoryInfo {
|
||||
id: ToolCategory;
|
||||
|
||||
Reference in New Issue
Block a user