# transprint.py
from deep_translator import GoogleTranslator
import locale
import sys

class PrintTranslator:
    @staticmethod
    def traducir_print(*args, idioma_destino=None):
        # Detecta el idioma local si no se pasa uno específico
        idioma_local = locale.getdefaultlocale()[0].split('_')[0] if idioma_destino is None else idioma_destino

        # Traducir el mensaje a través de Google Translator
        texto = ' '.join(map(str, args))
        texto_traducido = GoogleTranslator(source='auto', target=idioma_local).translate(texto)
        
        # Imprimir el texto traducido
        print(texto_traducido)

    @staticmethod
    def traducir(*args, destino=None):
        return PrintTranslator.traducir_print(*args, idioma_destino=destino)

# Redefinir la función print para que use nuestra función de traducción
print = PrintTranslator.traducir

# Si se ejecuta como un script desde la consola
if __name__ == "__main__":
    if len(sys.argv) > 1:
        # Si hay argumentos en la consola
        texto = ' '.join(sys.argv[1:])
        # Si se incluye el argumento `destino`, se traduce
        destino = None
        if '--destino' in sys.argv:
            destino_index = sys.argv.index('--destino') + 1
            if destino_index < len(sys.argv):
                destino = sys.argv[destino_index]
                texto = ' '.join(sys.argv[1:destino_index-1])
        print(texto, destino=destino)
    else:
        print("Por favor ingresa un texto para traducir.")
