[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-i18n-doc
Subject:    Re: Puzzle in libplasma?
From:       Chusslove Illich <caslav.ilic () gmx ! net>
Date:       2008-11-12 10:49:53
Message-ID: 200811121149.56370.caslav.ilic () gmx ! net
[Download RAW message or body]


> [: Enrique Matías Sánchez (Quique) :]
> The problem is that "this" should be translated as "esta" or "este"
> depending on what %1 is.
>
> I hope it can be coded in a different way.

The problem is that %1 is an applet name, and comes from any of the .desktop
files. So it is not possible to "unpuzzle" it. Furthermore, pronoun "this"
is needed because there may be two or more instances of the same applet, and
leaving out "this" may cause confusion whether just the clicked instance is
removed, or all instances of that applet.

On a more general level, given that the string cannot be unpuzzled, and
given that it has context (since recently, added after Ihar requested it),
it's *perfect*. This means: if a string is good English, not a word puzzle
(as much as possible), and has nice context, then it's as good as it's upon
the programmer to make it. Everything past that is translators' playfield.
E.g., in this case, even if pronoun "this" wouldn't have been necessary, I
think there's no place asking for it to be removed due to translation --
it's upon the translator, sufficiently informed by the context, to do the
best for the language. Perhaps translate it to the equivalent of "Remove
this applet instance (%1)". Or just leave it with wrong grammar, as Sveinn
notes KDE is full of such stuff (and not due to bad original messages), so
users may have already been accustomed. Or, perhaps...

If neither wrong grammar, nor adding needless words just to work around it,
is satisfactory, in KDE4 translators can always invest some time to make it
both succint and correct. The message in question is translated something
like this in Serbian:

  msgid "Remove this %1"
  msgstr ""
  "Ukloni ovaj %1"
  "|/|"
  "Ukloni $[by-gender-number %1 ovaj ovu ovo ove ove ova] $[acussative %1]"

Here, both the pronoun has to match the gender and number of the noun, and
the noun itself must change the case away from nominative. Thus, in the
scripted part above, after |/|, the by-gender-number call selects one of ov*
pronouns based on gender and number of %1, and accusative picks the direct-
object case of %1.

The remaining question is where do the cases, gender, and number come from
for a given phrase (such as "Picture Frame", "Fuzzy Clock", etc.) If they
were coming from another dynamic KDE4 PO, than in that PO their properties
could be set with the respective message:

  # Hypothetically!
  msgid "Picture Frame"
  msgstr ""
  "uramljena slika"
  "|/|"
  "$[properties gender 'fem' number 'sing' accusative 'uramljenu sliku']"

However, in this case the phrases come from .desktop files, which are a dead
beat; desktop_* POs are static, used only to fill out .desktop files, so
messages in them cannot be scripted like this. Translators therefore have to
maintain a special, property map file, which would have entries like this:

  =;Picture Frame;uramljena slika;
      gender=fem;
      number=sing;
      accusative=uramljenu sliku;
      ;

with the associated difficulty of finding out current applet names and
keeping in sync with additions of new applets (on my to-do list to formalize
somehow...)

So, if anyone's interested, most of the ingredients mentioned here are
described at http://techbase.kde.org/Localization/Concepts/Transcript, and I
would add the few extra recipes (e.g. definition of by-gender-number
function) that complete the construct. (For some motivation, note that this
makes translation tighter than the original; e.g. there is an applet named
"Notes", so the English message will be "Remove this Notes" instead of
"Remove these Notes".)

-- 
Chusslove Illich (Часлав Илић)
Serbian KDE translation team

["signature.asc" (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic