After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 777998 - Bins can not be parsed when system language is German
Bins can not be parsed when system language is German
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
1.8.2
Other Linux
: Normal normal
: 1.10.4
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-01-31 18:59 UTC by Rubén Pérez
Modified: 2017-02-02 10:42 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Rubén Pérez 2017-01-31 18:59:23 UTC
Hi,

This is my first time here, so I hope I do everything all right. I'll try to make it short and to the point.

We are using a recording program called "Galicaster", which uses the Python bindings for Gstreamer. We run the program (as recommended) in Ubuntu 16.04, so the Gstreamer version is the latest shipped with that OS version (specifically, the package version is 1.8.2-1~ubuntu1).

We found out that, in some computers, the program would fail with the following error:

gst_parse_error: Kein Behälter »Behälter« - Elemente werden entpackt (1)

, which roughly translates to "No bin 'bin' - Elements are unpacked (1)". The error only happens when the system language in the computer running the program is German. If the system language is English or Spanish (we did not test any others), the error does not appear.

We tracked down the source of the error to the following (Python) code line:

   bin = Gst.parse_launch("( {} )".format(string_description))

In order to create a pipeline, the program parses different parts of it as bins from a text description. For legacy reasons (there used to be a resource leak in the function parse_bin_from_description in gstreamer 0.10 when the program was first written), the function "parse_launch" is used, where the description is enclosed in parentheses to convert it into a bin. If we change the line above to:

   bin = Gst.parse_bin_from_description(string_description, False)

, then the issue disappears.

We subsequently made sure that the problem was in Gstreamer, and not in its bindings, by running the following command:

   gst-launch-1.0 \( videotestsrc ! autovideosink \)

, which yielded the same result:

   WARNUNG: Fehlerhafte Leitung: Kein Behälter »Behälter« - Elemente werden entpackt


My guess is that the German l10n went to far and incorrectly translated an appearance of "bin" that did not represent a name but a class or variable name.
Comment 1 Sebastian Dröge (slomo) 2017-01-31 19:20:47 UTC
This should fix it, thanks for reporting :)

commit ef42e3811eba9580aacf87c6af81d956c4293e75
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Tue Jan 31 21:19:18 2017 +0200

    parse: Don't translate the "bin" element name
    
    Otherwise we won't be able to create bins, there is no element called
    "Behälter" if you're using a German locale.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777998
Comment 2 Sebastian Dröge (slomo) 2017-01-31 19:28:20 UTC
Will also backport to 1.10 (for 1.10.4) later, and probably 1.8 (for 1.8.4)