botserver/templates/default.gbai/default.gbdialog/translate.bas

61 lines
1.7 KiB
QBasic
Raw Normal View History

PARAM text AS STRING LIKE "Hello, how are you?" DESCRIPTION "Text to translate"
PARAM from_lang AS STRING LIKE "en" DESCRIPTION "Source language code (en, es, pt, fr, de, etc)" OPTIONAL
PARAM to_lang AS STRING LIKE "es" DESCRIPTION "Target language code (en, es, pt, fr, de, etc)" OPTIONAL
2025-11-21 10:44:29 -03:00
DESCRIPTION "Translate text between languages using free translation API"
2025-11-21 10:44:29 -03:00
IF NOT from_lang THEN
2025-11-21 10:44:29 -03:00
from_lang = "en"
END IF
IF NOT to_lang THEN
2025-11-21 10:44:29 -03:00
to_lang = "es"
END IF
TALK "Translating from " + from_lang + " to " + to_lang + "..."
2025-11-21 10:44:29 -03:00
WITH post_data
q = text
source = from_lang
target = to_lang
format = "text"
END WITH
2025-11-21 10:44:29 -03:00
SET HEADER "Content-Type" = "application/json"
translation_result = POST "https://libretranslate.com/translate", post_data
2025-11-21 10:44:29 -03:00
IF translation_result.translatedText THEN
WITH result
original = text
translated = translation_result.translatedText
from = from_lang
to = to_lang
END WITH
2025-11-21 10:44:29 -03:00
TALK "Original (" + from_lang + "): " + text
TALK "Translated (" + to_lang + "): " + result.translated
2025-11-21 10:44:29 -03:00
RETURN result
ELSE
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
WITH result
original = text
translated = fallback_result.responseData.translatedText
from = from_lang
to = to_lang
END WITH
2025-11-21 10:44:29 -03:00
TALK "Original (" + from_lang + "): " + text
TALK "Translated (" + to_lang + "): " + result.translated
2025-11-21 10:44:29 -03:00
RETURN result
ELSE
TALK "Could not translate text"
2025-11-21 10:44:29 -03:00
RETURN NULL
END IF
END IF