Files

51 lines
1.5 KiB
Python

from deep_translator import GoogleTranslator
# LANGUAGES辞書はdeep-translatorの形式に合わせて取得
_LANG_DICT = GoogleTranslator().get_supported_languages(as_dict=True) # {'english': 'en', ...}
_LANG_CODES = list(_LANG_DICT.values())
class SimpleGoogleTranslateTextNode:
"""
A minimal Google Translate text node for ComfyUI.
"""
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"source_lang": (
["auto"] + _LANG_CODES,
{"default": "auto"},
),
"target_lang": (
_LANG_CODES,
{"default": "en"},
),
"text": ("STRING", {"multiline": True, "placeholder": "Input text"}),
}
}
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("translated",)
FUNCTION = "translate_text"
CATEGORY = "utils/Text"
def translate_text(self, source_lang, target_lang, text):
if not text.strip():
return ("",)
try:
translator = GoogleTranslator(source=source_lang, target=target_lang)
result = translator.translate(text)
return (result,)
except Exception as e:
return (f"[Translation error] {e}",)
NODE_CLASS_MAPPINGS = {
"SimpleGoogleTranslateTextNode": SimpleGoogleTranslateTextNode
}
NODE_DISPLAY_NAME_MAPPINGS = {
"SimpleGoogleTranslateTextNode": "Simple Google Translate Text"
}