@@ -475,9 +475,18 @@ def build_strategy_plugin_alert_messages(
475475 route = getattr (signal , "canonical_route" , None ) or "unknown_route"
476476 action = getattr (signal , "suggested_action" , None ) or "unknown_action"
477477 plugin = translate_strategy_plugin_value ("name" , getattr (signal , "plugin" , None ), translator = translator )
478+ translated_mode = translate_strategy_plugin_value (
479+ "mode" ,
480+ getattr (signal , "effective_mode" , None ),
481+ translator = translator ,
482+ )
478483 translated_route = translate_strategy_plugin_value ("route" , route , translator = translator )
479484 translated_action = translate_strategy_plugin_value ("action" , action , translator = translator )
480485 strategy = str (strategy_label or getattr (signal , "strategy" , None ) or "" ).strip () or "unknown"
486+ would_trade = _translate_bool (
487+ translator ,
488+ bool (getattr (signal , "would_trade_if_enabled" , False )),
489+ )
481490 subject = _translate (
482491 translator ,
483492 "strategy_plugin_alert_subject" ,
@@ -490,6 +499,7 @@ def build_strategy_plugin_alert_messages(
490499 subject = f"[{ context } ] { subject } "
491500 body_lines = [
492501 _translate (translator , "strategy_plugin_alert_title" , fallback = "Strategy Plugin Alert" ),
502+ "" ,
493503 ]
494504 if context :
495505 body_lines .append (
@@ -502,33 +512,48 @@ def build_strategy_plugin_alert_messages(
502512 )
503513 body_lines .extend (
504514 [
505- _translate (
506- translator ,
507- "strategy_plugin_line" ,
508- fallback = "Plugin: {plugin} | status: {route} | notice: {action}" ,
509- plugin = plugin ,
510- mode = translate_strategy_plugin_value ("mode" , getattr (signal , "effective_mode" , None ), translator = translator ),
511- route = translated_route ,
512- action = translated_action ,
513- ),
514- _translate (
515- translator ,
516- "strategy_plugin_alert_strategy" ,
517- fallback = "Strategy: {strategy}" ,
518- strategy = strategy ,
519- ),
520- _translate (
521- translator ,
522- "strategy_plugin_alert_as_of" ,
523- fallback = "Signal as-of: {as_of}" ,
524- as_of = getattr (signal , "as_of" , None ) or "unknown" ,
525- ),
526- _translate (
527- translator ,
528- "strategy_plugin_alert_would_trade" ,
529- fallback = "Would trade if enabled: {value}" ,
530- value = str (bool (getattr (signal , "would_trade_if_enabled" , False ))).lower (),
531- ),
515+ _translate (
516+ translator ,
517+ "strategy_plugin_alert_strategy" ,
518+ fallback = "Strategy: {strategy}" ,
519+ strategy = strategy ,
520+ ),
521+ _translate (
522+ translator ,
523+ "strategy_plugin_alert_plugin" ,
524+ fallback = "Plugin: {plugin}" ,
525+ plugin = plugin ,
526+ ),
527+ _translate (
528+ translator ,
529+ "strategy_plugin_alert_status" ,
530+ fallback = "Status: {route}" ,
531+ route = translated_route ,
532+ ),
533+ _translate (
534+ translator ,
535+ "strategy_plugin_alert_action" ,
536+ fallback = "Notice: {action}" ,
537+ action = translated_action ,
538+ ),
539+ _translate (
540+ translator ,
541+ "strategy_plugin_alert_mode" ,
542+ fallback = "Mode: {mode}" ,
543+ mode = translated_mode ,
544+ ),
545+ _translate (
546+ translator ,
547+ "strategy_plugin_alert_as_of" ,
548+ fallback = "Signal as-of: {as_of}" ,
549+ as_of = getattr (signal , "as_of" , None ) or "unknown" ,
550+ ),
551+ _translate (
552+ translator ,
553+ "strategy_plugin_alert_would_trade" ,
554+ fallback = "Would trade if enabled: {value}" ,
555+ value = would_trade ,
556+ ),
532557 ]
533558 )
534559 source = getattr (signal , "source_uri" , None ) or getattr (signal , "local_path" , None )
@@ -661,6 +686,14 @@ def _translate(
661686 return translated if translated != key else fallback .format (** kwargs )
662687
663688
689+ def _translate_bool (translator : Callable [..., str ] | None , value : bool ) -> str :
690+ return _translate (
691+ translator ,
692+ "strategy_plugin_alert_yes" if value else "strategy_plugin_alert_no" ,
693+ fallback = "yes" if value else "no" ,
694+ )
695+
696+
664697def _required_string (value : Any , * , field_name : str ) -> str :
665698 text = _optional_string (value )
666699 if text is None :
0 commit comments