Custom translated fields

Albert Astals Cid aacid at kde.org
Sun Jul 5 14:00:28 UTC 2015


El Diumenge, 5 de juliol de 2015, a les 15:39:00, Jaroslaw Staniek va 
escriure:
> On Sunday, 5 July 2015, Albert Astals Cid <aacid at kde.org> wrote:
> > El Diumenge, 5 de juliol de 2015, a les 12:19:53, Jaroslaw Staniek va
> > 
> > escriure:
> >> Is anyone interested with that?
> >> Currently I'm editing these desktop files by hand.
> > 
> > Besides you? I don't think anyone is,
> 
> That's strong even a bit counterproductive declaration...

What is counterproductive? As far as i know you're the one trying to stretch 
what a .desktop file is and provides, so you're the one with the problem, so i 
guessed you're probably the only one interested in implementing this.

> 
> >we've been using .desktop files for ages
> >
> > without the need for translating custom fields.
> 
> Maybe because this part of the standard isn't implemented and people did
> not care and add some c++ virtual methods by hand.

Which part of the standard?

The list of fields that a .desktop file reader should support is clearly 
defined at "Recognized desktop entry keys" of 
http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html and as far as I can see we translate all those fine.

Actually i see Icon is missing, we could just as well add it to the hardcoded 
list, but that's a different discussion :)

> 
> > This is for your own app plugins, right? If so why can't you just reuse
> 
> one of
> 
> > the existing fields? It is not like anyone else than your will make sense
> 
> or
> 
> > even see those .desktop fields, no?
> 
> It's part of the Plugin api that is intended to be public.
> Plugins pattern alone is intended for being used for extensibility, by
> others, right?
> What translated field can be reused?
> Name/description are used, keywords will be used, genericname is only left.
> 
> http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html
> 
> I did not mention one thing: the localestring type isn't optional, it's
> just because the format has no strict validators, nobody bothered I guess.

I can't find in the spec that supporting custom fields of localestring type is 
required by a reader implementation. Actually how can i know that a non-
standard key is localestring and not numeric? AFAICS I can't.

> Hmm as soon as there's a plugin in Kexi (or Krita or other heavy
> plugin-based app) requiring more than one noun, (provides multiple classes)
> reusing genericname won't be enough.

Yes, i agree using .desktop to declare strings/features for your plugin is 
probably sub-optimal.

Actually using .desktop files for plugins is already a bit "wrong" since the 
.desktop files spec says they are to describe "how a particular program is to 
be launched, how it appears in menus, etc.".

Maybe we should just use .json which AFAIK (i'm a bit "old") here is what Qt5 
wants for plugins? We have facilities for translating .json too (again not 
really sure how it works).

> Disclaimer: It all works for me by editing the files, as I said. I am ok
> with someone helping out after translation teams back this fix in the fdo
> implementation.

Editing files by hand can't be considered "works" regarding translations. You 
won't get much coverage since translators won't know they have to go to that 
file to translate it.

> I value most the fact that the task is simple, fixes something missing, and
> can be delegated easily to some volunteer that would like to start
> contribution to the core infra.

I disagree that it's either a fix nor simple.

Cheers,
  Albert

> Cheers.
> 
> > Cheers,
> > 
> >   Albert
> >> 
> >> On Sunday, 5 July 2015, Albert Astals Cid <aacid at kde.org> wrote:
> >> > El Dilluns, 15 de juny de 2015, a les 22:14:25, Jaroslaw Staniek va
> >> 
> >> escriure:
> >> >> Hi
> >> >> Summing up,
> >> >> 
> >> >> As I need get things done, I'm looking for someone to help me with
> >> >> createdesktopcontext.pl
> >> >> - basically change from
> >> >> 
> >> >>   my $regexp =
> 
> qr{^(Name|Comment|Language|Keywords|X-KDE-Keywords|About|Description|Generi
> 
> >> >> cName|Query|ExtraNames|X-KDE-Submenu)=(.+)};
> >> >> 
> >> >> -- to recognize extra fields of type localestring [1].
> >> > 
> >> > You'll also need to modify applycontext.cpp so that it applies the
> >> 
> >> translation
> >> 
> >> > back to the desktop file.
> >> > 
> >> > Cheers,
> >> > 
> >> >   Albert
> >> >> 
> >> >> Magic "# translate" comment is one solution but another could be that
> >> >> for field Foo I am adding:
> >> >> 
> >> >> Foo=Bar
> >> >> Foo[x-test]=xxBarxx
> >> >> 
> >> >> And in final .desktop file it's rather clean, no extra comments
> 
> appear.
> 
> >> >> [1]
> >> 
> >> http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s03.html
> >> 
> >> >> On 11 June 2015 at 15:43, Burkhard Lück <lueck at hube-lueck.de> wrote:
> >> >> > Am Donnerstag, 11. Juni 2015, 09:28:40 schrieb Jaroslaw Staniek:
> >> >> >> Thanks, please let me understand; first - regarding
> 
> KPluginMetaData:
> >> >> >> Why is a hint needed there if
> 
> KPluginMetaData::readTranslatedString()
> 
> >> >> >> cust constructs a magic key with a [lang] sufffix?
> >> >> > 
> >> >> > You are right, no hint needed.
> >> >> > 
> >> >> > --
> >> >> > Burkhard Lück



More information about the Kde-frameworks-devel mailing list