i18n interface suggestions


#1

Hi everyone! I am translating this awesome game in Italian, I have some experience and I’d love to make a great job, so here’s a a few things I would improve to make it easier to translate!

  1. Sorting - Allow to sort translatable elements by name, so one does not have to use Ctrl+F to translate elements of the same level (Apocalypse Clean Code // Apocalypse Complete // Apocalypse). Allow sorting by “complete”, see point 2. Allow sorting by type (level, method, item…) and so on.
  2. Review - Allow to mark an element as “complete” or “reviewed”, so a translator may focus on make new translation and not making sure other people did not use Google Translate to contribute the site (I fixed some crazy horrible mistakes)
  3. Create new strings for recurrent sentences - Why put “Bonus: no code problems” in every level when you can have one that works for all of them? This would allow more coherence, since I see that people translated that bonus sentence differently in every level. Same thing for “[level] Clean Code” and “[level] Complete” and similar.

Since this is an open-source project you could use Transifex so you don’t have to put resources in developing your own translation interface, but I see you’ve done that so…nevermind :smile:
I’d like to hear what you think!


#2

I’ll only say something about #3: [edit I changed my mind, I’ll say something about #2 as well.]

Because you can’t. The game was not written that way. Those items exist at the “level” level and not above/outside of the “levels”. It would have to be rewritten so that all the strings existed as a separate item in the database which is then queried by the level to get the one that you want for every string in a level. The editor would then give a pick-box instead of text-box. You’d have to search the entire list (or if it did matching then it could search for you (as long as you picked the word already used)) and if what you wanted to say didn’t seem to be on the list you’d have to go to the string editor to add it then come back, reload the level and select it. (This idea isn’t bad in and of itself, it could be cool, but for starters there would have to be many many many more identical messages than unique messages for it to be worth it.)

To do this one would need to find and somehow verify that a person really did know the language and this person would have to agree to answer an email summons to review all submission for language X within a set time period (couple of days?). and we’d need this for ALL languages (otherwise you’d have some under the current trust system and others under the no trust system). (oh, and get someone to rewrite the code so that it works this way.) (I am not saying “stupid” idea, it is a great idea, just…)

You hit the nail on the head: The biggest thing holding back any and all (big) enhancements . . . someone needs to code it up…


#3

Understood. I did not realize it could be such a difficult thing to run an open-source project. (I’d really love the sorting thing, though)
Thanks for the reply!
Oh, another thing about that interface, when does “Specifically Covered” change from “no” to “yes”? And when are the new translation applied? (some translation have an immediate effect, others just keep showing English)
I failed to find some documentation, maybe you can direct me the right way…


#4

Thanks for the suggestions. Can you open these suggestions up as separate issues on the GitHub issue tracker? Then if we get time to improve the translation interface (or someone else wants to contribute), we can coordinate.

“Specifically Covered” changes to “yes” when all the fields in the entry have translations for that language. New translations are usually applied immediately, whereas someone has to manually approve any patches that contain edits.


#5

How about making some kind of ‘voting’ system.

Let’s say there’s two or more translations, and there’s no easy way to find out which one is the better one.

Let the native speakers (anyone who claims to be a speaker of the language) vote for the translation they think is best. This way if a translation is good, it will have many votes (or confirmations), and it will take a really good new translation to overtake the good translation, so vandalism is nearly impossible.

If someone comes up with a translation that is even better, he will probably get a lot of votes and it will still be improved.

The votes should probably be per line, not per page.