On Sat, 2018-09-15 at 16:25 +0200, rastersoft wrote:
>     Hi all:
>     I'm doing an schema for gsettings. This is part of it:
>     <schemalist gettext-domain="desktop-icons">
>     <enum id="org.gnome.shell.extension.desktop-icons.ZoomLevel">
>         <value value="0" nick="small"/>
>         <value value="1" nick="standard"/>
>         <value value="2" nick="large"/>
>         <value value="3" nick="huge"/>
>     </enum>
>     <schema path="/org/gnome/shell/extensions/desktop-icons/"
> id="org.gnome.shell.extensions.desktop-icons" gettext-
> domain="desktop-icons">
>     <key name="icon-size" enum="org.gnome.shell.extension.desktop-
> icons.ZoomLevel">
>         <default>"large"</default>
>         <summary>Icon size</summary>
>         <description>Set the size for the desktop
> icons.</description>
>     </key>
>     After passing xgettext, it adds to the .po file all the "summary"
>       and "description" contents, but it doesn't add the nicks in the
>       enum (this is, the strings "small", "standard", "large" and
> "huge"
>       aren't added to the .pot file). But I want to show in my
> program
>       the values translated.
>     Of course, I now that in the settings itself I must use the
>       original strings, not the translated ones, but I don't want
>       gsettings_schema_key to return those values already translated;
> I
>       only want to ensure that xgettext adds those strings to the
> .pot
>       file.
>       I tried adding l10n="messages" to each value, but the compiler
>       doesn't like it. I tried using "alias" inside the key part, but
>       they aren't added, and adding l10n to the aliases is also not
>       allowed.
>     So the question is: how can I do that?

tl;dr: You can’t do that from a GSettings schema file. GLib doesn’t
support translations of enum/flag value names or nicknames, because
they can end up being used as identifiers for the enum/flag values (for
example, when calling g_enum_get_value_by_nick()).

Probably the right way to do it is to keep an array of the translatable
enum names in your code, and have xgettext extract the strings from
that. Presumably you’ll need the enum names in your code somewhere
anyway to put them in the UI.

If you really want to make everything dynamic, you could write some
custom ITS rules for extracting the enum nicks from the GSettings XML
file, and use them with xgettext’s `--its` argument.


Attachment: signature.asc
Description: This is a digitally signed message part

gtk-devel-list mailing list

Reply via email to