On Fri, Oct 19, 2012 at 4:36 PM, Zeeshan Ali (Khattak) <zeeshanak@xxxxxxxxx> wrote: > On Fri, Oct 19, 2012 at 11:22 AM, Christophe Fergeau > <cfergeau@xxxxxxxxxx> wrote: >> On Fri, Oct 19, 2012 at 06:50:00AM +0300, Zeeshan Ali (Khattak) wrote: >>> From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx> >>> >>> 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.