Hi, William and all,

I've prepared five-topic novel for you today (I'm a quick documenter,
but not so quick a translator):

1) Can Russian have a relatively immutable plural genetive they can use
instead of the adjectival, without touching the msgid?
2) Finnish has no particular need for changing unit names to singular /
plural.

3) OMG ARE YOU SLAYING MY FUZZIES - why, are all Freeciv translators
dead or something (instead of just me)? ;)

If there's a general translator-labour issue and someone with lots of
energy wants to work on it (i.e. it's scoring high on the priority list
at the moment):
4) Non-code issues that cost translation time.
5) Some possible optimizations for the overall translation process.

Disclaimer to everything I say: don't do a lot of work just for me just
because I give you ideas, since I can't really do all that much work for
you in return. Unless of course I've suddenly become the average
translator, in which case I am legion. ;) I also specifically don't
worry about the Finnish translation that much, since Finns can generally
play it in English just fine anyway (and the original messages are less
dodgy).

On Mon, 2008-01-28 at 08:38 -0500, William Allen Simpson wrote:
> > #2 adjectival form over nation-plural (and leader names), if #1 is not
> >   doable.
> > 
> Sadly, that's almost exactly opposite what Egor wants for Russian.  Ah,
> the Finns and Russians, always feuding....

Is Egor on this list? Hey, Egor, would it work to just translate the
"adjectival" English form to something completely different for Russian,
like I've done with Finnish? :)

(And we're not feuding, pft! We do that with the Swedes. ;))

> > On the other hand, "Matti is the leader of the Polish rebels." can be
> > translated literally to Finnish, since 'rebels' is the word that
> > inflects, while the "Polish" part stays the same (because it's
> > stubbornly translated to plural-genetive, "puolalaisten"). 
> > 
> Ah, I almost understand.  So the adjective only works as adjective_plural,
> which is like what Russian wants.  That means we need to make all units
> have a plural name?  Or we need to have singular and plural unit names?
> With singular and plural adjectives?
> 
> Polish Destroyer (singular)
> Polish Musketeers (plural)

No no nononono! X-D The plural in the plural-genetive is for "(of) the
Poles" - as opposed to "(of) the Pole"; not the "Musketeers" vs. the
"Destroyer". In this context it doesn't matter to me one bit if the unit
names are singular or plural, the nation "adjectival" plural-genetive
translation is "puolalaisten" for all of them.

Singular/plural mostly matters when the unit is described as doing
something, since the plurality of the subject affects the verb much like
in English (has vs. have). And as for this, I treat the unit names as
names and ignore plurality; it's not one of my main problems, so to
say. 

I typically traslate sentences describing unit behaviour as if they were
singular in all cases, like "Your unit Musketeers has a field trip." or
"Polish Musketeers lands head-first to trouble." It doesn't sound too
bad after I've kludged my way through other grammar structures (like the
"your %s") on a regular basis. :)

Fuzzies:

> > Doesn't any change to the msgid immediately fuzz up the string, so it
> > won't work in any case? You're not de-fuzzing stuff automatically, are
> > you?
> > 
> Whenever I make a change to a string that keeps the same parameters in the
> same order, I let the usual routines handle fuzzy.  Fuzzy strings still
> work, that's just a comment for the translators to help them find changes.
> 
> If the number or order of parameters changes, then I also have to hand fix
> all the msgstr, too, or the compiler fails.  That's more work, so I try to
> *not* do it very often....

I'm not sure I've understood correctly, but I'll underline something
violently just in case I did. :)

Fuzzy is your friend! It's there for *quality*. Do not assault the fuzzy
unless there's *no other option* (i.e. no hope of finding anyone who
speaks the language ever again combined with a preference to have *any*
partial translation, no matter how outdated). And even then, think about
it for a long time, because you probably should be doing something
different anyway.

There is more to translating than message mass; if there weren't, we
could cut'n'paste some pleasant string everywhere and be done with it. 

