Translatable strings that need context

After discussing a bit with @dirk we realized that there are some strings in Indico that are used with different meanings and thus may need different translations in other languages. One example would be “Application” which can mean the process of applying for participation in a moderated Indico event or a (software) application making use of Indico’s OAuth provider. In English it’s the same word, but in German it would be “Bewerbung” vs “Anwendung” or “App(likation)”.

The gettext system used for i18n in Indico supports something called context (also called msgctxt sometimes). This is simply a a string which allows the same source string (msgid) to be translated differently for the different contexts, so in case of oauth vs registration the context could be something like “oauth apps” and “moderated registration”.

Let’s use this thread to list all cases of such strings we find - eventually we can then add context to them. Depending on where they are used this is not possible yet, but we hope that with Indico 3.0 we’ll be able to do it everywhere (there’s an open issue for our template engine which would need to be implemented first to support it there).

Thank you for starting this and for the explanations.

Can you pin it to this category? (I only have options to “bookmark” and “flag” topics.)

Another example is “use” (verb, imperative) and “use” (noun).

I would like to point out that this topic does not have to be language-specific, as all necessary changes/updates will be made in the code (which is language-agnostic or at least should be).

Let’s hope this thread will grow to a long list until the release of Indico 3.0.


I don’t think “use” is a good example since we don’t have this standalone. Context applies to specific source strings. FWIW, even “Application” seems to be used only in regforms, while “Applications” is only used in oauth. But there the context still makes sense in order to make it easier for translators.

If it is not any longer in the code, I was likely fooled by the glossary in transifex, which contains a “use”.

But the glossary is not limited to complete text elements. To use it efficiently, it will contain single terms, even if they do not exist as such in the code. And translators will use them depending on the context.

Probably “Bewerbung” will be replaced by “Anmeldung” or “Anfrage”, as nobody would do “bewerben” in order to attend a meeting.

So I think people should just “dump” ambiguities and “suspicious cases” here. We will have to make the sorting afterwards, in order to verify or distinguish what is relevant for coding (in github) or rather translating (in transifex).

“title” (academic and subject of a talk/contribution/poster)

Reference to another discussion regarding the term “contribution” (and more!)

It’s the style for the notice shown on all events in the category, indicating its severity - info/warning/danger (white/yellow/red, and icons corresponding to those severities)…

This doesn’t need comments but rather named placeholders, because they way they are right now it would break if some language were to put the end date first. I don’t know if there’s any language doing this (hopefully not) but in principle a translatable string should only use the generic {} placeholder if there is no more than one in the string. Otherwise {named} placeholders are preferred.

Not a concrete example, but a general remark: Please add context when using continuous tense.

“Undoing”, “Selecting”, “Loading”: Sometimes these strings come with ellipsis (…), which makes clear that they are status messages. But the might be used as user options or commands as well (although they should not, gramatically, but well…).

“Next”/“previous” need context, due to 3 different spellings for 3 genders e.g. in german (“nächste/r/s”).
But I am not sure, how many occurences we have in the code. So I put it in this list rather by principle.

Only reference up to now is in a datepicker here. And I did not yet figure out, if it is “next month” or “next year” or something else. In this case I even found “vor/zurück” more appropriate (in german).

It’s the datepicker here and here. So vor/zurück are probably good choices.

I see. Especially because they are only balloon texts anyway, and the picker uses arrows for standard display.

(Maybe the title of this thread would better be “Spotting difficulties for translations”.)

There are “Mr”, “Ms”, “Mrs” and “Dr” offered for translation. The (admittedly outdated) “Miss” is missing. (For memory: “Ms” is a neutral form, which can be married “Mrs” and unmarried “Miss”.) So far, so good.
When it comes to translation, there are several questions:

  1. Do we drop “unmarried woman” forms completely to be political correct. (What is correct in many countries in Europe may not be correct elsewhere.)
  2. Do we keep the (partly) redundant forms “Ms” and “Mrs” with identical translations (“Frau”, “madame”) ?
  3. Are there languages with more than 3 male/femail civil forms and possibly a female form for academic doctors? (“Dra.”?)
  4. Are these character strings stored as such or by index into a (presently 4-elements) table?
  5. And is it realistic to translate these? (How can “Ms” be translated into a language which uses actively and distinguishes the equivalents of “Miss” and “Mrs”?)
  6. Is (neutral) “seño” really to become an equivalent of “Ms”? :wink:

“Information” probably can be translated more or less fluently as as loanword in most European languages. But German usually likes to be more specific (“Angaben”, “Einzelheiten”, “Daten”), other languages may need the context (and splitting of occurences) as well.