[virt-tools-list] [libosinfo 5/5] Load localized values for entity params

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Fri Oct 19 20:51:14 UTC 2012


On Fri, Oct 19, 2012 at 4:36 PM, Zeeshan Ali (Khattak)
<zeeshanak at gnome.org> wrote:
> On Fri, Oct 19, 2012 at 11:22 AM, Christophe Fergeau
> <cfergeau at redhat.com> wrote:
>> On Fri, Oct 19, 2012 at 06:50:00AM +0300, Zeeshan Ali (Khattak) wrote:
>>> From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
>>>
>>> Attempt to use the localized values of entity params if available before
>>> using the non-localized values.
>>>
>>> This does not yet include custom (ones starting with 'x-') params as I
>>> haven't yet figured the right xpath magic to (cleanly) achieve that.
>>> Suggestions welcome!
>>> ---
>>>  osinfo/osinfo_loader.c | 33 +++++++++++++++++++++++++++------
>>>  1 file changed, 27 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
>>> index 934c758..7569262 100644
>>> --- a/osinfo/osinfo_loader.c
>>> +++ b/osinfo/osinfo_loader.c
>>> @@ -219,14 +219,35 @@ static void osinfo_loader_entity(OsinfoLoader *loader,
>>>                                   GError **err)
>>>  {
>>>      int i = 0;
>>> +    const gchar * const *langs = g_get_language_names ();
>>
>> I don't think the format of values returned by g_get_language_names matches
>> the format used by xml:lang. The former can be "en_US" while the latter
>> apparently follows https://www.ietf.org/rfc/rfc4646.txt which says 'Subtags
>> are distinguished and separated from one another by a hyphen ("-")'
>
> Oh? I tested with fi_FI.UTF8 and i get "fi_FI.utf8", "fi_FI" and "fi"
> in the array returned.

Seems I totally missed your point here. Despite what the RFC in
question is saying, intltool is getting the value of 'xml:lang' from
the LINGUAS file (same as the name of .po file) and those are always
with an '_' not '-' AFAICT [1].

>> From a quick look in glib/gtk+ source, it seems that in gtkbuilder files
>> and in gsettings schema files, attributes/tags have a special marker to
>> tell they are translatable (trailing '_' or 'translatable = true' attribute
>> iirc), and during parsing, the parser code calls into gettext to get the
>> translated value (see glib/gio/gsettingsschema.c and
>> gtk+/gtk/gtkbuilderparser.c and search for 'gettext'). The advantage of
>> this approach is that we don't have to do the lookup ourselves to find the
>> best translation. Dunno if there are downsides...
>
> Thanks for the pointers. Sounds better indeed so I'll look into that.

While this approach still seem better, I failed to get it to work
although it should have been as simple as: http://fpaste.org/tiKY/

-- 
Regards,

Zeeshan Ali (Khattak)
FSF member#5124

[1] I searched for "*-*.po" in my jhbuild checkout dir (containing
many gnome modules and others like libvirt) and couldn't find any
language specific translation files but "*_*.po" yield lots of
results.




More information about the virt-tools-list mailing list