[MC-8647] Death messages not translatable Created: 29/Jan/13 Updated: 11/Dec/15 Resolved: 01/Feb/13 |
|
| Status: | Resolved |
| Project: | Minecraft: Java Edition |
| Component/s: | None |
| Affects Version/s: | Minecraft 1.4.7, Snapshot 13w03a, Snapshot 13w04a |
| Fix Version/s: | Snapshot 13w05b |
| Type: | Bug | ||
| Reporter: | Seán Ó Séaghdha | Assignee: | Unassigned |
| Resolution: | Fixed | Votes: | 5 |
| Labels: | translation | ||
| Environment: |
All |
||
| Issue Links: |
|
||||||||||||||||
| Confirmation Status: | Unconfirmed | ||||||||||||||||
| Description |
|
The new death messages do not conform to the norms for internationalization. They assume you can break down sentences into parts that will be recombined using something like English grammar. This is not so. Example messages These and many more assume a particular word order making them untranslatable in many languages. In Irish (& all Celtic languages) word order is Verb Subject Object. You can't just use fragments starting with "was" because the verb has to come before the subject! The same goes for a fragment like "died". What am I supposed to do with that? You are assuming that the verb comes second when in Irish it's complex expression - Fuair X bás "X died". Assumptions in programming are bad. Same goes for internationalization. It would be nice to see Mojang take translations a little more seriously. |
| Comments |
| Comment by Kumasasa [ 11/Dec/15 ] |
|
MarcusReporter: Where exactly is your problem when translating %1$s was doomed to fall by %2$s in any other language ? |
| Comment by Marcus Vinícius Araújo Peixoto [ 11/Dec/15 ] |
|
But the bug reappeared! I can't even get the "doomed to fall" |
| Comment by user-f2760 (Inactive) [ 11/Dec/15 ] |
|
This has been fixed over 2 years now.... |
| Comment by Marcus Vinícius Araújo Peixoto [ 11/Dec/15 ] |
|
Moo's idea is really good! Instead of picking fragments of the same sentence, for example: Jeb [was shot (...) by Skeleton] + [off a ladder] + [withered away] = Jeb was shot off a ladder by Skeleton and withered away. You could split up in MORE THAN ONE SENTENCE! Example: Jeb [was shot by Skeleton]. Then, he [fell off a ladder]. Finally, he [withered away] Or The second is better because three sentences with "then" and "finally" is too repetitive! Guess this is the only way to make death messages funnier! ;-; |
| Comment by Chloe Idun Anderson [ 02/Feb/13 ] |
|
This is obviously only an idea, and probably not a super effective one, but you could just implement a little script that lets them code the death messages and how they're parsed together in the language files. Nothing too complex, but I think that could work. |
| Comment by Bastiaan de Jong [ 01/Feb/13 ] |
|
If possible i´d be cool with that. |
| Comment by Chloe Idun Anderson [ 01/Feb/13 ] |
|
I like moo's idea. I would be sad to see the loss of the new dynamic system. |
| Comment by Moo [ 01/Feb/13 ] |
|
Instead of having a complex sentence like "jeb was shot off a ladder by Skeleton and withered away" which is hard to split in a way that's compatible with all languages, why not simply split it into as many sentences as required? |
| Comment by Bastiaan de Jong [ 31/Jan/13 ] |
|
I agree with Jeb. |
| Comment by [Mojang] Jeb (Jens Bergensten) [ 31/Jan/13 ] |
|
It's fine to change the order of parameters, that's why they are numbered. Ie you can change "blah %1$s bleh %2$s" to "blah %2$s bleh %1$s" if you want, though it's difficult to know what they are replaced with. The %1$s was removed from the death reasons because they were used as fragments as either "jeb withered away" and "jeb was shot off a ladder by Skeleton and withered away". That sentence was a combination of the following fragments: playername=jeb death.fell.by.assist=was %1$s by %2$s death.fell.cause.arrow=shot %1$s death.fell.from.ladder=off a ladder entity.Skeleton.name=Skeleton death.cause.assist=%1$s %2$s and %3$s death.attack.wither=withered away It's probably very difficult to find a fragment system that works in all languages, as you say, so I had to simplify the system. It's no longer possible to get falling+death combinations, and all different ways of being pushed by someone has been removed. In the example above, if I had been killed by the Skeleton's arrow it would've been "jeb was shot by Skeleton", if I had been killed by the fall "jeb was doomed to fall by Skeleton", and if I had been killed by the wither effect after the fall "jeb withered away" (as previously). |
| Comment by Seán Ó Séaghdha [ 31/Jan/13 ] |
|
The problem with being in a different time zone...everything happens while you're asleep. There might be a way of making this work but you'd have to have some kind of meta-sentence with named parameters. Even then it might be tricky for some languages...wish I understood enough Japanese to check how they're doing with this. E.g. <playername> fell <falltype> instead of fell %1${noformat}
I'd try to do the whole list of problem strings, but the other thing is that I still have no idea what some of them are supposed to be because there is no contextual information. What are these, for example?
death.cause.kill %1$s %2$s There's absolutely no way to know the significance of these and crowdin even advises you don't change the order of strings that only contain variables. It's probably an exaggeration to say you can't do _any_ dynamic sentences, you just need to show the translator the _whole_ sentence, i.e. include a parameter for the subject, and make it clear somehow which are the strings that will be substituted so they can be found and checked. The other problem ones for me are... ...the generalised passives... death.fell.by.killer was %1$s ...and their complements (I'm guessing?)... death.fell.cause.arrow shot %1$s All of the other strings could easily be fixed by turning them back into full sentences - i.e. the same _number_ of sentences, not some factorial madness. E.g. the 1.4.7 strings death.magic %1$s was killed by magic Maraíodh %1$s leis an draíocht (Autonomous verb) rather than death.attack.magic was killed by magic Unless you were doing something nefarious like inserting them into other strings. |
| Comment by MegaScience [ 30/Jan/13 ] |
|
As nice as modular messages would be, as we know by this point, having to give special settings for all supported languages and any languages to be supported in the future would be... odd. If someone does think of a nicer solution, hopefully they'll come here or similarly to present it. But for now, this will at least make translation easier. |
| Comment by Bastiaan de Jong [ 30/Jan/13 ] |
|
I figured that was the only sollution, to bad, I really liked them. |
| Comment by [Mojang] Jeb (Jens Bergensten) [ 30/Jan/13 ] |
|
Bastian: Yes, I tried to figure out a way to keep the dynamic feeling of the death messages, but I couldn't find one. I've simplifed the death messages and made them full sentences. I'll upload a new translation sheet to crowdin tomorrow. |
| Comment by Bastiaan de Jong [ 30/Jan/13 ] |
|
This is indeed a problem. However I also see that with all the possible sentence combination, a list of full sentences would quickly become very huge. I can´t do the math exactly, because i don´t know the amount of combination in the code. |
| Comment by MegaScience [ 30/Jan/13 ] |
|
Would make more sense to just introduce the dynamic variables directly into the statements, yes. What complications would that have other than adding the adaptation to replace all of them? |
| Comment by Seán Ó Séaghdha [ 30/Jan/13 ] |
|
Yes, that's what I mean. Don't use sentence fragments, use sentences. It's much more likely to be translatable into any language. |
| Comment by GrygrFlzr [ 30/Jan/13 ] |
|
Seems like a good solution to have an extra variable for the victim name (in this case, 'jeb'). death.fell.by.killer: was %1$s it uses something similar to death.fell.by.killer:%1$s was %2$s |
| Comment by Seán Ó Séaghdha [ 30/Jan/13 ] |
|
Well, I can do that, but I think you're missing the point. You can't code the grammar of all languages into the program messages. It's better to use more messages that are complete sentences. Jeb fell off a ladder Jeb fell off a ladder and was slain by a zombie (Late) dinner time for me, so I'll have to come back to this tomorrow. |
| Comment by [Mojang] Jeb (Jens Bergensten) [ 30/Jan/13 ] |
|
Seán: Can you please provide more death message examples, so I can see how to change the message form? For example, translate "jeb fell off a ladder" and "jeb fell off a ladder and was slain by Zombie", for starters. |
| Comment by Kumasasa [ 30/Jan/13 ] |
|
Reopened. |
| Comment by Seán Ó Séaghdha [ 30/Jan/13 ] |
|
Could you explain where on crowdin.net there is a central place for recording problems with the translation strings? |
| Comment by Seán Ó Séaghdha [ 30/Jan/13 ] |
|
Wow, that was really helpful...not. |
| Comment by fuj1n (Arthur Uzulin) [ 30/Jan/13 ] |
|
This ticket is a language translation change/add request and is currently not supported on this JIRA. |
| Comment by Seán Ó Séaghdha [ 30/Jan/13 ] |
|
I know this is OT, but although the translation is done by the community it is still in Mojang's interest to have it work well. Bad translations, community produced or not, reflect badly on Mojang's product. There is very little information on, or co-ordination of, the translations. I've been part of a few community translation efforts and they are almost inherently contentious affairs. They need some level of oversight to achieve a consistent result. The allow-random-people-to-contribute-and-vote model (as used to a much worse extent by Facebook) does not produce a good result. When I discovered a few months ago that there was such a thing as "proofreader status" on crowdin.net I was surprised how many other translation teams had also never even heard of this (e.g. French). People don't know this stuff because there is no co-ordination or useful info coming from Mojang. This is what I meant by taking translations seriously. You can say "oh, it's only a snapshot" but there is no notification system so it's only by visiting crowdin.net that you can even know there are new terms to translate. This stuff can easily slip into a release. And seriously, this is basic, basic stuff. This is not a mistake that should be made in the first place. For a robust, reliable translation process we need:
No doubt someone will say "well, can't you do some of that anyway?" and maybe I will, but I just want to make the point that this is a serious issue. |
| Comment by [Mod] Ezekiel (ezfe) [ 29/Jan/13 ] |
|
Arthur Uzulin, although they aren't making the translations, they need to make it translation-compatible. |
| Comment by MiiNiPaa [ 29/Jan/13 ] |
|
Many articles on internalization strongly advises against "building" messages. |
| Comment by fuj1n (Arthur Uzulin) [ 29/Jan/13 ] |
|
"It would be nice to see Mojang take translations a little more seriously." Please remember that this is only a snapshot, and please do not blame Mojang for missing something, reporting is a good thing however. Also, from what I believe, Mojang are not doing the translations, the community is. |