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. > 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. -- Regards, Zeeshan Ali (Khattak) FSF member#5124