Bighnesh Sahoo
addded cli functionality to return the languages supported by the chosen translator service
b96c7cf
"""Console script for deep_translator.""" | |
import argparse | |
import sys | |
from .google_trans import GoogleTranslator | |
from .mymemory import MyMemoryTranslator | |
from .pons import PonsTranslator | |
from .linguee import LingueeTranslator | |
def translate(args): | |
""" | |
function used to provide translations from the parsed terminal arguments | |
@param args: parsed terminal arguments | |
@return: None | |
""" | |
translator = None | |
if args.translator == 'google': | |
translator = GoogleTranslator(source=args.source, target=args.target) | |
elif args.translator == 'pons': | |
translator = PonsTranslator(source=args.source, target=args.target) | |
elif args.translator == 'linguee': | |
translator = LingueeTranslator(source=args.source, target=args.target) | |
elif args.translator == 'mymemory': | |
translator = MyMemoryTranslator(source=args.source, target=args.target) | |
else: | |
print("given translator is not supported. Please use a supported translator from the deep_translator tool") | |
res = translator.translate(args.text) | |
print(" | Translation from {} to {} |".format(args.source, args.target)) | |
print("Translated text: \n {}".format(res)) | |
def return_supported_languages(args): | |
""" | |
function used to return the languages supported by the translator service from the parsed terminal arguments | |
@param args: parsed terminal arguments | |
@return: None | |
""" | |
if args.translator == 'google': | |
translator = GoogleTranslator | |
elif args.translator == 'pons': | |
translator = PonsTranslator | |
elif args.translator == 'linguee': | |
translator = LingueeTranslator | |
elif args.translator == 'mymemory': | |
translator = MyMemoryTranslator | |
else: | |
print("given translator is not supported. Please use a supported translator from the deep_translator tool") | |
translator_supported_languages = translator.get_supported_languages(as_dict=True) | |
print(f'Languages supported by \'{args.translator}\' are :\n') | |
print(translator_supported_languages) | |
def main(): | |
""" | |
function responsible for parsing terminal arguments and provide them for further use in the translation process | |
""" | |
parser = argparse.ArgumentParser() | |
parser.add_argument('--translator', '-trans', | |
default='google', type=str, help="name of the translator you want to use", required=True) | |
parser.add_argument('--source', '-src', type=str, help="source language to translate from") | |
parser.add_argument('--target', '-tg', type=str, help="target language to translate to") | |
parser.add_argument('--text', '-txt', type=str, help="text you want to translate") | |
parser.add_argument('--languages', '-lang',action='store_true', help="all the languages available with the translator. Run the command deep_translator -trans <translator service> -lang") | |
args = parser.parse_args() | |
if args.languages: | |
return_supported_languages(args) | |
else: | |
translate(args) | |
# sys.exit() | |
if __name__ == "__main__": | |
main() | |