How to skip override-overrided localizations

I wonder how I can stop Discourse from overriding my already overridden translations. Our UI/UX is a little customized and it does not follow the current one in Discourse as is.

In Spanish, some people do not understand this Activar listas inteligentes al escribir en el compositor but Listas automáticas al escribir mensajes, and the same with a lot of strings.

I found myself editing texts more than three times because the main branch was updated. Previously, I was able to discard the ‘new’ translations, but for months now they always overwrite mine.

I’m open to suggestions, workarounds, or looking into the admin config that I need to check out. Thanks :slight_smile:

how are you editing them? typically translations strings shouldn’t be overridden with an update if you’re editing them from /admin/customize/site_texts

I’m editing on this admin path, and they started to be overridden a couple of months ago. I can’t remember an exact date, but they weren’t being overridden for years.

Strange… was the example you mentioned, Activar listas inteligentes al escribir en el compositor one of the strings that’s repeatedly having the issue?

Every string that is updated (from core) reverts to default.

I hope to find a solution; it’s really hard to maintain. I can debug and test whatever is needed.

OK, I think I understand that it only happens in the strings I update before Discourse publishes its translations.

If I change Cancel (Resenha) to cancelar, when Discourse publishes the translation, my initial string is lost.

Are you saying that for (probably new) strings that don’t yet have a Spanish translation, you create one and then it gets overridden when they get around to adding the Spanish string? If so, (without looking at the code) it makes sense that it would insert the new string and ignore yours, though that could well be considered a bug (I can see arguments for both ways, however).

That’s exactly what happens here. I don’t know if consider it a bug, but rather something need to be careful about.

I mean, translating all the untranslated experimental stuff takes up our time, and a simple update just discards all of it instantly.

Why don’t you spend that time on translating Discourse for everyone?

The plain truth: because I’m translating slangs, avoiding a lot of rules on purpose… And the translation system that Discourse uses was a little intimidating.

If we’re still here in a couple of months or years, I will put my effort into translating to Esperanto.

I hope we can count on more simple tools :slight_smile:

Unfortunately, I keep losing translations, and it’s really very frustrating.

Is there a way to prevent local changes in translation files from being overwritten during Discourse updates?

I really do not want to receive those updates. The Spanish language from Crowdin is very flat and extended, to my taste. I like the less descriptions as possible from UI/UX perspective. In our community we also use a custom language/aesthetic, with slangs and without capital letters in menus or most messages.

Discourse is innovating a lot in its latest updates, and I would like to keep updating without losing the work invested in the translation overrides. It’s all manual and it really takes time.

Open to suggestions or workarounds.

Perhaps I should check this out, but I’m quite sure any of my own translations, in Finnish, aren’t ever overdriven.

What happens if you update, for example, the translations of the recently shipped Voice plugin and wait for the official Finnish translations on core?

That is the common behavior that reverts everything back, but it could be only related to my instance. I want to solve this for real, and I was thinking about automating a backup of my JSON overrides file with rake tasks.

It could be not elegant and some kind of nuclear, but with the overriding overrides behavior, it is really worst to mantain.

Well, we see when I can upgrade my instance :face_with_steam_from_nose: And after that I have to wait for official translations. But I’ve translated new features on my instance before getting translations — but I can’t be sure those survived, I have only such feelings.