Changed incorrect references to .vbs files to .bas and corrected USE_WEBSITE keyword naming. Also added missing fields to API response structure and clarified that start.bas is optional for bots.
104 lines
3 KiB
QBasic
104 lines
3 KiB
QBasic
REM General Bots: TRANSLATE Keyword - Universal Translation
|
|
REM Free translation using LibreTranslate API - No authentication required
|
|
REM Can be used by ANY template that needs translation
|
|
|
|
PARAM text AS string LIKE "Hello, how are you?"
|
|
PARAM from_lang AS string LIKE "en"
|
|
PARAM to_lang AS string LIKE "es"
|
|
DESCRIPTION "Translate text between languages using free API"
|
|
|
|
REM Validate input
|
|
IF NOT text OR text = "" THEN
|
|
TALK "❌ Please provide text to translate"
|
|
RETURN NULL
|
|
END IF
|
|
|
|
REM Set default languages if not provided
|
|
IF NOT from_lang OR from_lang = "" THEN
|
|
from_lang = "en"
|
|
END IF
|
|
|
|
IF NOT to_lang OR to_lang = "" THEN
|
|
to_lang = "es"
|
|
END IF
|
|
|
|
TALK "🌐 Translating from " + from_lang + " to " + to_lang + "..."
|
|
|
|
REM Try LibreTranslate API (free, open source)
|
|
REM Note: Public instance may have rate limits
|
|
translate_url = "https://libretranslate.com/translate"
|
|
|
|
REM Prepare POST data
|
|
post_data = NEW OBJECT
|
|
post_data.q = text
|
|
post_data.source = from_lang
|
|
post_data.target = to_lang
|
|
post_data.format = "text"
|
|
|
|
REM Set headers
|
|
SET HEADER "Content-Type" = "application/json"
|
|
|
|
REM Make translation request
|
|
translation_result = POST translate_url, post_data
|
|
|
|
IF translation_result.translatedText THEN
|
|
translated = translation_result.translatedText
|
|
|
|
result = NEW OBJECT
|
|
result.original = text
|
|
result.translated = translated
|
|
result.from = from_lang
|
|
result.to = to_lang
|
|
|
|
TALK "✅ Translation complete!"
|
|
TALK ""
|
|
TALK "📝 Original (" + from_lang + "):"
|
|
TALK text
|
|
TALK ""
|
|
TALK "✨ Translated (" + to_lang + "):"
|
|
TALK translated
|
|
|
|
RETURN result
|
|
ELSE
|
|
REM Fallback: Try alternative API or show error
|
|
TALK "❌ Translation failed. Trying alternative method..."
|
|
|
|
REM Alternative: Use MyMemory Translation API (free, no key)
|
|
mymemory_url = "https://api.mymemory.translated.net/get?q=" + text + "&langpair=" + from_lang + "|" + to_lang
|
|
|
|
fallback_result = GET mymemory_url
|
|
|
|
IF fallback_result.responseData.translatedText THEN
|
|
translated = fallback_result.responseData.translatedText
|
|
|
|
result = NEW OBJECT
|
|
result.original = text
|
|
result.translated = translated
|
|
result.from = from_lang
|
|
result.to = to_lang
|
|
result.confidence = fallback_result.responseData.match
|
|
|
|
TALK "✅ Translation complete (alternative API)!"
|
|
TALK ""
|
|
TALK "📝 Original (" + from_lang + "):"
|
|
TALK text
|
|
TALK ""
|
|
TALK "✨ Translated (" + to_lang + "):"
|
|
TALK translated
|
|
|
|
IF result.confidence THEN
|
|
TALK "🎯 Confidence: " + result.confidence
|
|
END IF
|
|
|
|
RETURN result
|
|
ELSE
|
|
TALK "❌ Could not translate text"
|
|
TALK ""
|
|
TALK "💡 Supported language codes:"
|
|
TALK "en = English, es = Spanish, fr = French"
|
|
TALK "de = German, it = Italian, pt = Portuguese"
|
|
TALK "ru = Russian, ja = Japanese, zh = Chinese"
|
|
TALK "ar = Arabic, hi = Hindi, ko = Korean"
|
|
RETURN NULL
|
|
END IF
|
|
END IF
|