mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
docs: multi-modality rebrand, 2.0 architecture accuracy, and full OpenAPI coverage (#254)
* docs: rebrand from image-only to multi-modality across docs and metadata SnapOtter expanded from image-only to 157 tools across 5 modalities (image, video, audio, document/PDF, data). Update all product-level copy, metadata, and i18n that still framed it as an image-only tool. - README, package.json, root llms.txt: multi-modality framing, 157 tools - OpenAPI info + tags, generated /llms.txt tagline (docs.ts) - VitePress docs site: hero, getting-started, architecture, security, deployment, configuration, developer, supported-formats - i18n: 10 product keys across all 21 locales (hero, app description, privacy notes, AI features, progress messages, getting-started) - web/demo/landing meta + privacy copy, COMMUNITY_GUIDE, .env.example Stale tool counts (53/50+/52/70+/35) corrected to 157 throughout. Database/container deployment claims left unchanged (out of scope). * docs: fix stale post-rebrand test assertions and README language list - tests/e2e-docs/homepage.spec.ts: assert the current docs homepage (file toolkit, 157 tools, 5 modalities) instead of the old image-only strings - tests/unit/api/docs-route.test.ts: sync the reproduced llms.txt tagline with docs.ts - README.md: 21 languages with the correct list (add Swedish and Chinese Traditional, drop Czech which is not supported) * docs: correct 2.0 architecture references (Postgres 17 + Redis 8, 3-container stack) The docs and metadata still described the 1.x stack (SQLite, single container, p-queue). Update them to the current 2.0 reality. - README: replace the broken single-container `docker run` quick-start with the real Docker Compose stack (app + Postgres 17 + Redis 8); fix the "no Redis, no Postgres" feature bullet - package.json: description no longer claims a single container - apps/docs: rewrite database.md for Postgres; configuration.md DB_PATH -> DATABASE_URL + REDIS_URL; architecture.md SQLite/p-queue/better-sqlite3 -> Postgres/BullMQ/pg and add media-engine + doc-engine; developer/security/deployment/docker-tags/getting-started/contributing compose examples now include postgres + redis; index.md + api/ai.md AI count 16 -> 19 - SECURITY.md: Drizzle (SQLite) -> (PostgreSQL) - landing: enterprise/FeatureHighlights single-container wording; TrustSignals/ToolGrid 150+ -> 157 (dynamic); Pricing/FAQ 15 -> 19 AI tools * docs(api): document all video, audio, document, and data tool endpoints in OpenAPI The spec covered only image tools; the Scalar UI and the generated /llms.txt and /llms-full.txt inherited that gap. Add the 104 missing tool endpoints so the API docs match the code. - Video: 29 endpoints (most long/async; auto-subtitles is AI) - Audio: 17 (transcribe-audio is AI) - Document/PDF: 36 (ocr-pdf is AI; conversions are long/async) - Data: 10 - Image: 12 newer tools (background-replace, blur-background AI; histogram/lqip-placeholder/sprite-sheet custom responses; barcode-generate uses a JSON body) Each schema is derived from the tool's Zod validator and executionHint (fast -> 200, long -> 202+SSE, AI adds 501 FeatureNotInstalledError, multi-file inputs as arrays), referencing the existing shared schemas. Tool path entries: 64 -> 168. Spec parses as valid YAML with no duplicate paths and only known $refs.
This commit is contained in:
@@ -3020,7 +3020,7 @@ export const ru: TranslationKeys = {
|
||||
analytics: {
|
||||
heading: "Аналитика",
|
||||
description: "Отправка анонимных данных об использовании для улучшения SnapOtter.",
|
||||
privacyNote: "Ваши изображения никогда не покидают Ваш компьютер.",
|
||||
privacyNote: "Ваши файлы никогда не покидают Ваш компьютер.",
|
||||
disabledByAdmin: "Аналитика отключена администратором сервера.",
|
||||
enabledLabel: "Аналитика включена",
|
||||
disabledLabel: "Аналитика отключена",
|
||||
@@ -3028,7 +3028,7 @@ export const ru: TranslationKeys = {
|
||||
},
|
||||
aiFeatures: {
|
||||
title: "AI Features",
|
||||
description: "Manage AI model bundles for advanced image processing.",
|
||||
description: "Управление пакетами AI-моделей для расширенной обработки файлов.",
|
||||
installAll: "Install All",
|
||||
diskUsage: "Disk usage:",
|
||||
installed: "Installed",
|
||||
@@ -3049,7 +3049,7 @@ export const ru: TranslationKeys = {
|
||||
heading: "О программе",
|
||||
appName: "SnapOtter",
|
||||
appDescription:
|
||||
"Самостоятельно размещаемый набор инструментов для обработки изображений с приоритетом конфиденциальности. 70+ инструмента. Изменение размера, сжатие, конвертация, водяные знаки и автоматизация рабочих процессов без отправки данных в облако.",
|
||||
"Самостоятельно размещаемый набор инструментов для обработки файлов с приоритетом конфиденциальности. 157 инструментов. Конвертация, сжатие, редактирование, транскрипция, OCR и автоматизация рабочих процессов с изображениями, видео, аудио, документами и данными без отправки данных в облако.",
|
||||
versionLabel: "Версия:",
|
||||
linksHeading: "Ссылки",
|
||||
githubLink: "Репозиторий GitHub",
|
||||
@@ -3098,8 +3098,8 @@ export const ru: TranslationKeys = {
|
||||
passwordManagedByProvider: "Управление паролем осуществляется Вашим провайдером идентификации.",
|
||||
enterUsername: "Введите имя пользователя",
|
||||
enterPassword: "Введите пароль",
|
||||
heroTitle: "Ваши изображения. Остаются Вашими.",
|
||||
heroSubtitle: "Все инструменты для работы с изображениями.",
|
||||
heroTitle: "Ваши файлы. Остаются Вашими.",
|
||||
heroSubtitle: "Все инструменты, которые Вам нужны.",
|
||||
rotatingPhrases: [
|
||||
"Без регистрации. Без учётных записей.",
|
||||
"Никаких загрузок в облако. Никогда.",
|
||||
@@ -3108,7 +3108,7 @@ export const ru: TranslationKeys = {
|
||||
"Без ограничений. Без скрытых лимитов.",
|
||||
"Работает полностью офлайн.",
|
||||
"Пакетная обработка без ограничений.",
|
||||
"70+ инструмента для изображений.",
|
||||
"157 инструментов.",
|
||||
"16 AI-моделей. На Вашем оборудовании.",
|
||||
"Молниеносная скорость. На базе Sharp.",
|
||||
"Готов к изолированным сетям.",
|
||||
@@ -3120,7 +3120,7 @@ export const ru: TranslationKeys = {
|
||||
"Альтернатива облачным сервисам.",
|
||||
"Изменение размера, сжатие, конвертация. Локально.",
|
||||
"Бесплатный редактор. Без водяных знаков.",
|
||||
"Пакетная обработка изображений. Без лимитов.",
|
||||
"Пакетная обработка файлов. Без лимитов.",
|
||||
"Удаление фона офлайн.",
|
||||
"Замена Canva для собственного сервера.",
|
||||
"API-ключи не нужны.",
|
||||
@@ -3311,12 +3311,12 @@ export const ru: TranslationKeys = {
|
||||
"Интрига нарастает...",
|
||||
"Обучаем Ваш компьютер новым фокусам...",
|
||||
"Настраиваем Ваши суперспособности...",
|
||||
"Ваши фотографии потом скажут спасибо...",
|
||||
"Ваши файлы потом скажут спасибо...",
|
||||
"Загрузка... но с шиком...",
|
||||
"Самое время сходить за кофе...",
|
||||
"Рим тоже не за день построили...",
|
||||
"Тсс... гений за работой...",
|
||||
"Ваши фото уже завидуют тому, что будет...",
|
||||
"Ваши проекты уже завидуют тому, что будет...",
|
||||
"Собираем команду мечты...",
|
||||
"Распаковываем великолепие...",
|
||||
"Почти закончили думать о начале... шутим...",
|
||||
@@ -3335,7 +3335,7 @@ export const ru: TranslationKeys = {
|
||||
gettingStarted: {
|
||||
heading: "Начало работы",
|
||||
description:
|
||||
"Выберите инструмент из боковой панели или воспользуйтесь поиском. Загрузите изображение, перетащив его на страницу или нажав область загрузки. Настройте параметры и скачайте результат.",
|
||||
"Выберите инструмент из боковой панели или воспользуйтесь поиском. Загрузите файл, перетащив его на страницу или нажав область загрузки. Настройте параметры и скачайте результат.",
|
||||
},
|
||||
keyboardShortcuts: {
|
||||
heading: "Горячие клавиши",
|
||||
@@ -3376,13 +3376,13 @@ export const ru: TranslationKeys = {
|
||||
analytics: {
|
||||
consentTitle: "Помогите улучшить SnapOtter",
|
||||
consentDescription:
|
||||
"Анонимная статистика использования помогает нам исправлять ошибки и создавать нужные Вам инструменты. Ваши изображения и файлы остаются на Вашем компьютере.",
|
||||
"Анонимная статистика использования помогает нам исправлять ошибки и создавать нужные Вам инструменты. Ваши файлы остаются на Вашем компьютере.",
|
||||
consentChangeable: "Вы можете отключить это в любое время в Настройках.",
|
||||
acceptButton: "Конечно, звучит хорошо",
|
||||
declineButton: "Не сейчас",
|
||||
settingsTitle: "Аналитика",
|
||||
settingsDescription: "Отправка анонимных данных об использовании для улучшения SnapOtter.",
|
||||
settingsPrivacy: "Ваши изображения никогда не покидают Ваш компьютер.",
|
||||
settingsPrivacy: "Ваши файлы никогда не покидают Ваш компьютер.",
|
||||
settingsDisabledByAdmin: "Аналитика отключена администратором сервера.",
|
||||
learnMore: "Подробнее",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user