Maintaining huge translated strings in Transifex


(blaumeer) #1

I’m translating and maintaining the Italian D. localization on Transifex, together with others (hi @vulkanino!).

Discourse localization .yml files contain some huge strings that are hard to maintain once they have been translated.

Transifex makes it easy to maintain short strings when the original english version has been modified, as the translated string is invalidated and shifted to the Suggestions section in the Transifex UI, where it can be copied and adapted to form the updated translation.

When a huge string is modified, such as the usage_tips welcome message, the Transifex UI is not well suited to examine the diff in the english original and tracking the changes to make in the translation.

The translator has to examine the source elsewhere (e.g. github.com), guess which revision introduced the changes, compare the old translation and put that back in Transifex. This process takes time and requires certain skills.
I understand the need to apply small changes and wording nuances in english, but as an occasional translator it’s frustrating to go over it time and again.

What could be done:

  • in Transifex, pin a revision number (from the D. repository) to the translation, to make it easy going back to track the changes in the original. That would be a Transifex feature of course; and/or
  • in Discourse, split the megastrings in smaller chunks.

Dev guideslines for making translation easier
(Gerhard Schlager) #2

I know, it’s quite frustrating.

A possible solution would be to remove those long texts from the YML file and put them in their own Markdown file. Transifex handles such textfiles differently. Each paragraph gets its own entry (as can be seen in this demo project). This would make translating of long texts a lot easier.

BTW: This is somehow related to the following topic, since the documentation consists also of some large Markdown files.


(Marco) #3

I totally agree @blau . If the source changes just a comma, the whole translation is invalidated and we have to check word by word three long texts: the old source, the new source and the invalidated translation; it’s a time killing task.

Between the two, I favor option B.


(Erick Guan) #4

Yep, it’s related to this.

But still need @neil and @techAPJ to help this.


(Jeff Atwood) #5

I personally think Transifex should support this better.


(Gerhard Schlager) #6

Yeah, good luck with that. :wink:


(Jérémy Chatard) #7

I’m trying to complete the French translation, but as of now, the UI gets stuck on very long strings, which prevents also some short strings to be translated (those that are below the TOS for example).

Did you guys find any workaround?

Thanks,


(Gerhard Schlager) #8

What do you mean by that?
If you can’t scroll to the strings below long strings, try disabling the “Show full strings” option…


(Jérémy Chatard) #9

Yeah, I just saw that!

Thanks!

The only one I can’t translate now is the TOS!


(Gerhard Schlager) #10

What’s the problem with the TOS?


(Jérémy Chatard) #11

When I select the TOS string in Transifex, no matter what browser I use, the web page stops responding because the JavaScript routine to load the string in the UI takes too much time to execute. My browser stops the process, saying the page is not responding.


(Régis Hanol) #12

Not sure we can do anything here unfortunately. Why don’t you report that issue to Transifex?


(Jérémy Chatard) #13

Ok, will do it!

Thanks!


(Benjol) #14

The user guide got broken out into a blog post.

Might that be a solution for TOS too?


(Gerhard Schlager) #15

No, I don’t think using a blog post for a TOS is an option. How would you translate or customize it?
I still think extracting those really long texts into markdown files is the correct solution.


(Benjol) #16

The same question sort of applies for the New User Tips and Tricks. I ended up creating a French post here which I could link to from the translation. Not ideal, but… better than nothing.

But yes, breaking them up is better. I’d actually prefer for them to be broken up into bits for Transifex, but there you go.