<p>After looking into the XML topic some more, I believe it's too expensive for this use case and given the effort involved, provides too little value.</p>
<p>In the meantime, I favor a solution, which gets rid of the I18N for blocked messages altogether and only returns the English text.</p>
<p>Reasons:</p>
<ul>
<li>API error messages are in English. Pretty much all of them.</li>
<li>Currently, none of the translated blocked user messages ever reach a user UI, neither on osm.org, nor in any editor I checked (!)</li>
<li>If editors wish to show a localized version of a blocked user message, they can do so at their own discretion.</li>
</ul>
<p>The second point probably deserves a few words, which is I added a short analysis for setup_user_auth below:</p>
<ul>
<li>changesets_controller: only applies to anonymous changesets, concept no longer exists -> irrelevant</li>
<li>old_controller: history+version for redacted versions: GET /api/0.6/object/* call without Authentication simply skips redacted versions. Only a call with successful authentication would return an error message for a blocked user.</li>
<li>notes_controller: blocked user cannot add notes. Trying to post new notes via /note/new will trigger a POST to /api/0.6/notes.json, which returns with 403 and an error message. However, the UI doesn't handle the error message at all, and simply gets stuck, i.e. the user never sees the error message.</li>
<li>permission_controller: only relevant for editors anyway, which are expected to handle error messages.</li>
</ul>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/issues/2227?email_source=notifications&email_token=AAK2OLJDZCT7AEWNQ5VPPJDPWQTTBA5CNFSM4HN2YVOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV4RVZI#issuecomment-494476005">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLNEEJWHTCPHELMXISLPWQTTBANCNFSM4HN2YVOA">mute the thread</a>.<img src="https://github.com/notifications/beacon/AAK2OLOQ76TFM5ZDUEJGEXTPWQTTBA5CNFSM4HN2YVOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV4RVZI.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/issues/2227?email_source=notifications\u0026email_token=AAK2OLJDZCT7AEWNQ5VPPJDPWQTTBA5CNFSM4HN2YVOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV4RVZI#issuecomment-494476005",
"url": "https://github.com/openstreetmap/openstreetmap-website/issues/2227?email_source=notifications\u0026email_token=AAK2OLJDZCT7AEWNQ5VPPJDPWQTTBA5CNFSM4HN2YVOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV4RVZI#issuecomment-494476005",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>