Ultra noobish question regarding Transifex

edit: Figured this out eventually, case closed. Many thanks to the Polish team.

Hello everyone,

me again with a question I probably should be able to figure out myself, but can’t. Help me, Obi-Wan Kenobi. You are my only hope.

I have recently started translating CDDA to Czech via Transifex. As you probably know, there are several options (or should I say mandatory fields) for nouns, where you have to specify whether the string in question is in singular or plural.

Whereas this is simple in English or, say, German (singular and plural, end of story), in my Czech translation, there are 4 of those fields: “1” (singular, no problem there), “a pair / a few” (ambiguous in Czech), “many” and “other”.

The problem with Czech nouns in this is that they basically follow this pattern (illustrated on the word for “rifle” here):

(one) rifle = (jedna) puška
(2, 3, 4) rifles = (2, 3, 4) pušky
(>4) rifles = (>4) pušek

If I understand this correctly, I should be using the “few / a pair” field for the former form of plural (pušky) and the “many” for the latter form (pušek). The “other” is a fallback value. Is this correct? Will the game be able to tell that it should be using one form of the plural for 2, 3 or 4 items and the other for more than 4? Sadly, I don’t seem to be able to test this in any way.

Any and all help with this matter would be much appreciated.

Thank you all in advance,


Ha, seems I was right. Colleagues from the Polish section seem to do it this way.

OK, solved, moving on, sorry for the clutter :slight_smile:


Thank you for letting us know. It might help out future translator running into the same question.

On that note… I wonder how Finnish is going to work with that system :face_with_hand_over_mouth:
(Click to enlarge, sadly no Source other than the related Imgur page)


Oh yes, Finnish seems somewhat similar to Czech in this regard.

The way I see it, some of the in-game constructions in Czech will be stylistically awkward and / or grammatically erroneous sometimes simply because the insane Czech (or generally Slavic) grammar structure cannot be reasonably implemented into CDDA, and there is nothing that can be done about it (yet?) except trying to circumvent it somehow, which is not always feasible.

You must have encountered this yourself when working on the German version, right? Trying to bend the sentences over backwards so that the articles and all the rest fit together?

Well, to be honest, I’ve never done any work on the German translation for this game (other than by cheekily suggesting my own translations over Bjo_Hart’s suggestions)…

But yeah, that’s actually the reason why I play the game in English. It got a lot better since last time I tried to play in German (around 0.C), but there’s still stuff like “Es kostet viel Zeit, um Langschwert zu halten.” which drives me crazy.

…And I’m just too lazy to be the change I hope for, I guess :neutral_face: - If there’s even a way to translate/construct it any better (which I actually doubt there is at the moment)…

Hungarian is probably running into the same problem, as it uses a similar way to construct sentences as German does.

We use GNU gettext, so you check if that has a way to do whatever you need.

Oh boy, that’s a… very long read.

I’ll set it on my already (miles long) todo list… Somewhere at the bottom…

But yeah, thank you for the link, I’ll take a look at it eventually.

I think the section you care about is the Translator’s View section (specifically 12.6 Translating Plural Forms).

It’s been a while since I looked at it, but as I recall sentence compositing is beyond the scope of gettext. And that even applies to seemingly simple things like gallon jug of <placeholder>. Everything has an exception that makes it not work in some language. The only thing I remember gettext supporting is strings which can change depending on a single integer argument.

My day job is in commercial software, and there guidelines forbid any translatable unit smaller than “the text that goes in this UI control”. Any compositing needs to be through UI design, rather than by gluing and/or substituting bits together.

Could you expand on what you mean? That’d be represented as gallon jug of %s or %1$s of %2$s, where in the first one, %s is replaced by <placeholder>, and in the second, %1$s is replaced by gallon jug, and %2$s by <placeholder>. This means that the translator can position these arguments in whatever way they would like.

(but yes, it’s basically impossible to get a way that works for everything).

In English, yes. In other languages, gallon jug, of, and <placeholder> may change based on the quantity and grammatical gender of each of those words. Which word may vary by language.

Other languages may require contractions. Might well apply to French in this very example. Consider the way English switches between a and an depending on how the start of the following word is pronounced. (Pronounced, not spelled. Spelled would be too easy).


Ah, the of was the bit I was missing - AFAIK the gallon jug and placeholder should be handled for most cases, but the of changing would mess it up (AFAIK, I admittedly know little about translation).

This is still relatively easy considering “gallon jug of water” is not a part of a sentence. If it was, the gallon jug, of and <placeholder> would also change depending on the case, aspect and possibly several other things depending on the language. This could result in an unmanageable number of possible forms for each single word, nicely illustrated on Finnish in the polandball above. Honestly, I cannot imagine any way of making that work.

As far as Czech is concerned, I would say this is exactly the case. The “gallon” and “jug” only have three possible forms, which are nicely handled by Transifex and therefore, I assume, by CDDA as well. The “of”, however, makes all the placeholder strings inherently incorrect when used as such, as they are all in the nominative, while “some vessel of placeholder” requires the genitive form of said placeholder in Czech. English does not suffer from this, of course.

Now this is very interesting… Do you think this could be feasibly used to generate even a faint semblance of “correctness”, something simple, e.g. quest dialogue that changes depending on the hero’s gender? Or, say, switching to a genitive form when used as placeholder in gallon jug of <placeholder>?

Within gettext? I doubt it. The hero’s gender would probably wind up being solved as duplicating the entire text in the English source. The genitive placeholder requires metadata from one translation string being supplied to another. Most likely you would define each form of the word separately, including corresponding metadata, and enrich the translation parser so the containing string could be something like {1.gen}, or {1.m?he:1.f?she:1.n?it;they}.

I am very emphatically not volunteering to write that code.

Great! Have a go! :grin: