browser_automation_cli/i18n/
mensagem.rs1use super::idioma::Idioma;
5
6pub fn ftl_id(msg: Mensagem) -> &'static str {
8 match msg {
9 Mensagem::UsageSuggestion => "usage-suggestion",
10 Mensagem::BrokenPipeSuggestion => "broken-pipe-suggestion",
11 Mensagem::UnavailableSuggestion => "unavailable-suggestion",
12 Mensagem::DataSuggestion => "data-suggestion",
13 Mensagem::BrowserSuggestion => "browser-suggestion",
14 Mensagem::VisionRequired => "vision-required",
15 Mensagem::RobotsDual => "robots-dual",
16 Mensagem::CategoryMemory => "category-memory",
17 Mensagem::CategoryExtensions => "category-extensions",
18 Mensagem::ScreencastFlag => "screencast-flag",
19 Mensagem::WebmcpFlag => "webmcp-flag",
20 Mensagem::ThirdPartyFlag => "third-party-flag",
21 Mensagem::CaptureNetwork => "capture-network",
22 Mensagem::CaptureConsole => "capture-console",
23 Mensagem::RunFailFast => "run-fail-fast",
24 Mensagem::LighthouseMissing => "lighthouse-missing",
25 Mensagem::LocaleResolved => "locale-resolved",
26 Mensagem::LocaleSource => "locale-source",
27 }
28}
29
30#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
35#[non_exhaustive]
36pub enum Mensagem {
37 UsageSuggestion,
39 BrokenPipeSuggestion,
41 UnavailableSuggestion,
43 DataSuggestion,
45 BrowserSuggestion,
47 VisionRequired,
49 RobotsDual,
51 CategoryMemory,
53 CategoryExtensions,
55 ScreencastFlag,
57 WebmcpFlag,
59 ThirdPartyFlag,
61 CaptureNetwork,
63 CaptureConsole,
65 RunFailFast,
67 LighthouseMissing,
69 LocaleResolved,
71 LocaleSource,
73}
74
75impl Mensagem {
76 pub const ALL: &'static [Mensagem] = &[
78 Mensagem::UsageSuggestion,
79 Mensagem::BrokenPipeSuggestion,
80 Mensagem::UnavailableSuggestion,
81 Mensagem::DataSuggestion,
82 Mensagem::BrowserSuggestion,
83 Mensagem::VisionRequired,
84 Mensagem::RobotsDual,
85 Mensagem::CategoryMemory,
86 Mensagem::CategoryExtensions,
87 Mensagem::ScreencastFlag,
88 Mensagem::WebmcpFlag,
89 Mensagem::ThirdPartyFlag,
90 Mensagem::CaptureNetwork,
91 Mensagem::CaptureConsole,
92 Mensagem::RunFailFast,
93 Mensagem::LighthouseMissing,
94 Mensagem::LocaleResolved,
95 Mensagem::LocaleSource,
96 ];
97
98 pub fn texto(self, idioma: Idioma) -> &'static str {
100 match idioma {
101 Idioma::En => super::en::texto(self),
102 Idioma::PtBr => super::pt_br::texto(self),
103 }
104 }
105
106 pub fn from_suggestion_key(key: &str) -> Mensagem {
108 match key {
109 "vision_required" => Mensagem::VisionRequired,
110 "robots_dual" => Mensagem::RobotsDual,
111 "category_memory" => Mensagem::CategoryMemory,
112 "category_extensions" => Mensagem::CategoryExtensions,
113 "screencast_flag" => Mensagem::ScreencastFlag,
114 "webmcp_flag" => Mensagem::WebmcpFlag,
115 "third_party_flag" => Mensagem::ThirdPartyFlag,
116 "capture_network" => Mensagem::CaptureNetwork,
117 "capture_console" => Mensagem::CaptureConsole,
118 "run_fail_fast" => Mensagem::RunFailFast,
119 "lighthouse_missing" => Mensagem::LighthouseMissing,
120 _ => Mensagem::UsageSuggestion,
121 }
122 }
123
124 pub fn from_error_kind(kind: &str) -> Option<Mensagem> {
126 match kind {
127 "usage" => Some(Mensagem::UsageSuggestion),
128 "broken-pipe" => Some(Mensagem::BrokenPipeSuggestion),
129 "unavailable" => Some(Mensagem::UnavailableSuggestion),
130 "data" => Some(Mensagem::DataSuggestion),
131 "browser" => Some(Mensagem::BrowserSuggestion),
132 _ => None,
133 }
134 }
135}