def load_languages(): global __languages if __languages is None or len(__languages) == 0: __languages = translate.load_installed_languages() return __languages
def load_languages(self): self.languages = translate.load_installed_languages() language_names = tuple([language.name for language in self.languages]) self.left_language_combo.clear() self.left_language_combo.addItems(language_names) if len(language_names) > 0: self.left_language_combo.setCurrentIndex(0) self.right_language_combo.clear() self.right_language_combo.addItems(language_names) if len(language_names) > 1: self.right_language_combo.setCurrentIndex(1) self.translate()
def main(): """Run Argos Translate command line interface""" # Parse args parser = argparse.ArgumentParser(description="Open-source offline translation.\n") parser.add_argument( "text", nargs="?", metavar="TEXT", help="The text to translate. Read from standard input if missing.", ) parser.add_argument( "--from-lang", "-f", help="The code for the language to translate from (ISO 639-1)", ) parser.add_argument( "--to-lang", "-t", help="The code for the language to translate to (ISO 639-1)" ) args = parser.parse_args() from_and_to_lang_provided = args.from_lang is not None and args.to_lang is not None # Get text to translate if args.text: # argos-translate-cli --from-lang en --to-lang es "Text to translate" text_to_translate = args.text elif from_and_to_lang_provided: # echo "Text to translate" | argos-translate-cli --from-lang en --to-lang es text_to_translate = "".join(sys.stdin) else: # argos-translate parser.print_help() return # Perform translation if from_and_to_lang_provided: installed_languages = { lang.code: lang for lang in translate.load_installed_languages() } if args.from_lang not in installed_languages: parser.error("{!r} is not an installed language.".format(args.from_lang)) if args.to_lang not in installed_languages: parser.error("{!r} is not an installed language.".format(args.to_lang)) from_lang = installed_languages[args.from_lang] to_lang = installed_languages[args.to_lang] translation = from_lang.get_translation(to_lang) if translation is None: parser.error( f"No translation installed from {args.from_name} to {args.to_name}" ) else: translation = translate.IdentityTranslation("") # Print translation print(translation.translate(text_to_translate))
def check_and_install_models(force=False, load_only_lang_codes=None): if len(package.get_installed_packages()) < 2 or force: # Update package definitions from remote print("Updating language models") package.update_package_index() # Load available packages from local package index available_packages = package.load_available_packages() print("Found %s models" % len(available_packages)) if load_only_lang_codes is not None: # load_only_lang_codes: List[str] (codes) # Ensure the user does not use any unavailable language code. unavailable_lang_codes = set(load_only_lang_codes) for pack in available_packages: unavailable_lang_codes -= {pack.from_code, pack.to_code} if unavailable_lang_codes: raise ValueError("Unavailable language codes: %s." % ",".join(sorted(unavailable_lang_codes))) # Keep only the packages that have both from_code and to_code in our list. available_packages = [ pack for pack in available_packages if pack.from_code in load_only_lang_codes and pack.to_code in load_only_lang_codes ] if not available_packages: raise ValueError("no available package") print("Keep %s models" % len(available_packages)) # Download and install all available packages for available_package in available_packages: print("Downloading %s (%s) ..." % (available_package, available_package.package_version)) download_path = available_package.download() package.install_from_path(download_path) # reload installed languages app.language.languages = translate.load_installed_languages() print("Loaded support for %s languages (%s models total)!" % (len( translate.load_installed_languages()), len(available_packages)))
def main(): # Parse args parser = argparse.ArgumentParser() parser.add_argument('text', nargs='?', help='The text to translate') parser.add_argument( '--from-lang', help='The code for the language to translate from (ISO 639-1)') parser.add_argument( '--to-lang', help='The code for the language to translate to (ISO 639-1)') args = parser.parse_args() from_and_to_lang_provided = args.from_lang != None and args.to_lang != None # Get text to translate if args.text: # argos-translate-cli --from-lang en --to-lang es "Text to translate" text_to_translate = args.text elif from_and_to_lang_provided: # echo "Text to translate" | argos-translate-cli --from-lang en --to-lang es text_to_translate = '' for line in sys.stdin: text_to_translate += line else: # argos-translate parser.print_help() return # Perform translation if from_and_to_lang_provided: installed_languages = translate.load_installed_languages() from_lang_index = None for i, lang in enumerate(installed_languages): if lang.code == args.from_lang: from_lang_index = i break to_lang_index = None for i, lang in enumerate(installed_languages): if lang.code == args.to_lang: to_lang_index = i break from_lang = installed_languages[from_lang_index] to_lang = installed_languages[to_lang_index] translation = from_lang.get_translation(to_lang) if translation == None: sys.exit('No translation installed from {} to {}'.format( args.from_name, args.to_name)) else: translation = translate.IdentityTranslation('') # Print translation print(translation.translate(text_to_translate))
def check_and_install_models(force=False): if len(package.get_installed_packages()) < 2 or force: # Update package definitions from remote print("Updating language models") package.update_package_index() # Load available packages from local package index available_packages = package.load_available_packages() print("Found %s models" % len(available_packages)) # Download and install all available packages for available_package in available_packages: print("Downloading %s (%s) ..." % (available_package, available_package.package_version)) download_path = available_package.download() package.install_from_path(download_path) # reload installed languages global languages languages = translate.load_installed_languages() print("Loaded support for %s languages (%s models total)!" % (len( translate.load_installed_languages()), len(available_packages)))
def main(): # Parse args parser = argparse.ArgumentParser( description='Open-source offline translation.\n') parser.add_argument('text', nargs='?', metavar='TEXT', help='The text to translate. Read from standard input if missing.') parser.add_argument('--from-lang', '-f', help='The code for the language to translate from (ISO 639-1)') parser.add_argument('--to-lang', '-t', help='The code for the language to translate to (ISO 639-1)') args = parser.parse_args() from_and_to_lang_provided = args.from_lang is not None and args.to_lang is not None # Get text to translate if args.text: # argos-translate-cli --from-lang en --to-lang es "Text to translate" text_to_translate = args.text elif from_and_to_lang_provided: # echo "Text to translate" | argos-translate-cli --from-lang en --to-lang es text_to_translate = ''.join(sys.stdin) else: # argos-translate parser.print_help() return # Perform translation if from_and_to_lang_provided: installed_languages = { lang.code: lang for lang in translate.load_installed_languages()} if args.from_lang not in installed_languages: parser.error('{!r} is not an installed language.'.format( args.from_lang)) if args.to_lang not in installed_languages: parser.error('{!r} is not an installed language.'.format( args.to_lang)) from_lang = installed_languages[args.from_lang] to_lang = installed_languages[args.to_lang] translation = from_lang.get_translation(to_lang) if translation is None: parser.error(f'No translation installed from {args.from_name} to {args.to_name}') else: translation = translate.IdentityTranslation('') # Print translation print(translation.translate(text_to_translate))
def check_and_install_models(force=False): if os.path.exists(INSTALLED_MODELS_DIR) and not force: return if os.path.exists(INSTALLED_MODELS_DIR): print("Removing old %s" % INSTALLED_MODELS_DIR) shutil.rmtree(INSTALLED_MODELS_DIR) print("Creating %s" % INSTALLED_MODELS_DIR) os.makedirs(INSTALLED_MODELS_DIR, exist_ok=True) for f in glob.glob("models/**.argosmodel"): print("Installing %s..." % f) with zipfile.ZipFile(f, 'r') as zip: zip.extractall(path=INSTALLED_MODELS_DIR) print("Installed %s language models!" % (len(translate.load_installed_languages())))
def main(): # Parse args parser = argparse.ArgumentParser() parser.add_argument('text', help='The text to translate') parser.add_argument( '--from-lang', help='The code for the language to translate from (ISO 639-1)') parser.add_argument( '--to-lang', help='The code for the language to translate to (ISO 639-1)') args = parser.parse_args() # Perform translation if args.from_lang != None and args.to_lang != None: installed_languages = translate.load_installed_languages() from_lang_index = None for i, lang in enumerate(installed_languages): if lang.code == args.from_lang: from_lang_index = i break to_lang_index = None for i, lang in enumerate(installed_languages): if lang.code == args.to_lang: to_lang_index = i break from_lang = installed_languages[from_lang_index] to_lang = installed_languages[to_lang_index] translation = from_lang.get_translation(to_lang) if translation == None: sys.exit('No translation installed from {} to {}'.format( args.from_name, args.to_name)) else: translation = translate.IdentityTranslation('') # Print translation print(translation.translate(args.text))
import string from argostranslate import translate from polyglot.detect.base import Detector, UnknownLanguage from polyglot.transliteration.base import Transliterator languages = translate.load_installed_languages() __lang_codes = [l.code for l in languages] def detect_languages(text): # detect batch processing if isinstance(text, list): is_batch = True else: is_batch = False text = [text] # get the candidates candidates = [] for t in text: try: candidates.extend(Detector(t).languages) except UnknownLanguage: pass # total read bytes of the provided text read_bytes_total = sum(c.read_bytes for c in candidates) # only use candidates that are supported by argostranslate