public inbox for yew-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [yew-devel] [PATCH proxmox-yew-comp v2] apt_repositories: Add context to conflicting string with plural form
@ 2025-01-27  9:46 Maximiliano Sandoval
  0 siblings, 0 replies; only message in thread
From: Maximiliano Sandoval @ 2025-01-27  9:46 UTC (permalink / raw)
  To: yew-devel

The combination of `msgid` and `msgctxt` uniquely identifies a
translatable string. At the moment there is a message:

```
msgid "Warning"
msgstr ""
```

that conflicts with
```
msgid "Warning"
msgid_plural "Warnings"
msgstr[0] ""
msgstr[1] ""
```

Normally, `msgmerge` or similar will merge messages containing the same
`msgid` and `msgctxt`, but in this case these two cannot be merged as
one has plurals forms and the other does not. On the app-side one will
be retrieved with `gettext("Warning")` while the other by
`ngettext("Warning", 1)` which explains why they can't be merged.

Additionally, xgettext will throw the following error message:

```sh
$ xgettext proxmox-yew-comp.pot proxmox-widget-toolkit.pot
proxmox-widget-toolkit.pot:2080: duplicate message definition...
proxmox-yew-comp.pot:187: ...this is the location of the first definition
xgettext: found 1 fatal error
```

By adding a context, we can go around the issue without the need to
replace either string.

More info on contexts can be found at [1].

[1] https://www.gnu.org/software/gettext/manual/html_node/Contexts.html

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---

Differences from v1:
 - Expand commit message

 src/apt_repositories.rs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/apt_repositories.rs b/src/apt_repositories.rs
index b671d01e..487ca7f 100644
--- a/src/apt_repositories.rs
+++ b/src/apt_repositories.rs
@@ -873,7 +873,8 @@ fn render_text_with_warnings(text: &str, warnings: &[String]) -> Html {
                 <i class="fa fa-fw fa-exclamation-circle"/>
             </span>
         };
-        let title = tr!("Warning" | "Warnings" % warnings.len());
+        let title =
+            tr!("This is a title" => "Warning" | "Warnings" % warnings.len());
         let mut tip = Container::new().with_child(html! {<h4>{title}</h4>});
         for message in warnings {
             tip.add_child(html! {<p>{message}</p>});
-- 
2.39.5



_______________________________________________
yew-devel mailing list
yew-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/yew-devel


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-01-27  9:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-27  9:46 [yew-devel] [PATCH proxmox-yew-comp v2] apt_repositories: Add context to conflicting string with plural form Maximiliano Sandoval

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal