yairm210 / Unciv

Open-source Android/Desktop remake of Civ V
Mozilla Public License 2.0
8.26k stars 1.55k forks source link

Military translation #3353

Closed drizt closed 3 years ago

drizt commented 3 years ago

In different contexts military can have different translation. And I can't to find a correct way to use single translation in next cases:

In Russian adjectives have many forms.

.... and other forms.

In some cases it's possilble to play with words in sentence to get correct final sentence form and correct sense. But in current case I think need to change original template. Or maybe add new feature with alternative translations.

P.S. military translates as военный, but in Civ and Unciv uses боевой.

yairm210 commented 3 years ago

If I change all 'military' to reference 'military units', does that solve the problem?

drizt commented 3 years ago

I think yes. Only one question. Here [military] opponent's it is matter to have military in brackets? Or they can be dropped?

yairm210 commented 3 years ago

No, because there can be many different unit filters there Mounted Melee Civilian Ranged

Etc

drizt commented 3 years ago

Then I think should to avoid using of any adjectives in common. And replace [military] with [military units] or something else in current case.

TheRexYo commented 3 years ago

The reason things are setup as they are is because, in the games code, the unique effects will choose between a list of terms, and the syntax would break if anything that wasn't directly tested for was added inside of them. They're called 'parameters' for a reason - they're the inputs for the game's code. So changing it to [military units] would break the current functionality. Besides, any localization should occur during gameplay, not beforehand. Otherwise, all languages would have to read it in russian syntax, which as you said is very different from other languages. It would make things very difficult.

I have also translated my response into Russian, in hopes that it will remove any communication errors.

Я также перевел свой ответ на русский язык в надежде, что он устранит все ошибки связи.

Причина, по которой все настроено так, как есть, заключается в том, что в коде игры уникальные эффекты будут выбирать между списком терминов, и синтаксис сломается, если в них будет добавлено что-то, что не было проверено напрямую. Их не зря называют «параметрами» - они являются входными данными для кода игры. Поэтому изменение его на [воинские части] нарушит текущую функциональность. Кроме того, любая локализация должна происходить во время игры, а не заранее. В противном случае все языки должны были бы читать его с использованием русского синтаксиса, который, как вы сказали, сильно отличается от других языков. Было бы очень сложно.

On Thu, Nov 19, 2020 at 9:53 PM Ivan Romanov notifications@github.com wrote:

Then I think should to avoid using of any adjectives in common. And replace [military] with [military units] or something else in current case.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/yairm210/Unciv/issues/3353#issuecomment-730828495, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOB2TVNFI7O2QEBENIROJ5LSQXR47ANCNFSM4T25EMOA .

drizt commented 3 years ago

I know how works parameters. And if change [military] with [military units]' also need to make changes in the code too. I tries to say that using adjectives for parameters it is a bad idea. So do you have any suggestions how to solve this problem? I think just leave all as is not the best choice.

yairm210 commented 3 years ago

The solution in my eyes is to have all English sentences containing unit adjectives have the same non - to wit, '[adjective] units' This will take a bit of work

the-Arioch commented 3 years ago

Oh, here he is, the Russian maintainer found :-)

Then can you fix stupid typos?

началоСТь строительство

and Siege 3 instead of Siege 2 for bombers

the-Arioch commented 3 years ago

Hypothetically [military unit] can be back-translated to "military" in english localisation package. In the end this means the original messages would not have plain english text but some informal parameters (attributes) coded ad hoc into the messages.

But it still would not fix different cases and differnet genders issues with Russian (and other Slavic languages) nouns and adjectives.

There also can be another can of work: gradual plurality. When in English one has either "1 cat" or "2+ catS", Russian retains PIE's middle ground, a special case for 2-5 objects. And then (10N+1) is again a singular cat.

And then there would be verbs flexing, with different rules for past and present/future tenses.

In the end one i think has to either translate by-phrase not by-word (making parameters substitutions first, translating later, yes, combinatorial explosion), or embed all kinds of hint attributes into original phrase. Including maybe even back-referencing other (numeric) parameters in the message.

There is a reason featurefull i10n libraries are badly complex. I wonder if homebrew solution should even be tried at all. Covering all edge all cases would not be easy and you can not even plant for it - as every new language can come with its one non-predicted idiosyncrazies. It would be like chazing a horizon. Sooner or later you would have to stop and say "whooosh! too tired, not gonna fix that, whatever" and leave the bugs be, or maybe switch to some "professional" library anyway. Unless you gonna develop a perfect all-encompassing i10n library as UnCiv's side project, you would have to draw the line one day.

JackRainy commented 3 years ago

Then can you fix stupid typos? @the-Arioch , done in PR #3564