group-translate/manifest.json
Rama main · réplica de lectura del repositorio original.
{
"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"
}
}
}
}
}