Ctrl K
ComunidadGuías…

group-translate/manifest.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  "id": "group-translate",
  "name": "Group Auto-Translation",
  "version": "1.3.17",
  "type": "extension",
  "main": "dist/index.js",
  "description": "Auto-translates group messages between participants' languages via a LibreTranslate backend. Configure in-chat with /tr commands. Admin-gated; disabled until enabled.",
  "author": "Yudhi Armyndharis <yudhi@rmyndharis.com>",
  "license": "MIT",
  "homepage": "https://github.com/rmyndharis/OpenWA-plugins/tree/main/group-translate",
  "repository": "https://github.com/rmyndharis/OpenWA-plugins",
  "keywords": [
    "translation",
    "libretranslate",
    "i18n",
    "groups",
    "whatsapp",
    "openwa"
  ],
  "status": "stable",
  "minOpenWAVersion": "0.8.0",
  "testedOpenWAVersion": "0.30.0",
  "provides": [
    "translation"
  ],
  "permissions": [
    "messages:send",
    "engine:read",
    "net:fetch",
    "storage:use"
  ],
  "net": {
    "allow": [
      "localhost",
      "127.0.0.1"
    ],
    "allowConfigHosts": [
      "libretranslateUrl"
    ]
  },
  "sessionScoped": true,
  "sessions": [
    "*"
  ],
  "hooks": [
    "message:received"
  ],
  "configSchema": {
    "type": "object",
    "properties": {
      "libretranslateUrl": {
        "type": "string",
        "title": "LibreTranslate URL",
        "default": "http://localhost:7001",
        "required": true,
        "description": "Base URL of your LibreTranslate instance. A loopback URL (localhost / 127.0.0.1, any port) is allowed out of the box; any other host is admitted only over https, via net.allowConfigHosts. A loopback or otherwise private address additionally requires SSRF_ALLOWED_HOSTS on the OpenWA host."
      },
      "libretranslateApiKey": {
        "type": "string",
        "title": "LibreTranslate API key",
        "secret": true,
        "description": "Optional, if your instance requires one."
      },
      "timeoutMs": {
        "type": "number",
        "title": "Translate timeout (ms)",
        "default": 4000,
        "min": 500,
        "description": "Per-call timeout. Keep at or below the host hook budget (5000ms) so a slow backend doesn't make the host proceed un-translated."
      },
      "commandPrefix": {
        "type": "string",
        "title": "Command prefix",
        "default": "/tr"
      },
      "minLength": {
        "type": "number",
        "title": "Min message length to translate",
        "default": 2
      },
      "maxLength": {
        "type": "number",
        "title": "Max message length to translate",
        "default": 2000
      },
      "denyReply": {
        "type": "boolean",
        "title": "Reply on denied commands",
        "default": false,
        "description": "If true, reply 'admins only' when a non-admin runs a restricted command."
      },
      "announceInGroups": {
        "type": "boolean",
        "title": "Announce this bot in new groups",
        "default": false,
        "description": "If true, the first time this plugin sees a message in a group it posts an introduction there, once per group. Off by default: the account running this plugin is normally a real person's WhatsApp, so turning this on announces the bot into every group that account belongs to. Anyone can get the same text on demand with the /tr help command."
      }
    }
  },
  "i18n": {
    "es": {
      "name": "Traducción Automática de Grupos",
      "description": "Traduce automáticamente los mensajes del grupo entre los idiomas de los participantes mediante un backend LibreTranslate. Configúralo en el chat con comandos /tr. Gestionado por administradores; desactivado hasta que se habilite.",
      "config": {
        "libretranslateUrl": {
          "title": "URL de LibreTranslate"
        },
        "libretranslateApiKey": {
          "title": "Clave API de LibreTranslate"
        },
        "timeoutMs": {
          "title": "Tiempo de espera de traducción (ms)"
        },
        "commandPrefix": {
          "title": "Prefijo de comando"
        },
        "minLength": {
          "title": "Longitud mínima de mensaje a traducir"
        },
        "maxLength": {
          "title": "Longitud máxima de mensaje a traducir"
        },
        "denyReply": {
          "title": "Responder a comandos denegados"
        },
        "announceInGroups": {
          "title": "Anunciar este bot en grupos nuevos"
        }
      }
    },
    "fr": {
      "name": "Traduction Automatique de Groupe",
      "description": "Traduit automatiquement les messages du groupe entre les langues des participants via un backend LibreTranslate. Configurez dans le chat avec des commandes /tr. Réservé aux administrateurs ; désactivé jusqu'à activation.",
      "config": {
        "libretranslateUrl": {
          "title": "URL de LibreTranslate"
        },
        "libretranslateApiKey": {
          "title": "Clé API de LibreTranslate"
        },
        "timeoutMs": {
          "title": "Délai de traduction (ms)"
        },
        "commandPrefix": {
          "title": "Préfixe de commande"
        },
        "minLength": {
          "title": "Longueur minimale du message à traduire"
        },
        "maxLength": {
          "title": "Longueur maximale du message à traduire"
        },
        "denyReply": {
          "title": "Répondre aux commandes refusées"
        },
        "announceInGroups": {
          "title": "Annoncer ce bot dans les nouveaux groupes"
        }
      }
    },
    "it": {
      "name": "Traduzione Automatica di Gruppo",
      "description": "Traduce automaticamente i messaggi di gruppo tra le lingue dei partecipanti tramite un backend LibreTranslate. Configura in chat con i comandi /tr. Gestito dagli amministratori; disabilitato fino all'attivazione.",
      "config": {
        "libretranslateUrl": {
          "title": "URL di LibreTranslate"
        },
        "libretranslateApiKey": {
          "title": "Chiave API di LibreTranslate"
        },
        "timeoutMs": {
          "title": "Timeout di traduzione (ms)"
        },
        "commandPrefix": {
          "title": "Prefisso comando"
        },
        "minLength": {
          "title": "Lunghezza minima messaggio da tradurre"
        },
        "maxLength": {
          "title": "Lunghezza massima messaggio da tradurre"
        },
        "denyReply": {
          "title": "Rispondi ai comandi negati"
        },
        "announceInGroups": {
          "title": "Annunciare questo bot nei nuovi gruppi"
        }
      }
    },
    "ar": {
      "name": "الترجمة التلقائية للمجموعات",
      "description": "يترجم رسائل المجموعة تلقائيًا بين لغات المشاركين عبر خلفية LibreTranslate. اضبطه داخل المحادثة بأوامر /tr. مقيّد للمشرفين؛ معطّل حتى يُفعَّل.",
      "config": {
        "libretranslateUrl": {
          "title": "رابط LibreTranslate"
        },
        "libretranslateApiKey": {
          "title": "مفتاح API لـ LibreTranslate"
        },
        "timeoutMs": {
          "title": "مهلة الترجمة (بالميلي ثانية)"
        },
        "commandPrefix": {
          "title": "بادئة الأمر"
        },
        "minLength": {
          "title": "الحد الأدنى لطول الرسالة المترجمة"
        },
        "maxLength": {
          "title": "الحد الأقصى لطول الرسالة المترجمة"
        },
        "denyReply": {
          "title": "الرد على الأوامر المرفوضة"
        },
        "announceInGroups": {
          "title": "الإعلان عن هذا البوت في المجموعات الجديدة"
        }
      }
    },
    "he": {
      "name": "תרגום אוטומטי לקבוצות",
      "description": "מתרגם אוטומטית הודעות קבוצה בין שפות המשתתפים דרך backend של LibreTranslate. הגדר בצ'אט עם פקודות /tr. מוגן בניהול; מושבת עד להפעלה.",
      "config": {
        "libretranslateUrl": {
          "title": "כתובת LibreTranslate"
        },
        "libretranslateApiKey": {
          "title": "מפתח API של LibreTranslate"
        },
        "timeoutMs": {
          "title": "פסק זמן לתרגום (ms)"
        },
        "commandPrefix": {
          "title": "קידומת פקודה"
        },
        "minLength": {
          "title": "אורך מינימלי להודעה לתרגום"
        },
        "maxLength": {
          "title": "אורך מקסימלי להודעה לתרגום"
        },
        "denyReply": {
          "title": "השב על פקודות שנדחו"
        },
        "announceInGroups": {
          "title": "להכריז על הבוט בקבוצות חדשות"
        }
      }
    },
    "te": {
      "name": "గ్రూప్ ఆటో-అనువాదం",
      "description": "LibreTranslate బ్యాకెండ్ ద్వారా గ్రూప్ సందేశాలను పాల్గొనేవారి భాషల మధ్య స్వయంచాలకంగా అనువదిస్తుంది. /tr కమాండ్‌లతో చాట్‌లో కాన్ఫిగర్ చేయండి. అడ్మిన్-గేటెడ్; ప్రారంభించే వరకు నిష్క్రియం.",
      "config": {
        "libretranslateUrl": {
          "title": "LibreTranslate చిరునామా"
        },
        "libretranslateApiKey": {
          "title": "LibreTranslate API కీ"
        },
        "timeoutMs": {
          "title": "అనువాద టైమ్‌అవుట్ (ms)"
        },
        "commandPrefix": {
          "title": "కమాండ్ ప్రిఫిక్స్"
        },
        "minLength": {
          "title": "అనువదించే కనీస సందేశ పొడవు"
        },
        "maxLength": {
          "title": "అనువదించే గరిష్ట సందేశ పొడవు"
        },
        "denyReply": {
          "title": "తిరస్కరించిన కమాండ్‌లకు జవాబివ్వు"
        },
        "announceInGroups": {
          "title": "కొత్త గ్రూపుల్లో ఈ బాట్‌ను పరిచయం చేయి"
        }
      }
    },
    "zh-CN": {
      "name": "群组自动翻译",
      "description": "通过 LibreTranslate 后端自动翻译群组成员之间的消息。使用 /tr 命令在聊天中配置。仅管理员可操作;启用前处于禁用状态。",
      "config": {
        "libretranslateUrl": {
          "title": "LibreTranslate 地址"
        },
        "libretranslateApiKey": {
          "title": "LibreTranslate API 密钥"
        },
        "timeoutMs": {
          "title": "翻译超时 (ms)"
        },
        "commandPrefix": {
          "title": "命令前缀"
        },
        "minLength": {
          "title": "翻译的最小消息长度"
        },
        "maxLength": {
          "title": "翻译的最大消息长度"
        },
        "denyReply": {
          "title": "拒绝命令时回复"
        },
        "announceInGroups": {
          "title": "在新群组中介绍此机器人"
        }
      }
    },
    "zh-HK": {
      "name": "群組自動翻譯",
      "description": "透過 LibreTranslate 後端自動翻譯群組成員之間的訊息。使用 /tr 指令在聊天中設定。僅管理員可操作;啟用前處於停用狀態。",
      "config": {
        "libretranslateUrl": {
          "title": "LibreTranslate 網址"
        },
        "libretranslateApiKey": {
          "title": "LibreTranslate API 金鑰"
        },
        "timeoutMs": {
          "title": "翻譯逾時 (ms)"
        },
        "commandPrefix": {
          "title": "指令前綴"
        },
        "minLength": {
          "title": "翻譯的最小訊息長度"
        },
        "maxLength": {
          "title": "翻譯的最大訊息長度"
        },
        "denyReply": {
          "title": "拒絕指令時回覆"
        },
        "announceInGroups": {
          "title": "喺新群組介紹呢個機械人"
        }
      }
    },
    "hi": {
      "name": "ग्रुप ऑटो-अनुवाद",
      "description": "LibreTranslate बैकएंड के माध्यम से प्रतिभागियों की भाषाओं के बीच ग्रुप संदेशों का ऑटो-अनुवाद करता है। /tr कमांड के साथ इन-चैट कॉन्फ़िगर करें। एडमिन-गेटेड; सक्षम किए जाने तक अक्षम।",
      "config": {
        "libretranslateUrl": {
          "title": "LibreTranslate URL"
        },
        "libretranslateApiKey": {
          "title": "LibreTranslate API कुंजी"
        },
        "timeoutMs": {
          "title": "अनुवाद टाइमआउट (ms)"
        },
        "commandPrefix": {
          "title": "कमांड प्रीफिक्स"
        },
        "minLength": {
          "title": "अनुवाद करने के लिए संदेश की न्यूनतम लंबाई"
        },
        "maxLength": {
          "title": "अनुवाद करने के लिए संदेश की अधिकतम लंबाई"
        },
        "denyReply": {
          "title": "अस्वीकृत कमांड पर रिप्लाई करें"
        },
        "announceInGroups": {
          "title": "नए ग्रुप्स में इस बॉट की घोषणा करें"
        }
      }
    },
    "de": {
      "name": "Automatische Gruppenübersetzung",
      "description": "Übersetzt Gruppennachrichten mit LibreTranslate. Administratoren steuern die zunächst deaktivierte Übersetzung über /tr.",
      "config": {
        "libretranslateUrl": {
          "title": "LibreTranslate-URL"
        },
        "libretranslateApiKey": {
          "title": "LibreTranslate-API-Schlüssel"
        },
        "timeoutMs": {
          "title": "Anfragezeitlimit (ms)"
        },
        "commandPrefix": {
          "title": "Befehlspräfix"
        },
        "minLength": {
          "title": "Minimale Nachrichtenlänge für Übersetzungen"
        },
        "maxLength": {
          "title": "Maximale Nachrichtenlänge für Übersetzungen"
        },
        "denyReply": {
          "title": "Auf abgelehnte Befehle antworten"
        },
        "announceInGroups": {
          "title": "Bot in neuen Gruppen vorstellen"
        }
      }
    },
    "tr": {
      "name": "Otomatik Grup Çevirisi",
      "description": "Grup mesajlarını LibreTranslate ile çevirir. Başlangıçta kapalıdır; yöneticiler /tr komutlarıyla yönetir.",
      "config": {
        "libretranslateUrl": {
          "title": "LibreTranslate URL adresi"
        },
        "libretranslateApiKey": {
          "title": "LibreTranslate API anahtarı"
        },
        "timeoutMs": {
          "title": "İstek zaman aşımı (ms)"
        },
        "commandPrefix": {
          "title": "Komut öneki"
        },
        "minLength": {
          "title": "Çevrilecek en kısa mesaj uzunluğu"
        },
        "maxLength": {
          "title": "Çevrilecek en uzun mesaj uzunluğu"
        },
        "denyReply": {
          "title": "Reddedilen komutlara yanıt ver"
        },
        "announceInGroups": {
          "title": "Botu yeni gruplarda duyur"
        }
      }
    },
    "pt-BR": {
      "name": "Tradução automática de grupos",
      "description": "Traduz mensagens de grupos com LibreTranslate. Começa desativado e é gerenciado por administradores com /tr.",
      "config": {
        "libretranslateUrl": {
          "title": "URL do LibreTranslate"
        },
        "libretranslateApiKey": {
          "title": "Chave da API do LibreTranslate"
        },
        "timeoutMs": {
          "title": "Tempo limite da requisição (ms)"
        },
        "commandPrefix": {
          "title": "Prefixo dos comandos"
        },
        "minLength": {
          "title": "Comprimento mínimo para tradução"
        },
        "maxLength": {
          "title": "Comprimento máximo para tradução"
        },
        "denyReply": {
          "title": "Responder a comandos negados"
        },
        "announceInGroups": {
          "title": "Apresentar o bot em novos grupos"
        }
      }
    },
    "ko": {
      "name": "그룹 자동 번역",
      "description": "LibreTranslate로 그룹 메시지를 번역합니다. 기본적으로 꺼져 있으며 관리자가 /tr 명령으로 제어합니다.",
      "config": {
        "libretranslateUrl": {
          "title": "LibreTranslate URL"
        },
        "libretranslateApiKey": {
          "title": "LibreTranslate API 키"
        },
        "timeoutMs": {
          "title": "요청 제한 시간 (ms)"
        },
        "commandPrefix": {
          "title": "명령 접두사"
        },
        "minLength": {
          "title": "번역할 최소 메시지 길이"
        },
        "maxLength": {
          "title": "번역할 최대 메시지 길이"
        },
        "denyReply": {
          "title": "거부된 명령에 응답"
        },
        "announceInGroups": {
          "title": "새 그룹에 봇 소개"
        }
      }
    },
    "id": {
      "name": "Penerjemah Grup Otomatis",
      "description": "Menerjemahkan pesan grup melalui LibreTranslate. Nonaktif secara default dan dikelola admin melalui perintah /tr.",
      "config": {
        "libretranslateUrl": {
          "title": "URL LibreTranslate"
        },
        "libretranslateApiKey": {
          "title": "Kunci API LibreTranslate"
        },
        "timeoutMs": {
          "title": "Batas waktu permintaan (ms)"
        },
        "commandPrefix": {
          "title": "Awalan perintah"
        },
        "minLength": {
          "title": "Panjang minimum pesan untuk diterjemahkan"
        },
        "maxLength": {
          "title": "Panjang maksimum pesan untuk diterjemahkan"
        },
        "denyReply": {
          "title": "Balas perintah yang ditolak"
        },
        "announceInGroups": {
          "title": "Perkenalkan bot di grup baru"
        }
      }
    }
  }
}