>
> On Tue, 13 Jan 2026 at 14:14, Strainu <[email protected]> wrote:
>
>> Hi all,
>>
>> *Disclaimer*: I'm writing this mail with my translator hat on.
>> Throughout this email I will give some examples encountered in today's
>> translation session to clarify my arguments. If you wrote the code that
>> contain those strings, please don't take this personally - it's a community
>> problem, not a personal one.  This is why I'm not providing the exact
>> message names, but only the strings.
>>
>> I've been translating OSS for 25+ years and MediaWiki for almost 20
>> years. For me, It has always been a common effort: the devs need to extract
>> the strings, document them to give context and export them to the proper
>> tooling, while translators need to understand the product, fill the
>> (context) gaps and be consistent.
>>
>> With our 284 languages and hundreds of thousands of strings, we're
>> definitely on the high side of effort needed for translations. However, in
>> the last few years (I would say, roughly from Covid) I see more and more
>> cases when the* effort is moved toward the translators*.
>>
>> It used to be that commons strings like Yes/No, Log in/Log out
>> Watch/Unwatch, Edit or Save were only present once per module. Today? "Log
>> in" (with this exact casing and no combinations) is present at least 5
>> times in  MediaWiki core - User interface. Yes and No - 3 times each.
>> Name - 4 times and the list on.
>>
>
It has been a long-standing and documented policy in MediaWiki not to reuse
strings. When developers add the same string several times, they
are, intentionally or unintentionally, following the policy in
https://www.mediawiki.org/wiki/Help:System_message#Avoid_message_re-use ,
and it's good that they do. It may seem a bit unintuitive at first because
in computers, repeating yourself is often a bad practice, but in
translatable strings, it's often necessary, because even when the string is
the same in English, it is often different in other languages.

When the source string and the translation are the same, it usually doesn't
waste the translators' time much because translation memory is supposed to
make a one-click matter.

If you disagree, I'm happy to discuss it further.


> Another type of duplication are messages 90%+ alike, such as "Talk pages
>> for pages in the main/MediaWiki/.template namespace" instead of "Talk
>> pages for pages in the $1 namespace". I found at least 3 such instances,
>> there might be more.
>>
>
Similarly, the problem with these is that translation of these into many
languages may affect more words and not just that one different word.
Grammar is weird! Theoretically, it could be possible to make some syntax
that chooses the right grammatical form according to the different word,
but it would inevitably complicate the translation syntax and turn
translators into software developers, which is not desirable. Coders should
code, translators should translate. Adding more translation and grammar
syntax would create even more problems of the kind that you describe
further in your email:


>
>> But wait, there is more. Strings like " [[{{#special:Contributions
>> }}/$1|$2]] ([[{{ns:user_talk}}:$1|talk]]) " should not exist at all.
>> First, there is absolutely no guidance on what parts should be translated.
>> [1] I would guess only "talk", which should be replaced with reusing the
>> simple message (aka {{int:talk}}), so nothing to translate. This would save
>> the translators the significant amount of time needed to decode the
>> message, make assumptions and (not) translate the text.  I have some
>> more examples, but I'll stop here.
>>
>
I mostly agree here: there should be as little syntax as possible in
messages. The less wikitext, HTML, magic words, and so on - the better.
PLURAL and GENDER are hard to avoid, and very basic markup like links and
bold font is usually OK, but there should be almost nothing other than
that. Over the years, I did my best to reduce the amount of markup in
messages, and it's still far from perfect.

This is also a documented policy:
https://www.mediawiki.org/wiki/Help:System_message#Avoid_markup_that_doesn't_need_to_be_translated

In your specific example, almost everything except the word "talk" towards
the end shouldn't be in the source message, but:
1. It's probably not a good idea to replace "talk" with {{int:talk}}
because again, in some languages, it can be different in this context.
2. The parentheses are often used differently in some languages (notably,
in Chinese), so the translators need to be able to control them, too. There
is a function that inserts language-appropriate parentheses, and it's used
in some places, but in at least some cases, it only complicates things for
both developers and translators, and it would be easier to just use regular
parentheses and let people translate them appropriately.

The rest of the markup in this message, however, can probably be reduced or
completely eliminated.

As a translator, I very often file Phab tasks that ask to reduce complexity
of this kind. When it's not too complex, I also make patches myself.
You—and I mean everyone reading this—are welcome to do the same because I
cannot do it all of it perfectly all by myself :)


> We must not forget that the translators are also members of our community
>> and the translation time wasted on such strings could be better used doing
>> other activities in the Wikimedia world. The benefits are not small: 1s
>> saved over 284 languages means almost 5 minutes. If fixing your string
>> takes 15 min or less, it's probably worth it.
>>
>> I therefore encourage developers, project and people managers to* review
>> their practices* on generating strings and reviewing code in order to *reduce
>> the number of spurious messages* that the translators need to work on.
>>
>
Even though I disagree with certain technical details in your email (and
I'm happy to discuss them in more detail), I very much agree with its
general spirit! A lot of developers already do it well, but an occasional
reminder doesn't hurt.
_______________________________________________
Wikitech-l mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/

Reply via email to