From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 8BA1E1FF178 for ; Mon, 1 Dec 2025 17:06:13 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7612A21C07; Mon, 1 Dec 2025 17:06:37 +0100 (CET) From: Lukas Wagner To: pdm-devel@lists.proxmox.com Date: Mon, 1 Dec 2025 17:06:26 +0100 Message-ID: <20251201160626.377139-1-l.wagner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1764605149725 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.030 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pdm-devel] [PATCH datacenter-manager] ui: use explicit parameter indices in tr macros X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" The order of parameters can change in translations, so it is important to use explicit indexing. The gettext runtime shows warnings in the browser console for these: "... multiple non-indexed, non-named arguments - order is implicit" Signed-off-by: Lukas Wagner --- ui/src/remotes/firewall/columns.rs | 2 +- ui/src/remotes/firewall/ui_helpers.rs | 6 +++--- ui/src/sdn/evpn/add_zone.rs | 2 +- ui/src/sdn/evpn/remote_tree.rs | 23 +++++++++++++---------- ui/src/sdn/evpn/vrf_tree.rs | 22 +++++++++++----------- 5 files changed, 29 insertions(+), 26 deletions(-) diff --git a/ui/src/remotes/firewall/columns.rs b/ui/src/remotes/firewall/columns.rs index 454fd814..71c233c9 100644 --- a/ui/src/remotes/firewall/columns.rs +++ b/ui/src/remotes/firewall/columns.rs @@ -42,7 +42,7 @@ fn create_name_column( .render(move |entry: &TreeEntry| { let (icon, text) = match entry { TreeEntry::Root if loading => { - let loading_text = tr!("Loading {}...", scope.loading_description()); + let loading_text = tr!("Loading {0}...", scope.loading_description()); ( Container::from_tag("i").class("pwt-loading-icon"), loading_text, diff --git a/ui/src/remotes/firewall/ui_helpers.rs b/ui/src/remotes/firewall/ui_helpers.rs index 741064d8..d251797d 100644 --- a/ui/src/remotes/firewall/ui_helpers.rs +++ b/ui/src/remotes/firewall/ui_helpers.rs @@ -78,7 +78,7 @@ impl PanelConfig { let mut rules = proxmox_yew_comp::FirewallRules::cluster(remote.to_string()); rules.reload_token = reload_token; Self { - title: create_panel_title("list", tr!("Cluster Firewall Rules - {}", remote)), + title: create_panel_title("list", tr!("Cluster Firewall Rules - {0}", remote)), key: format!("cluster-{}", remote), content: rules.into(), title_prefix: None, @@ -89,7 +89,7 @@ impl PanelConfig { let mut rules = proxmox_yew_comp::FirewallRules::node(remote.to_string(), node.to_string()); rules.reload_token = reload_token; Self { - title: create_panel_title("list", tr!("Node Firewall Rules - {}/{}", remote, node)), + title: create_panel_title("list", tr!("Node Firewall Rules - {0}/{1}", remote, node)), key: format!("node-{}-{}", remote, node), content: rules.into(), title_prefix: None, @@ -115,7 +115,7 @@ impl PanelConfig { title: create_panel_title( "list", tr!( - "Guest Firewall Rules - {}/{}/{} {}", + "Guest Firewall Rules - {0}/{1}/{2} {3}", remote, node, vmtype.to_uppercase(), diff --git a/ui/src/sdn/evpn/add_zone.rs b/ui/src/sdn/evpn/add_zone.rs index 7685511c..23bf7da3 100644 --- a/ui/src/sdn/evpn/add_zone.rs +++ b/ui/src/sdn/evpn/add_zone.rs @@ -230,7 +230,7 @@ impl ManagedField for ControllerTableComponent { controller: controller.controller.controller.clone(), asn: controller.controller.asn.ok_or_else(|| { format_err!(tr!( - "EVPN controller {} has no ASN", + "EVPN controller {0} has no ASN", controller.controller.controller )) })?, diff --git a/ui/src/sdn/evpn/remote_tree.rs b/ui/src/sdn/evpn/remote_tree.rs index 17999174..e5570cf9 100644 --- a/ui/src/sdn/evpn/remote_tree.rs +++ b/ui/src/sdn/evpn/remote_tree.rs @@ -159,7 +159,7 @@ fn zones_to_remote_view( let zone_controller_id = zone_data.controller.as_ref().ok_or_else(|| { anyhow!(tr!( - "EVPN zone {} has no controller defined!", + "EVPN zone {0} has no controller defined!", zone_data.zone )) })?; @@ -172,7 +172,7 @@ fn zones_to_remote_view( }) .ok_or_else(|| { anyhow!(tr!( - "Could not find Controller for EVPN zone {}", + "Could not find Controller for EVPN zone {0}", zone_data.zone )) })?; @@ -180,12 +180,15 @@ fn zones_to_remote_view( let route_target = EvpnRouteTarget { asn: controller.controller.asn.ok_or_else(|| { anyhow!(tr!( - "EVPN controller {} has no ASN defined!", + "EVPN controller {0} has no ASN defined!", controller.controller.controller )) })?, vni: zone.zone.vrf_vxlan.ok_or_else(|| { - anyhow!(tr!("EVPN Zone {} has no VXLAN ID defined!", zone_data.zone)) + anyhow!(tr!( + "EVPN Zone {0} has no VXLAN ID defined!", + zone_data.zone + )) })?, }; @@ -231,7 +234,7 @@ fn zones_to_remote_view( let vnet_zone_id = vnet_data .zone .as_ref() - .ok_or_else(|| anyhow!(tr!("VNet {} has no zone defined!", vnet_data.vnet)))?; + .ok_or_else(|| anyhow!(tr!("VNet {0} has no zone defined!", vnet_data.vnet)))?; let Some(zone) = zones .iter() @@ -243,7 +246,7 @@ fn zones_to_remote_view( let zone_controller_id = zone.zone.controller.as_ref().ok_or_else(|| { anyhow!(tr!( - "EVPN zone {} has no controller defined!", + "EVPN zone {0} has no controller defined!", &zone.zone.zone )) })?; @@ -256,14 +259,14 @@ fn zones_to_remote_view( }) .ok_or_else(|| { anyhow!(tr!( - "Controller of EVPN zone {} does not exist", + "Controller of EVPN zone {0} does not exist", zone.zone.zone )) })?; let controller_asn = controller.controller.asn.ok_or_else(|| { anyhow!(tr!( - "EVPN controller {} has no ASN defined!", + "EVPN controller {0} has no ASN defined!", controller.controller.controller )) })?; @@ -273,14 +276,14 @@ fn zones_to_remote_view( vni: zone .zone .vrf_vxlan - .ok_or_else(|| anyhow!(tr!("EVPN Zone {} has no VRF VNI", zone.zone.zone)))?, + .ok_or_else(|| anyhow!(tr!("EVPN Zone {0} has no VRF VNI", zone.zone.zone)))?, }; let vnet_target = EvpnRouteTarget { asn: controller_asn, vni: vnet_data .tag - .ok_or_else(|| anyhow!(tr!("VNet {} has no VNI", vnet_data.vnet)))?, + .ok_or_else(|| anyhow!(tr!("VNet {0} has no VNI", vnet_data.vnet)))?, }; for mut remote_entry in root.children_mut() { diff --git a/ui/src/sdn/evpn/vrf_tree.rs b/ui/src/sdn/evpn/vrf_tree.rs index 0de41454..e839a91e 100644 --- a/ui/src/sdn/evpn/vrf_tree.rs +++ b/ui/src/sdn/evpn/vrf_tree.rs @@ -123,7 +123,7 @@ fn zones_to_vrf_view( let zone_controller_id = zone_data.controller.as_ref().ok_or_else(|| { anyhow!(tr!( - "EVPN zone {} has no controller defined!", + "EVPN zone {0} has no controller defined!", &zone_data.zone )) })?; @@ -136,14 +136,14 @@ fn zones_to_vrf_view( }) .ok_or_else(|| { anyhow!(tr!( - "Controller of EVPN zone {} does not exist", + "Controller of EVPN zone {0} does not exist", zone_data.zone )) })?; let controller_asn = controller.controller.asn.ok_or_else(|| { anyhow!(tr!( - "EVPN controller {} has no ASN defined!", + "EVPN controller {0} has no ASN defined!", controller.controller.controller )) })?; @@ -153,7 +153,7 @@ fn zones_to_vrf_view( vni: zone .zone .vrf_vxlan - .ok_or_else(|| anyhow!(tr!("EVPN Zone {} has no VRF VNI", zone_data.zone)))?, + .ok_or_else(|| anyhow!(tr!("EVPN Zone {0} has no VRF VNI", zone_data.zone)))?, }; if !existing_vrfs.insert(route_target) { @@ -170,7 +170,7 @@ fn zones_to_vrf_view( let vnet_zone_id = vnet_data .zone .as_ref() - .ok_or_else(|| anyhow!(tr!("VNet {} has no zone defined!", vnet_data.vnet)))?; + .ok_or_else(|| anyhow!(tr!("VNet {0} has no zone defined!", vnet_data.vnet)))?; let Some(zone) = zones .iter() @@ -182,7 +182,7 @@ fn zones_to_vrf_view( let zone_controller_id = zone.zone.controller.as_ref().ok_or_else(|| { anyhow!(tr!( - "EVPN zone {} has no controller defined!", + "EVPN zone {0} has no controller defined!", &zone.zone.zone )) })?; @@ -195,14 +195,14 @@ fn zones_to_vrf_view( }) .ok_or_else(|| { anyhow!(tr!( - "Controller of EVPN zone {} does not exist", + "Controller of EVPN zone {0} does not exist", zone.zone.zone )) })?; let controller_asn = controller.controller.asn.ok_or_else(|| { anyhow!(tr!( - "EVPN controller {} has no ASN defined!", + "EVPN controller {0} has no ASN defined!", controller.controller.controller )) })?; @@ -212,14 +212,14 @@ fn zones_to_vrf_view( vni: zone .zone .vrf_vxlan - .ok_or_else(|| anyhow!(tr!("EVPN Zone {} has no VRF VNI", zone.zone.zone)))?, + .ok_or_else(|| anyhow!(tr!("EVPN Zone {0} has no VRF VNI", zone.zone.zone)))?, }; let vnet_target = EvpnRouteTarget { asn: controller_asn, vni: vnet_data .tag - .ok_or_else(|| anyhow!(tr!("VNet {} has no VNI", vnet_data.vnet)))?, + .ok_or_else(|| anyhow!(tr!("VNet {0} has no VNI", vnet_data.vnet)))?, }; for mut vrf_entry in root.children_mut() { @@ -249,7 +249,7 @@ fn zones_to_vrf_view( let vnet_zone = vnet.vnet.zone.as_ref().ok_or_else(|| { - anyhow!(tr!("VNet {} has no zone defined!", vnet.vnet.vnet)) + anyhow!(tr!("VNet {0} has no zone defined!", vnet.vnet.vnet)) })?; fdb_entry.append(VrfTreeEntry::Remote(RemoteData { -- 2.47.3 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel