[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Translation of strings in QEMU w/ gettext ?
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] Translation of strings in QEMU w/ gettext ? |
Date: |
Wed, 03 Jun 2015 09:28:05 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
"Daniel P. Berrange" <address@hidden> writes:
> On Tue, Jun 02, 2015 at 04:34:09PM +0200, Kevin Wolf wrote:
>> Am 02.06.2015 um 14:56 hat Daniel P. Berrange geschrieben:
>> > So I'm wondering if there is a long term vision / desire for translation
>> > in QEMU or not ?
I'm not aware of any plans, just idle talk every couple of years.
>> > In a number of cases libvirt includes the error message from QMP in the
>> > message we pass back up to the user. Any errors from libvirt are always
>> > translated, so if running libvirt in a non-en_US locale currently you
>> > will get a translated message from libvirt which includes a bit english
>> > text from QEMU.
>>
>> The problem here is which locale to use. If the server uses a different
>> locale than the client, not much is won. Can libvirt know on startup
>> which language should be used?
>>
>> Would we need a language per QMP connection? (Hopefully not.)
>
> Libvirt doesn't have any client selected locale - whatever locale the
> libvirtd server is started in is used for all strings. This is good
> enough as the most common case will be people with both client and
> server using the same locale.
>
>> > Also, with the GTK ui frontend of QEMU now, you'll get some translation
>> > of the user interface menu options thanks to GTK built-in translations,
>> > but the rest are still english, which is not very satisfactory either.
>>
>> As you noticed, this is not what happens, but I think this is the most
>> important point: If you translate something, translate all of it.
>> Mixed languages is worse than just English.
>>
>> Currently the split is that the GTK UI is completely translated, and
>> other parts (especially the monitor) isn't translated at all. This is
>> a split that is easy to understand and doesn't feel like mixed
>> languages.
Aside: in my private opinion, QEMU should've stayed out of the GUI
business.
>> If we want to extend it to the monitor, we need to translate all of the
>> monitor (including all error messages that could eventually be passed to
>> the monitor) in the same release. Sounds not impossible, but in this
>> case we really can't do just half of it as we usually do with our
>> conversions.
>
> Well, even if all the code was translated, we would never guarantee that
> all languages have 100% finished .po files. So incrementally updating the
> QEMU source to mark more strings is not that different from a case where
> all is marked but most translations are incomplete.
No different qualitatively (untranslated messages exist), but almost
certainly different quantitatively (how frequently do users see
untranslated messages?) Unless we make a serious effort to hunt down
and mark at least all the common messages.
However, internationalization takes more than just wrapping existing
strings in _(), then hand them off to an army of translators. At best,
that'll work tolerably for a few languages closely related to English
(assuming you tolerate bad grammar). If you don't believe me, check out
"A Localization Horror Story: It Could Happen To You"[*]. Quote:
[This] cautionary tale relates how an attempt at localization can
lead from programmer consternation, to program obfuscation, to a
need for sedation.
I doubt we're ready to attack this problem. Plenty of more urgent fish
to fry...
[*]
http://search.cpan.org/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod?#A_Localization_Horror_Story:_It_Could_Happen_To_You