55_argos_translate_initialized = False
66_argos_translate_available = False
77_translation_models = {}
8+ _verbose = False # Control output verbosity
9+
10+ def set_verbose_mode (enabled : bool ):
11+ """Control whether initialization messages should be shown"""
12+ global _verbose
13+ _verbose = enabled
14+
15+ def _log (message : str ):
16+ """Conditional logging based on verbosity"""
17+ if _verbose :
18+ print (message )
819
920def initialize_argos_translate (source_lang = "en" , target_lang = "en" ):
10- """Initialize Argos Translate with status messages and package installation"""
21+ """Initialize Argos Translate with silent package installation"""
1122 global _argos_translate_initialized , _argos_translate_available , _translation_models
1223
1324 if _argos_translate_initialized :
@@ -20,20 +31,20 @@ def initialize_argos_translate(source_lang="en", target_lang="en"):
2031 import argostranslate .translate
2132 _argos_translate_available = True
2233
23- # Update package index
24- print ("Updating Argos Translate package index..." )
34+ # Silently update package index
35+ _log ("Updating Argos Translate package index..." )
2536 argostranslate .package .update_package_index ()
2637 available_packages = argostranslate .package .get_available_packages ()
2738
28- # Find and install required translation package
39+ # Find required translation package
2940 package_to_install = next (
3041 (pkg for pkg in available_packages
3142 if pkg .from_code == source_lang and pkg .to_code == target_lang ),
3243 None
3344 )
3445
3546 if package_to_install :
36- print (f"Installing translation package: { source_lang } -> { target_lang } " )
47+ _log (f"Installing translation package: { source_lang } -> { target_lang } " )
3748 argostranslate .package .install_from_path (package_to_install .download ())
3849
3950 # Load the installed model
@@ -43,22 +54,22 @@ def initialize_argos_translate(source_lang="en", target_lang="en"):
4354
4455 if from_lang and to_lang :
4556 _translation_models [(source_lang , target_lang )] = from_lang .get_translation (to_lang )
46- print ("Translation package installed successfully." )
57+ _log ("Translation package installed successfully." )
4758 else :
48- warnings .warn ("Failed to load installed languages." )
59+ warnings .warn ("Failed to load installed languages." , RuntimeWarning )
4960 else :
50- warnings .warn (f"No translation package available for { source_lang } -> { target_lang } " )
61+ warnings .warn (f"No translation package available for { source_lang } -> { target_lang } " , RuntimeWarning )
5162
5263 except ImportError :
53- warnings .warn ("Argos Translate not available. Install with: pip install argostranslate" )
64+ warnings .warn ("Argos Translate not available. Install with: pip install argostranslate" , RuntimeWarning )
5465 _argos_translate_available = False
5566 except Exception as e :
56- warnings .warn (f"Failed to initialize Argos Translate: { str (e )} " )
67+ warnings .warn (f"Failed to initialize Argos Translate: { str (e )} " , RuntimeWarning )
5768 _argos_translate_available = False
5869
5970@lru_cache (maxsize = 1000 )
6071def argos_translator (text , source_lang = "en" ):
61- """Translate text using Argos Translate with lazy initialization"""
72+ """Translate text using Argos Translate with silent initialization"""
6273 target_lang = "en" # We always translate to English
6374
6475 if not _argos_translate_initialized :
@@ -71,21 +82,21 @@ def argos_translator(text, source_lang="en"):
7182 # Check if we have a cached model
7283 if (source_lang , target_lang ) not in _translation_models :
7384 # Try to load existing installed model
85+ import argostranslate .translate
7486 installed_languages = argostranslate .translate .get_installed_languages ()
7587 from_lang = next ((lang for lang in installed_languages if lang .code == source_lang ), None )
7688 to_lang = next ((lang for lang in installed_languages if lang .code == target_lang ), None )
7789
7890 if from_lang and to_lang :
7991 _translation_models [(source_lang , target_lang )] = from_lang .get_translation (to_lang )
8092 else :
81- warnings .warn (f"No translation model available for { source_lang } -> { target_lang } " )
93+ warnings .warn (f"No translation model available for { source_lang } -> { target_lang } " , RuntimeWarning )
8294 return text
8395
8496 # Perform the translation
8597 translation_model = _translation_models [(source_lang , target_lang )]
86- translated_text = translation_model .translate (text )
87- return translated_text
98+ return translation_model .translate (text )
8899
89100 except Exception as e :
90- warnings .warn (f"Translation failed for '{ text } ': { str (e )} " )
101+ warnings .warn (f"Translation failed for '{ text [: 20 ] } ... ': { str (e )} " , RuntimeWarning )
91102 return text
0 commit comments