feat(modality)!: SnapOtter 2.0 phase 3 modality framework: media/doc engines, pool routing, display modes (#218)

This commit is contained in:
SnapOtter
2026-06-13 10:18:39 +08:00
parent c451b939c7
commit d647d8ed19
99 changed files with 4380 additions and 1813 deletions
+14
View File
@@ -49,6 +49,12 @@ export const ar: TranslationKeys = {
format: "التنسيق والتحويل",
ai: "أدوات AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "تغيير الحجم",
@@ -271,6 +277,14 @@ export const ar: TranslationKeys = {
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: {
+14
View File
@@ -49,6 +49,12 @@ export const de: TranslationKeys = {
format: "Format & Konvertierung",
ai: "AI-Werkzeuge",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Groesse aendern",
@@ -276,6 +282,14 @@ export const de: TranslationKeys = {
description: "Mehrere Werkzeuge zu einem Workflow verketten",
},
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: {
+14
View File
@@ -47,6 +47,12 @@ export const en = {
format: "Format & Conversion",
ai: "AI Tools",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Resize",
@@ -228,6 +234,14 @@ export const en = {
},
pipeline: { name: "Pipeline Builder", description: "Chain multiple tools into a workflow" },
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: {
+14
View File
@@ -49,6 +49,12 @@ export const es: TranslationKeys = {
format: "Formato y conversion",
ai: "Herramientas de AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Redimensionar",
@@ -261,6 +267,14 @@ export const es: TranslationKeys = {
description: "Encadena multiples herramientas en un flujo de trabajo",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const fr: TranslationKeys = {
format: "Format et conversion",
ai: "Outils AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Redimensionner",
@@ -277,6 +283,14 @@ export const fr: TranslationKeys = {
description: "Enchainez plusieurs outils dans un flux de travail",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const hi: TranslationKeys = {
format: "फॉर्मेट और कन्वर्शन",
ai: "AI टूल्स",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "रीसाइज़",
@@ -268,6 +274,14 @@ export const hi: TranslationKeys = {
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: {
+14
View File
@@ -49,6 +49,12 @@ export const id: TranslationKeys = {
format: "Format & Konversi",
ai: "Alat AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Ubah Ukuran",
@@ -276,6 +282,14 @@ export const id: TranslationKeys = {
description: "Rangkai beberapa alat menjadi alur kerja",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const it: TranslationKeys = {
format: "Formato e conversione",
ai: "Strumenti IA",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Ridimensiona",
@@ -275,6 +281,14 @@ export const it: TranslationKeys = {
description: "Concatena piu strumenti in un flusso di lavoro",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const ja: TranslationKeys = {
format: "フォーマットと変換",
ai: "AIツール",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "リサイズ",
@@ -236,6 +242,14 @@ export const ja: TranslationKeys = {
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const ko: TranslationKeys = {
format: "포맷 및 변환",
ai: "AI 도구",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "리사이즈",
@@ -223,6 +229,14 @@ export const ko: TranslationKeys = {
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const nl: TranslationKeys = {
format: "Formaat & Conversie",
ai: "AI-tools",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Formaat wijzigen",
@@ -276,6 +282,14 @@ export const nl: TranslationKeys = {
description: "Meerdere tools koppelen tot een workflow",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const pl: TranslationKeys = {
format: "Format i konwersja",
ai: "Narzędzia AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Zmiana rozmiaru",
@@ -277,6 +283,14 @@ export const pl: TranslationKeys = {
description: "Łączenie wielu narzędzi w przepływ pracy",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const ptBR: TranslationKeys = {
format: "Formato e conversao",
ai: "Ferramentas de AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Redimensionar",
@@ -274,6 +280,14 @@ export const ptBR: TranslationKeys = {
description: "Encadeie varias ferramentas em um fluxo de trabalho",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const ru: TranslationKeys = {
format: "Формат и конвертация",
ai: "AI-инструменты",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Изменение размера",
@@ -276,6 +282,14 @@ export const ru: TranslationKeys = {
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: {
+14
View File
@@ -49,6 +49,12 @@ export const sv: TranslationKeys = {
format: "Format & Konvertering",
ai: "AI-verktyg",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Andra storlek",
@@ -274,6 +280,14 @@ export const sv: TranslationKeys = {
description: "Kedja samman flera verktyg till ett arbetsflode",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const th: TranslationKeys = {
format: "รูปแบบและการแปลง",
ai: "เครื่องมือ AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "ปรับขนาด",
@@ -269,6 +275,14 @@ export const th: TranslationKeys = {
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: {
+14
View File
@@ -49,6 +49,12 @@ export const tr: TranslationKeys = {
format: "Biçim ve Dönüştürme",
ai: "AI Araçları",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Boyutlandır",
@@ -277,6 +283,14 @@ export const tr: TranslationKeys = {
description: "Birden fazla aracı bir iş akışında zincirleyin",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const uk: TranslationKeys = {
format: "Формат і конвертація",
ai: "AI-інструменти",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Зміна розміру",
@@ -276,6 +282,14 @@ export const uk: TranslationKeys = {
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: {
+14
View File
@@ -49,6 +49,12 @@ export const vi: TranslationKeys = {
format: "Định dạng & Chuyển đổi",
ai: "Công cụ AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Thay đổi kích thước",
@@ -277,6 +283,14 @@ export const vi: TranslationKeys = {
description: "Kết nối nhiều công cụ thành một quy trình làm việc",
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const zhCN: TranslationKeys = {
format: "格式与转换",
ai: "AI 工具",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "调整大小",
@@ -223,6 +229,14 @@ export const zhCN: TranslationKeys = {
},
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: {
+14
View File
@@ -49,6 +49,12 @@ export const zhTW: TranslationKeys = {
format: "格式與轉換",
ai: "AI工具",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "調整大小",
@@ -222,6 +228,14 @@ export const zhTW: TranslationKeys = {
},
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: {