GNOME Bugzilla – Bug 548950
Uses of C++ strings and iostreams not good for translation
Last modified: 2008-08-24 16:54:48 UTC
C++ string concatenation and iostream seem to be heavily used in Ekiga trunk. This can cause translation problems due to strictness to English grammar. For what I have found so far: (1) #: lib/engine/addressbook/evolution/evolution-book.cpp:88 #: lib/engine/addressbook/ldap/ldap-book.cpp:591 msgid "user found" msgid_plural "users found" source: std::stringstream strm; strm << nbr; status = std::string (strm.str ()) + " " + std::string (ngettext ("user found", "users found", nbr)); This makes it difficult to translate into Thai, for example, where passive voice is considered weird. It needs to be translated like "พบผู้ใช้ %d คน" (literally "found %d user(s)") instead. Using plain C format string should be preferred here. (2) #: src/gui/main.cpp:722 msgid "Connected with" source: info << _("Connected with") << " " << call.get_remote_party_name (); This can be problematic for languages without tenses of verbs like Thai. Certain word needs to be added after the object to indicate tense instead, like "เชื่อมต่อกับ %s แล้ว" (literally "Connected with %s already"). (3) #: src/gui/main.cpp:1121 msgid "added video input device " Same problem as (2) (4) #: src/gui/main.cpp:1134 msgid "removed video input device " Same problem as (2) (5) #: src/gui/main.cpp:1235 msgid "added audio input device " Same problem as (2) (6) #: src/gui/main.cpp:1251 msgid "removed audio input device " Same problem as (2) (7) #: src/gui/main.cpp:1345 msgid "added audio output device " Same problem as (2) (8) #: src/gui/main.cpp:1360 msgid "removed audio output device " Same problem as (2) Note that all problems above can be solved by using C format strings instead. I'm not sure which version of Ekiga will be shipped with GNOME 2.24. In case it's not trunk, this report may be premature. But it should be good to raise it early, before similar C++ mechanisms are adopted more widely in the project.
The version shipped with gnome 2.24 should be 3.00, which is current trunk, so your report isn't premature. In fact, a precise report with a list of occurrences of the problem is a great report : thanks!
I was not sure about the shipped version because current gnome-2.24 moduleset for jhbuild checks out gnome-2-22 branch, while Damed Lies lists PO from HEAD. So, if 3.00 is to be shipped, should jhbuild be updated?
Yes, we should make a release soon. Julien, can you take care of this bug ? Or perhaps Jan ? I won't have the time.
I assigned it to myself, and I'm almost ready fixing it.
I fixed all reported issues, and found one or two others.
Many thanks for fixing them and more. However, case (5) above is still not fixed: #: src/gui/main.cpp:1366 msgid "added audio output device " Reopened the bug.
(In reply to comment #6) > Many thanks for fixing them and more. However, case (5) above is still not > fixed: Oops, I meaned case (7).
Oh!?
Eh, I missed it because it only does std::string "arithmetic" and not std::stringstream, which I was looking for! In any case, done. Don't hesitate to open a new bug if you ever find something like this again!