Essential Commands

Essential Commands

108k Downloads

Grammar problem in other languages

Leo204-LKY opened this issue · 6 comments

commented

Original post from #107

Example: In Chinese, The text of "teleport expired" will be shown as 传送来自 [player] 的请求已过期。 (Teleport from [player] expired.)
However the correct order in Chinese is 来自 [player] 的请求已过期。(From [player]'s teleport expired.)
So if use more than one identifier to send one feedback text to players, it may cause some grammar mistakes in other languages.

Assuming I'm understanding, it sounds to me like this would be addressed by simply changing which text goes in the 1st or 2nd text nodes? Very likely I've misunderstood, lmk

Originally posted by @John-Paul-R in #107 (comment)


Reply

Assuming I'm understanding, it sounds to me like this would be addressed by simply changing which text goes in the 1st or 2nd text nodes? Very likely I've misunderstood, lmk

The text Teleport request from [player] expired. contains 3 parts: teleport.request.expired.1, teleport.request.expired.sender.2, and teleport.request.expired.3.
So if I change the order of the text Teleport request from [player] expired., another text Teleport request to [player] expired., which shares teleport.request.expired.1 and teleport.request.expired.3 with the former one, will be affected, causing another grammar mistake.

Others like Fly (enabled|disabled) for [player]. needs to switch the order of (enabled|disabled) and [player].
Correct order in Chinese should be 为[玩家](启用|禁用)了飞行。(For [player] (enabled|disabled) fly.)

For reasons above, it probably can't be solved by changing the order of the text.

commented

Aha, I think I understand now. Thanks a ton for the detailed explanation! I'll get to thinking about this.

commented

No problem. My bad English made the explain maybe a little complex.

commented

Thank you so much for your patience in fixing the problem!

Some texts are still using separate identifier however, making it no way to switch the order of interpolation.

"teleport.request.expired.1": "Teleport request ",
"teleport.request.expired.sender.2": "to",
"teleport.request.expired.receiver.2": "from",
"teleport.request.expired.3": " expired.",

commented

Converted those over to use interpolation as well. Lmk if anything else needs should be changed.


Thank you so much for your patience in fixing the problem!

No, thank you for walking me through the language issues! I speak only English and never would have known this was a problem unless someone pointed it out for me.

commented

Converted those over to use interpolation as well. Lmk if anything else needs should be changed.

I view the English lang file again, and found these might cause problems.

"cmd.tpask.receive": " has requested to teleport to you.\nType '/tpaccept <name>' to accept or '/tpdeny <name>' to deny this request.",
"cmd.tpask.send": "Teleport request has been sent to ${0}",
"cmd.tpask.error.exists": "Request not sent. You already have a pending teleport request to ${0}",
"cmd.tpaskhere.receive": " has requested that you teleport to them.\nType '/tpaccept <name>' to accept or '/tpdeny <name>' to deny this request.",

/tpa request texts start with player name, then follow the text in the lang file(Line 37 and Line 40).
They are correct in Chinese, but I'm not sure if other languages are correct too.


No, thank you for walking me through the language issues! I speak only English and never would have known this was a problem unless someone pointed it out for me.

It's nothing. I just pointed out the problem, but I just can't help with coding :(

I think this issue can be closed after that. I will update lang file ASAP.

commented

/tpa request texts start with player name, then follow the text in the lang file(Line 37 and Line 40).
They are correct in Chinese, but I'm not sure if other languages are correct too.

Good call, addressed in 56c6b52