[Spice-devel] [PATCH spice-gtk] spice-option: translate entries
Translation strings for spice options are already present in the respective PO files. g_option_group_set_translation_domain() call needs to be made, so that the strings marked with N_() actually get translated at runtime. Signed-off-by: Jakub Janků --- src/spice-option.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/spice-option.c b/src/spice-option.c index 7df093d..c2b059e 100644 --- a/src/spice-option.c +++ b/src/spice-option.c @@ -207,6 +207,7 @@ GOptionGroup* spice_get_option_group(void) grp = g_option_group_new("spice", _("Spice Options:"), _("Show Spice Options"), NULL, NULL); g_option_group_add_entries(grp, entries); +g_option_group_set_translation_domain(grp, GETTEXT_PACKAGE); return grp; } -- 2.20.1 ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
[Spice-devel] [PATCH spice-gtk v2] gettext: fix ngettext usage
_() should not be used in conjunction with ngettext(), otherwise it's impossible to properly translate the message into languages that have multiple plural forms, such as Czech. Additionally, spice-gtk must use dngettext instead of ngettext, otherwise the translation strings are searched within a wrong domain. Fix ngettext usage in usb-device-widget.c and update the PO files accordingly. Signed-off-by: Jakub Janků --- po/de.po| 9 +++-- po/fr.po| 11 --- po/it.po| 12 +--- src/usb-device-widget.c | 7 --- 4 files changed, 16 insertions(+), 23 deletions(-) diff --git a/po/de.po b/po/de.po index eb24de7..3ae6ae0 100644 --- a/po/de.po +++ b/po/de.po @@ -288,12 +288,9 @@ msgstr "Auswahl des USB-Geräts zum Weiterleiten" #: src/usb-device-widget.c:393 #, c-format msgid "Select USB devices to redirect (%d free channel)" -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" - -#: src/usb-device-widget.c:394 -#, c-format -msgid "Select USB devices to redirect (%d free channels)" -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" +msgid_plural "Select USB devices to redirect (%d free channels)" +msgstr[0] "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" +msgstr[1] "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" #: src/usb-device-widget.c:411 msgid "Redirecting USB Device..." diff --git a/po/fr.po b/po/fr.po index e2dd3ad..6120ee0 100644 --- a/po/fr.po +++ b/po/fr.po @@ -271,15 +271,12 @@ msgstr "" msgid "Select USB devices to redirect" msgstr "" -#: src/usb-device-widget.c:420 +#: src/usb-device-widget.c:393 #, c-format msgid "Select USB devices to redirect (%d free channel)" -msgstr "" - -#: src/usb-device-widget.c:421 -#, c-format -msgid "Select USB devices to redirect (%d free channels)" -msgstr "" +msgid_plural "Select USB devices to redirect (%d free channels)" +msgstr[0] "" +msgstr[1] "" #: src/usb-device-widget.c:439 msgid "Redirecting USB Device..." diff --git a/po/it.po b/po/it.po index a4e40e9..b7899a8 100644 --- a/po/it.po +++ b/po/it.po @@ -16,6 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Poedit 1.8.8\n" #: src/channel-main.c:1868 @@ -286,15 +287,12 @@ msgstr "%s %s %s a %d-%d" msgid "Select USB devices to redirect" msgstr "Selezionare dispositivo USB da redirigere" -#: src/usb-device-widget.c:420 +#: src/usb-device-widget.c:393 #, c-format msgid "Select USB devices to redirect (%d free channel)" -msgstr "Selezionare dispositivo USB da redirigere (%d canale libero)" - -#: src/usb-device-widget.c:421 -#, c-format -msgid "Select USB devices to redirect (%d free channels)" -msgstr "Selezionare dispositivo USB da redirigere (%d canali liberi)" +msgid_plural "Select USB devices to redirect (%d free channels)" +msgstr[0] "Selezionare dispositivo USB da redirigere (%d canale libero)" +msgstr[1] "Selezionare dispositivo USB da redirigere (%d canali liberi)" #: src/usb-device-widget.c:439 msgid "Redirecting USB Device..." diff --git a/src/usb-device-widget.c b/src/usb-device-widget.c index de62564..55a9687 100644 --- a/src/usb-device-widget.c +++ b/src/usb-device-widget.c @@ -390,9 +390,10 @@ static gboolean spice_usb_device_widget_update_status(gpointer user_data) redirecting = spice_usb_device_manager_is_redirecting(priv->manager); g_object_get(priv->manager, "free-channels", _channels, NULL); -free_channels_str = ngettext(_("Select USB devices to redirect (%d free channel)"), - _("Select USB devices to redirect (%d free channels)"), - free_channels); +free_channels_str = g_dngettext(GETTEXT_PACKAGE, +"Select USB devices to redirect (%d free channel)", +"Select USB devices to redirect (%d free channels)", +free_channels); str = g_strdup_printf(free_channels_str, free_channels); markup_str = g_strdup_printf("%s", str); gtk_label_set_markup(GTK_LABEL (priv->label), markup_str); -- 2.20.1 ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [PATCH spice-gtk] gettext: fix ngettext usage
On Wed, Apr 17, 2019 at 6:24 PM Frediano Ziglio wrote: > > > > > _() should not be used in conjunction with ngettext(), > > otherwise it's impossible to properly translate the message into > > languages that have multiple plural forms, such as Czech. > > > > Fix ngettext usage in usb-device-widget.c and > > update the PO files accordingly. > > > > Signed-off-by: Jakub Janků > > --- > > po/de.po| 9 +++-- > > po/fr.po| 11 --- > > po/it.po| 12 +--- > > src/usb-device-widget.c | 4 ++-- > > 4 files changed, 14 insertions(+), 22 deletions(-) > > > > diff --git a/po/de.po b/po/de.po > > index eb24de7..3ae6ae0 100644 > > --- a/po/de.po > > +++ b/po/de.po > > @@ -288,12 +288,9 @@ msgstr "Auswahl des USB-Geräts zum Weiterleiten" > > #: src/usb-device-widget.c:393 > > #, c-format > > msgid "Select USB devices to redirect (%d free channel)" > > -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" > > - > > -#: src/usb-device-widget.c:394 > > -#, c-format > > -msgid "Select USB devices to redirect (%d free channels)" > > -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" > > +msgid_plural "Select USB devices to redirect (%d free channels)" > > +msgstr[0] "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" > > +msgstr[1] "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" > > > > #: src/usb-device-widget.c:411 > > msgid "Redirecting USB Device..." > > diff --git a/po/fr.po b/po/fr.po > > index e2dd3ad..6120ee0 100644 > > --- a/po/fr.po > > +++ b/po/fr.po > > @@ -271,15 +271,12 @@ msgstr "" > > msgid "Select USB devices to redirect" > > msgstr "" > > > > -#: src/usb-device-widget.c:420 > > +#: src/usb-device-widget.c:393 > > #, c-format > > msgid "Select USB devices to redirect (%d free channel)" > > -msgstr "" > > - > > -#: src/usb-device-widget.c:421 > > -#, c-format > > -msgid "Select USB devices to redirect (%d free channels)" > > -msgstr "" > > +msgid_plural "Select USB devices to redirect (%d free channels)" > > +msgstr[0] "" > > +msgstr[1] "" > > > > #: src/usb-device-widget.c:439 > > msgid "Redirecting USB Device..." > > diff --git a/po/it.po b/po/it.po > > index a4e40e9..b7899a8 100644 > > --- a/po/it.po > > +++ b/po/it.po > > @@ -16,6 +16,7 @@ msgstr "" > > "MIME-Version: 1.0\n" > > "Content-Type: text/plain; charset=UTF-8\n" > > "Content-Transfer-Encoding: 8bit\n" > > +"Plural-Forms: nplurals=2; plural=n != 1;\n" > > "X-Generator: Poedit 1.8.8\n" > > > > #: src/channel-main.c:1868 > > @@ -286,15 +287,12 @@ msgstr "%s %s %s a %d-%d" > > msgid "Select USB devices to redirect" > > msgstr "Selezionare dispositivo USB da redirigere" > > > > -#: src/usb-device-widget.c:420 > > +#: src/usb-device-widget.c:393 > > #, c-format > > msgid "Select USB devices to redirect (%d free channel)" > > -msgstr "Selezionare dispositivo USB da redirigere (%d canale libero)" > > - > > -#: src/usb-device-widget.c:421 > > -#, c-format > > -msgid "Select USB devices to redirect (%d free channels)" > > -msgstr "Selezionare dispositivo USB da redirigere (%d canali liberi)" > > +msgid_plural "Select USB devices to redirect (%d free channels)" > > +msgstr[0] "Selezionare dispositivo USB da redirigere (%d canale libero)" > > +msgstr[1] "Selezionare dispositivo USB da redirigere (%d canali liberi)" > > > > Applied the patch, set lang to it_IT.utf-8, most strings work, this > no way! I did an strace to check the file used are correct, they are. > I removed all .gmo and .mo, rebuilt, reinstalled, checked I'm using > the new. Still not working. Probably I'm doing something really silly > but I cannot understand what I'm doing wrong. > I also checked if that specific string is inside virt-viewer strings, > no. > > It seems this hunk solve the issue: > > > @@ -390,7 +390,7 @@ static gboolean > spice_usb_device_widget_update_status(gpointer user_data) > redirecting = spice_usb_device_manager_is_redirecting(priv->manager); > > g_object_get(priv->manager, "free-channels", _channels, NULL); > -free_channels_str = ngettext("Select USB devices to redirect (%d free > channel)", > +free_channels_str = dngettext(GETTEXT_PACKAGE, "Select USB devices to > redirect (%d free channel)", > "Select USB devices to redirect (%d free > channels)", > free_channels); > str = g_strdup_printf(free_channels_str, free_channels); Ah, I see, so this is another mistake. Spice-gtk, as a library, should be using the dngettext function instead of ngettext, otherwise the translation string is searched in the "virt-viewer" domain and hence not found. I'll be sending v2. Thanks, Jakub > > > > #: src/usb-device-widget.c:439 > > msgid "Redirecting USB Device..." > > diff --git a/src/usb-device-widget.c b/src/usb-device-widget.c > > index de62564..7979a2c 100644 > > --- a/src/usb-device-widget.c > > +++ b/src/usb-device-widget.c > > @@ -390,8
Re: [Spice-devel] [PATCH spice-gtk] gettext: fix ngettext usage
On Wed, Apr 17, 2019 at 5:25 PM Frediano Ziglio wrote: > > > > > _() should not be used in conjunction with ngettext(), > > otherwise it's impossible to properly translate the message into > > languages that have multiple plural forms, such as Czech. > > > > Fix ngettext usage in usb-device-widget.c and > > update the PO files accordingly. > > > > Signed-off-by: Jakub Janků > > Sounds good, I'll have a small try before. > > Can you review David Jaša patch sent on Apr 12th? Sure, I've already started looking at it, that's how I discovered this issue. Cheers, Jakub > > > --- > > po/de.po| 9 +++-- > > po/fr.po| 11 --- > > po/it.po| 12 +--- > > src/usb-device-widget.c | 4 ++-- > > 4 files changed, 14 insertions(+), 22 deletions(-) > > > > diff --git a/po/de.po b/po/de.po > > index eb24de7..3ae6ae0 100644 > > --- a/po/de.po > > +++ b/po/de.po > > @@ -288,12 +288,9 @@ msgstr "Auswahl des USB-Geräts zum Weiterleiten" > > #: src/usb-device-widget.c:393 > > #, c-format > > msgid "Select USB devices to redirect (%d free channel)" > > -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" > > - > > -#: src/usb-device-widget.c:394 > > -#, c-format > > -msgid "Select USB devices to redirect (%d free channels)" > > -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" > > +msgid_plural "Select USB devices to redirect (%d free channels)" > > +msgstr[0] "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" > > +msgstr[1] "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" > > > > #: src/usb-device-widget.c:411 > > msgid "Redirecting USB Device..." > > diff --git a/po/fr.po b/po/fr.po > > index e2dd3ad..6120ee0 100644 > > --- a/po/fr.po > > +++ b/po/fr.po > > @@ -271,15 +271,12 @@ msgstr "" > > msgid "Select USB devices to redirect" > > msgstr "" > > > > -#: src/usb-device-widget.c:420 > > +#: src/usb-device-widget.c:393 > > #, c-format > > msgid "Select USB devices to redirect (%d free channel)" > > -msgstr "" > > - > > -#: src/usb-device-widget.c:421 > > -#, c-format > > -msgid "Select USB devices to redirect (%d free channels)" > > -msgstr "" > > +msgid_plural "Select USB devices to redirect (%d free channels)" > > +msgstr[0] "" > > +msgstr[1] "" > > > > #: src/usb-device-widget.c:439 > > msgid "Redirecting USB Device..." > > diff --git a/po/it.po b/po/it.po > > index a4e40e9..b7899a8 100644 > > --- a/po/it.po > > +++ b/po/it.po > > @@ -16,6 +16,7 @@ msgstr "" > > "MIME-Version: 1.0\n" > > "Content-Type: text/plain; charset=UTF-8\n" > > "Content-Transfer-Encoding: 8bit\n" > > +"Plural-Forms: nplurals=2; plural=n != 1;\n" > > "X-Generator: Poedit 1.8.8\n" > > > > #: src/channel-main.c:1868 > > @@ -286,15 +287,12 @@ msgstr "%s %s %s a %d-%d" > > msgid "Select USB devices to redirect" > > msgstr "Selezionare dispositivo USB da redirigere" > > > > -#: src/usb-device-widget.c:420 > > +#: src/usb-device-widget.c:393 > > #, c-format > > msgid "Select USB devices to redirect (%d free channel)" > > -msgstr "Selezionare dispositivo USB da redirigere (%d canale libero)" > > - > > -#: src/usb-device-widget.c:421 > > -#, c-format > > -msgid "Select USB devices to redirect (%d free channels)" > > -msgstr "Selezionare dispositivo USB da redirigere (%d canali liberi)" > > +msgid_plural "Select USB devices to redirect (%d free channels)" > > +msgstr[0] "Selezionare dispositivo USB da redirigere (%d canale libero)" > > +msgstr[1] "Selezionare dispositivo USB da redirigere (%d canali liberi)" > > > > #: src/usb-device-widget.c:439 > > msgid "Redirecting USB Device..." > > diff --git a/src/usb-device-widget.c b/src/usb-device-widget.c > > index de62564..7979a2c 100644 > > --- a/src/usb-device-widget.c > > +++ b/src/usb-device-widget.c > > @@ -390,8 +390,8 @@ static gboolean > > spice_usb_device_widget_update_status(gpointer user_data) > > redirecting = spice_usb_device_manager_is_redirecting(priv->manager); > > > > g_object_get(priv->manager, "free-channels", _channels, NULL); > > -free_channels_str = ngettext(_("Select USB devices to redirect (%d free > > channel)"), > > - _("Select USB devices to redirect (%d free > > channels)"), > > +free_channels_str = ngettext("Select USB devices to redirect (%d free > > channel)", > > + "Select USB devices to redirect (%d free > > channels)", > > free_channels); > > str = g_strdup_printf(free_channels_str, free_channels); > > markup_str = g_strdup_printf("%s", str); > > Frediano ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [PATCH spice-gtk] gettext: fix ngettext usage
> > _() should not be used in conjunction with ngettext(), > otherwise it's impossible to properly translate the message into > languages that have multiple plural forms, such as Czech. > > Fix ngettext usage in usb-device-widget.c and > update the PO files accordingly. > > Signed-off-by: Jakub Janků Sounds good, I'll have a small try before. Can you review David Jaša patch sent on Apr 12th? > --- > po/de.po| 9 +++-- > po/fr.po| 11 --- > po/it.po| 12 +--- > src/usb-device-widget.c | 4 ++-- > 4 files changed, 14 insertions(+), 22 deletions(-) > > diff --git a/po/de.po b/po/de.po > index eb24de7..3ae6ae0 100644 > --- a/po/de.po > +++ b/po/de.po > @@ -288,12 +288,9 @@ msgstr "Auswahl des USB-Geräts zum Weiterleiten" > #: src/usb-device-widget.c:393 > #, c-format > msgid "Select USB devices to redirect (%d free channel)" > -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" > - > -#: src/usb-device-widget.c:394 > -#, c-format > -msgid "Select USB devices to redirect (%d free channels)" > -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" > +msgid_plural "Select USB devices to redirect (%d free channels)" > +msgstr[0] "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" > +msgstr[1] "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" > > #: src/usb-device-widget.c:411 > msgid "Redirecting USB Device..." > diff --git a/po/fr.po b/po/fr.po > index e2dd3ad..6120ee0 100644 > --- a/po/fr.po > +++ b/po/fr.po > @@ -271,15 +271,12 @@ msgstr "" > msgid "Select USB devices to redirect" > msgstr "" > > -#: src/usb-device-widget.c:420 > +#: src/usb-device-widget.c:393 > #, c-format > msgid "Select USB devices to redirect (%d free channel)" > -msgstr "" > - > -#: src/usb-device-widget.c:421 > -#, c-format > -msgid "Select USB devices to redirect (%d free channels)" > -msgstr "" > +msgid_plural "Select USB devices to redirect (%d free channels)" > +msgstr[0] "" > +msgstr[1] "" > > #: src/usb-device-widget.c:439 > msgid "Redirecting USB Device..." > diff --git a/po/it.po b/po/it.po > index a4e40e9..b7899a8 100644 > --- a/po/it.po > +++ b/po/it.po > @@ -16,6 +16,7 @@ msgstr "" > "MIME-Version: 1.0\n" > "Content-Type: text/plain; charset=UTF-8\n" > "Content-Transfer-Encoding: 8bit\n" > +"Plural-Forms: nplurals=2; plural=n != 1;\n" > "X-Generator: Poedit 1.8.8\n" > > #: src/channel-main.c:1868 > @@ -286,15 +287,12 @@ msgstr "%s %s %s a %d-%d" > msgid "Select USB devices to redirect" > msgstr "Selezionare dispositivo USB da redirigere" > > -#: src/usb-device-widget.c:420 > +#: src/usb-device-widget.c:393 > #, c-format > msgid "Select USB devices to redirect (%d free channel)" > -msgstr "Selezionare dispositivo USB da redirigere (%d canale libero)" > - > -#: src/usb-device-widget.c:421 > -#, c-format > -msgid "Select USB devices to redirect (%d free channels)" > -msgstr "Selezionare dispositivo USB da redirigere (%d canali liberi)" > +msgid_plural "Select USB devices to redirect (%d free channels)" > +msgstr[0] "Selezionare dispositivo USB da redirigere (%d canale libero)" > +msgstr[1] "Selezionare dispositivo USB da redirigere (%d canali liberi)" > > #: src/usb-device-widget.c:439 > msgid "Redirecting USB Device..." > diff --git a/src/usb-device-widget.c b/src/usb-device-widget.c > index de62564..7979a2c 100644 > --- a/src/usb-device-widget.c > +++ b/src/usb-device-widget.c > @@ -390,8 +390,8 @@ static gboolean > spice_usb_device_widget_update_status(gpointer user_data) > redirecting = spice_usb_device_manager_is_redirecting(priv->manager); > > g_object_get(priv->manager, "free-channels", _channels, NULL); > -free_channels_str = ngettext(_("Select USB devices to redirect (%d free > channel)"), > - _("Select USB devices to redirect (%d free > channels)"), > +free_channels_str = ngettext("Select USB devices to redirect (%d free > channel)", > + "Select USB devices to redirect (%d free > channels)", > free_channels); > str = g_strdup_printf(free_channels_str, free_channels); > markup_str = g_strdup_printf("%s", str); Frediano ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
[Spice-devel] [PATCH spice-gtk] gettext: fix ngettext usage
_() should not be used in conjunction with ngettext(), otherwise it's impossible to properly translate the message into languages that have multiple plural forms, such as Czech. Fix ngettext usage in usb-device-widget.c and update the PO files accordingly. Signed-off-by: Jakub Janků --- po/de.po| 9 +++-- po/fr.po| 11 --- po/it.po| 12 +--- src/usb-device-widget.c | 4 ++-- 4 files changed, 14 insertions(+), 22 deletions(-) diff --git a/po/de.po b/po/de.po index eb24de7..3ae6ae0 100644 --- a/po/de.po +++ b/po/de.po @@ -288,12 +288,9 @@ msgstr "Auswahl des USB-Geräts zum Weiterleiten" #: src/usb-device-widget.c:393 #, c-format msgid "Select USB devices to redirect (%d free channel)" -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" - -#: src/usb-device-widget.c:394 -#, c-format -msgid "Select USB devices to redirect (%d free channels)" -msgstr "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" +msgid_plural "Select USB devices to redirect (%d free channels)" +msgstr[0] "Auswahl des USB-Geräts zum Weiterleiten (%d freier Kanal)" +msgstr[1] "Auswahl des USB-Geräts zum Weiterleiten (%d freie Kanäle)" #: src/usb-device-widget.c:411 msgid "Redirecting USB Device..." diff --git a/po/fr.po b/po/fr.po index e2dd3ad..6120ee0 100644 --- a/po/fr.po +++ b/po/fr.po @@ -271,15 +271,12 @@ msgstr "" msgid "Select USB devices to redirect" msgstr "" -#: src/usb-device-widget.c:420 +#: src/usb-device-widget.c:393 #, c-format msgid "Select USB devices to redirect (%d free channel)" -msgstr "" - -#: src/usb-device-widget.c:421 -#, c-format -msgid "Select USB devices to redirect (%d free channels)" -msgstr "" +msgid_plural "Select USB devices to redirect (%d free channels)" +msgstr[0] "" +msgstr[1] "" #: src/usb-device-widget.c:439 msgid "Redirecting USB Device..." diff --git a/po/it.po b/po/it.po index a4e40e9..b7899a8 100644 --- a/po/it.po +++ b/po/it.po @@ -16,6 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Poedit 1.8.8\n" #: src/channel-main.c:1868 @@ -286,15 +287,12 @@ msgstr "%s %s %s a %d-%d" msgid "Select USB devices to redirect" msgstr "Selezionare dispositivo USB da redirigere" -#: src/usb-device-widget.c:420 +#: src/usb-device-widget.c:393 #, c-format msgid "Select USB devices to redirect (%d free channel)" -msgstr "Selezionare dispositivo USB da redirigere (%d canale libero)" - -#: src/usb-device-widget.c:421 -#, c-format -msgid "Select USB devices to redirect (%d free channels)" -msgstr "Selezionare dispositivo USB da redirigere (%d canali liberi)" +msgid_plural "Select USB devices to redirect (%d free channels)" +msgstr[0] "Selezionare dispositivo USB da redirigere (%d canale libero)" +msgstr[1] "Selezionare dispositivo USB da redirigere (%d canali liberi)" #: src/usb-device-widget.c:439 msgid "Redirecting USB Device..." diff --git a/src/usb-device-widget.c b/src/usb-device-widget.c index de62564..7979a2c 100644 --- a/src/usb-device-widget.c +++ b/src/usb-device-widget.c @@ -390,8 +390,8 @@ static gboolean spice_usb_device_widget_update_status(gpointer user_data) redirecting = spice_usb_device_manager_is_redirecting(priv->manager); g_object_get(priv->manager, "free-channels", _channels, NULL); -free_channels_str = ngettext(_("Select USB devices to redirect (%d free channel)"), - _("Select USB devices to redirect (%d free channels)"), +free_channels_str = ngettext("Select USB devices to redirect (%d free channel)", + "Select USB devices to redirect (%d free channels)", free_channels); str = g_strdup_printf(free_channels_str, free_channels); markup_str = g_strdup_printf("%s", str); -- 2.20.1 ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [PATCH spice-server v5 00/18] Port SPICE server to Windows
ping > > Windows support is useful to use with Qemu under Windows as host or > to implement servers like Xspice. > Mainly SPICE server uses lot of libraries to expose a TCP protocol. > As TCP is implemented with socket library which is quite portable was > not that hard to port. > Beside some minor feature (see REAME.Windows) all was ported. > During porting was choosen to keep Unix as the main platform, if a > change would require too much changes some Windows wrapper is > preferred instead. Not too complicated stuff, the main "wrapper" is > that Windows errors from socket are written back into errno to avoid > to change lot of code handling errors. > > Changes since v4: > - fix use after free in reds_set_video_codecs_from_string; > - rename conflicting identifiers instead of undefining them; > - remove some preprocessor indentation; > - improve Meson support; > - improve some comments. > > Changes since v3: > - reduce compatibility layer size: > - do not change function name if not required; > - use int instead of a new socket_t. > > Changes since v2: > - better %m replacement; > - many comments updates; > - typo and grammar fixes; > - use int to store socket descriptors/handles; > - merge all v2 updates into a single series; > - split formatting string patch. > > Frediano Ziglio (18): > build: Detect Windows build and change some definitions > Avoids %m in formatting for Windows > windows: Do not use conflicting preprocessor macros > tests: Provide alarm replacement for Windows > sys-socket: Introduce some utility to make sockets more portable > sys-socket: Add socket_newpair utility > net-utils: Port to Windows > reds: Use socket compatibility layer (close -> socket_close) > red-stream: Use socket compatibility layer > dispatcher: Use socket compatibility layer > test-leaks: Use socket compatibility layer > test-channel: Use socket compatibility layer > windows: Disable code not working on Windows > dispatcher: Port to Windows > tests: Exclude tests that cannot work on Windows > red-stream: Fix SSL connection for Windows > Disable recording filtering for Windows > Add some notes for the Windows port > > README.Windows| 18 ++ > configure.ac | 20 ++- > meson.build | 15 +- > server/Makefile.am| 2 + > server/dispatcher.c | 28 ++- > server/meson.build| 2 + > server/net-utils.c| 11 ++ > server/red-channel-client.c | 2 + > server/red-common.h | 1 + > server/red-qxl.c | 52 +++--- > server/red-record-qxl.c | 7 + > server/red-stream.c | 48 - > server/red-stream.h | 2 + > server/red-worker.c | 6 + > server/reds.c | 115 ++-- > server/sound.c| 5 +- > server/stat-file.c| 2 + > server/sys-socket.c | 287 ++ > server/sys-socket.h | 142 +++ > server/tests/Makefile.am | 11 +- > server/tests/basic-event-loop.c | 2 + > server/tests/meson.build | 16 +- > server/tests/replay.c | 2 + > server/tests/test-channel.c | 9 +- > server/tests/test-leaks.c | 5 +- > server/tests/test-loop.c | 1 + > server/tests/test-record.c| 7 +- > server/tests/test-stream-device.c | 1 + > server/tests/win-alarm.c | 65 +++ > server/tests/win-alarm.h | 26 +++ > tools/Makefile.am | 2 + > tools/meson.build | 10 +- > 32 files changed, 805 insertions(+), 117 deletions(-) > create mode 100644 README.Windows > create mode 100644 server/sys-socket.c > create mode 100644 server/sys-socket.h > create mode 100644 server/tests/win-alarm.c > create mode 100644 server/tests/win-alarm.h > > -- > 2.20.1 > > ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [spice] Enable mm_time adjustments on startup
Hi, On 4/17/19 7:27 AM, Francois Gouget wrote: On Thu, 11 Apr 2019, Victor Toso wrote: Hi, On Wed, Apr 10, 2019 at 11:25:17AM +0200, Francois Gouget wrote: We send mm_time adjustments to the client whenever there is no audio playback. There is no audio playback on startup. Therefore mm_time_enabled must be true on startup. QED. Signed-off-by: Francois Gouget But what are you trying to fix/improve exactly? The goal is to reduce the video stream latency. The reason for that is that while a minimum 400 ms latency is fine when playing a YouTube video [1], it's very annoying when the whole desktop is being streamed, either through the streaming agent or through the future Virgl remote access, because then it translates into a 400 ms Are you working on something like that (remote virgl)? lag between every mouse click, keypress and the screen update. This patch is the first step in that without it adjusting the latency is impossible unless one has played some sound first. Notice that currently there's small hacky patch on client to ignore latency when it's full screen streaming and there is no audio playback. (d047b2fb7f5d492d6c49f589ba5ff862c6b115da) Other steps are: * Reducing the default latency. What will be the default? what will happen to late video frames? * Increasing the latency when needed. IIRC this latency is also considered when we match the video frames to the audio playback, such adjustments wouldn't affect the video-audio synchronization / stream flow? what about playing both audio and video as fast as possible when it's streaming case, have you considered it? (i was looking at this issue before and thought this not too bad option :p) Thanks, Snir. * Reducing the latency after network hiccups. * Ensuring latency adjustments don't interfere with the video stream bit rate control. [1] Even in that case the 400 ms latency shows up as the hiccup you get when Spice switches from sending frames as regular screen updates to the streaming code. ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel