On Sat, Apr 06, 2013 Hubert Kowalewski wrote:
> While I'm hardly an authority on the coding bit, from the point of view of
> the translator the 1st method look nice. In principle, I would go for
> static grammar and would not like dynamically generated sentences. If I
> understand this correctly, "dynamic" sentences could more or less work for
> my language (Polish), but I'm not sure if negative sentences can be easily
> auto-generated in other languages, so (as a translator) I'd leave as much
> freedom and flexibility to translators.

    Thanks a lot.  In that case, I'll do it with two separate translatable
strings for each condition.  This gives maximum freedom and flexibility.

    Something like:

      if (!preq->negated) {
        cat_snprintf(buf, bufsz,
                     _("Requires that any player has researched "
                       "the %s technology.\n"),
                     advance_name_for_player(pplayer, advance_number
                                             (preq->source.value.advance)));
      } else {
        cat_snprintf(buf, bufsz,
                     _("Requires that no player has yet researched "
                       "the %s technology.\n"),
                     advance_name_for_player(pplayer, advance_number
                                             (preq->source.value.advance)));
      }
        return TRUE;

    So translators will have two strings to work with, allowing words in
the target language to be inserted wherever needed for the grammar of the
target language (example for English above uses "any" and "no...yet" as
a demonstration).  This also allows more extreme differentiation in the
case where direct negation is difficult in a target language, such as:

      if (!preq->negated) {
        cat_snprintf(buf, bufsz, _("Requires the %s goverment.\n"),
                     government_name_translation(preq->source.value.govern));
      } else {
        cat_snprintf(buf, bufsz, _("Not available under the %s government.\n").
                     government_name_translation(preq->source.value.govern));
      }
      return TRUE;

    Is there anything I can do with comments or other indicators to help
indicate to translators that the paired strings are intended to be negated
representations of each other, or is all this lost when the strings are
extracted for translation?

-- 
Emmet HIKORY

_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to