If there is no quality to the translation, people will not use the
translation, no matter how close it is to 100%. I can't find a Freeciv
translation on Ubuntu Launchpad anymore; I think it got to 100%, but at
the cost of not really being useful to our upstream translation anymore
- anyone could go translate a couple of strings their way without any
terminology synching or tags to help it in the po file. A lot of strings
were translated, but I'm not sure if the end user was much happier
(Finns who play networked strategy games typically speak English well
enough to be able to fall back to English interfaces whenever
translations add even a bit of confusion - we have to *earn* their
trust, since they're not locked to Finnish).

If you find yourself removing fuzzy tags automatically, it's a danger
sign that you're also changing translateable strings too eagerly. That's
the first point for avoiding erosion of translations: letting msgids be,
changing them systematically when forced to, and setting up string
freeze periods a few months before shipping for the translations to get
fixed - and thinking long and hard about any string freeze breakages,
even for bugfixes. Freeciv has incredible amounts of strings, and seems
to occasionally have rather strong translation rot as a result of
modifications to many strings at once. Like the notorious adding and
removing "Game: " and such tags from all strings. (Yes, that particular
event bothered me maybe a bit more than it should have, it's been
yeeears. But I'll keep reminding you not to do stuff like that again.)

The rules of the fuzzy:

* If you fix a typo in the sentence, the added "fuzzy" tag is there to
  tell the translator that they may have reproduced the typo before and
  should check their message. For example, if an English message was
  missing a period, the translation probably does too. If you add it to
  the English message and then *remove* the 'fuzzy' tag from the
  translation, the typo'll never get fixed in the translation. I hardly 
  ever look back at non-fuzzy translated messages for any new greetings
  from coders; my hands are full with other stuff.

  * Same applies if you remove a "Game:" or whatnot from the sentence.
    Not leaving the fuzzy be deteriorates the quality of the
    translation.

* If you change the meaning of a message but automatically defuzz
  messages, why did you change the meaning? If you don't believe the
  translation should be changed, why should the msgid change?
  
  * I'm under the impression that if you need to fix something in an 
    English string for the sake of the English-speaking users, you can
    do it by generating an English translation of Freeciv and putting
    the fixes there (and leaving the rest untranslated). That way, 
    msgids don't need to be touched before the next big squeeze.

* If you change the ordering of %ses, the meaning of the English message
  *must* change, otherwise the entire reordering is rather strange,
  isn't it?

* And lastly, if you modify a msgid a lot, can you be absolutely certain
  that the translation that's automatically picked and marked as fuzzy
  is actually the translation of the string you changed, and not
  something else from the obsoleted or active or fuzzy messages which
  have a msgid *more "similar"* to the new one? 

I find the gettext string-matcher logic rather mystifying sometimes, and
wouldn't trust it any further than I can throw it. Which is not far.
The translation for "Game saved.", when the msgid is changed to "Your
game was saved." can suddenly become a translation for "You're saved."
because maybe "You're saved." was used in Freeciv back in the day, and
the happy translator has left a bunch of obsoleted strings to rot in the
end of their xx.po in case they return to fashion again some day, and
the ever so helpful gettext matcher picks it up.

  
I'm hoping I didn't just suck out all the motivation out of you there.
X-) I appreciate your enthusiasm for improving translator life a lot,
and just making me think about Freeciv by discussing interesting stuff
on the translator list goes a long way towards motivating me too. I also
firmly believe you can and should be allowed to do anything you like
with all fi.pos after they leave me, so this isn't a "you have to do
things my way" note. I still occasionally poke at the translation for
the sake of improving it, and having it rot in new unexpected ways means
more work for me trying to accommodate myself to the monster the next
time I gather up the strength to touch it.


Translation process:

For context, I've been translating Freeciv to Finnish less or somewhat
actively since something like 2000 (with occasional help, luckily), and
haven't been actively playing the game for years. I've been less active
for translating too for several years now, since I could translate an
entire small piece of Gnome software to Finnish in the time it takes for
me to figure out:

1) how to get me an up-to-date msgmerged fi.po again (Gnome: it's on the
web! <3 Here I think I need to get the entire source, get configure to
finish successfully and then go to po and make fi.pox)

2) what version would make any sense to translate again - is trunk
completely unstable, what's the current upcoming stable version, etc
(Gnome: the translator list keeps me reminded - and there's been a great
improvement on the Freeciv list for the last year or so, too; before
that I think I at some point spent a year or two thinking Freeciv sat in
the same version number, and boy was I surprised at the mass of string
changes)

3) how on earth to test my translation (I typically either can't get
Freeciv to compile, and/or to run, and/or to use my translations; I
admit I don't have a lot of patience for fiddling with it just for
testing purposes either - so I apt-get install a nice freeciv and see
how my earlier translations for the previous stable version fared), and

4) how to get it uploaded to whatever repository we're using again.
Luckily, people have been very patient with my sudden translation bouts
leading to sleepy "can someone get this file uploaded somewhere where it
belongs" emails to the translator list.

These mean that I can only translate when I decide that I will spend an
entire long evening with Freeciv only; I can't just do it "on the side"
because of the relearning process, and I don't have that many long
evenings free. After I get started, I do get a bit frustrated at having
to carefully read through fuzzy strings that have changed in unobvious
ways, or ones that should just be fixed in code first, but some of that
is completely natural. 


Translation process optimizations:

If the problem that leads to automatical unfuzzing is mainly a problem
of passive translators, there's a few things I might suggest for cures:

* Split the Freeciv translation into multiple, more manageable packages:
for example, central gui buttons etc, central messages, units and
nations, more debuggy error messages, help files. That way, translators
can prioritize work more easily, and congratulate themselves for
finishing a 100-string gui even if the help files are all rot.

* Make steps 1-4 above very easy for your occasional translators. Assume
they're technically clueless (being busy is a good approximation to
cluelessness, I've noticed). The Freeciv translator faq, the last I saw
of it, had been pretty much the same for 5 years. I think we had
translation statistics on the web at some point, and then not again at
some other point, downloadable po-files and a fresh freeciv.pot on the
web, and then not again at some other point. Etc.

* Produce a process for managing msgids in a controlled way, for example
through an English translation, to test new ideas for messaging before
implementing them everywhere, and to avoid having to depress translators
during string freezes (oh, and have string freezes, and keep translators
notified of schedules if you at all have the time for it - deadlines are
awesome for motivation). 

Note that since I *have* been more passive than I'd expect a normal
translator to be, I wouldn't notice if some of this already happened
unless it drove over me on this mailing list. So I'm also an eternal
imbalance of demands and personal commitment, which is good to always
keep in mind before listening to me too carefully. ;) 

Thanks again,

--Sini gives her fingers a rest already. X-)


_______________________________________________
Freeciv-i18n mailing list
[email protected]
https://mail.gna.org/listinfo/freeciv-i18n

Reply via email to