IC2 Classic

IC2 Classic

2M Downloads

[Language] Rus Translate.

yaroslav4167 opened this issue · 25 comments

commented

ru_RU.lang
There was little time, translate the modification.
Translation may not be accurate, but I really tried =)

commented

Line 147:
item.itemQuantumArmorJetpack.name=Квынтовый жилет (Встроенный реактивный ранец)
should be
item.itemQuantumArmorJetpack.name=Квантовый жилет (Встроенный реактивный ранец)

commented

Lines 267-269: "..обогащенный древестным углём". Should be "... древесным ..."
Line 339: "Металолом". It writes with two "л", in other place it's spelled correctly.

commented

Line 394: "Иридевая" => "Иридиевая"

Why "MultiPart" is translated? IMHO it is term.

"Black Stuff" (I think it is named so in original) is a kind of beer/brewing created with crazy ratio of components... It not means "black material". I would name it "Чёрная жижа", "Неудачное месиво" or something like it, but not "Чёрный материал"

commented

Line 518: "Температора" => "Температура".
If I'm right about place where it is used (induction furnace?) this word is too long. Something 4-6 letters long should be used. I'm not sure as I've not seen IC2 Classic gui...

commented

Lines 561-562 are very strange... I have no idea what they mean. And all of them are waaaaay too long. I suggest write something like this:

container.energyStorageRedstoneMode0.name=Не испускать сигнал
container.energyStorageRedstoneMode1.name=Испускать сигнал если заражено
container.energyStorageRedstoneMode2.name=Испускать сигнал если содержит заряд
container.energyStorageRedstoneMode3.name=Испускать сигнал если заряжено менее половины
container.energyStorageRedstoneMode4.name=Испускать сигнал если заряжено более половины
container.energyStorageRedstoneMode5.name=Испускать сигнал если хранилище разряжено

(I've no idea what last 2 mods are doing. )

Line 635 "неаозможно"

commented

Line 858:
wailaInfo.energyContainerMaxInput.name=Макс. Выход: %1$s EU
Так вход (input) или выход?

"Невозможно связать телепорт к себе.", "Поисковые руды:" are not correctly spelled.
Всего пекетов измерено", "Поглащение тепла реактором", "Парввый генератор" and other one-letter errors occurs often..

В целом неплохо, хотя я бы заменил многие места синонимами или перефразировал (напр. приёмщики энергии => потребители энергии).

commented

После 500-й строки очень устал. Постараюсь потихоньку совершенствовать перевод и исправлять ошибки.

commented

Thanks for the translation. Please take your time to find/fix the bugs its not a hurry we have a version to release soon anyway so its ok. (maybe i backport a feature from 1.9)

commented

Line 518: "Температора" => "Температура".
If I'm right about place where it is used (induction furnace?) this word is to long. Something 4-6 letters long should be used. I'm not sure as I've not seen IC2 Classic gui...

Yeah it has to be short.

(I've no idea what last 2 mods are doing. )

The MFSU does not output when its redstone powered or if it is redstone powered & not full

commented

Not at all. I fixed all these problems and improved translation. ru_RU.lang
I'll wait for the new version.

commented

@yaroslav4167 the newer version will have no new lang parts. I include it then now to it xD

commented

Быстро просмотрел новый перевод, я бы отредактировал эти моменты:

  • Реакторная камера (Камера реактора?)
  • Основная паровая турбина (Скорее "базовая" или просто "Паровая турбина" без определения)
  • Частотный связыватель (Определитель или передатчик частоты?)
  • Строка 361 "Обогащённый" написано с одной Н. Слово написано то через Е, то через Ё в разных местах...
  • 544 - если я помню что это, то лучше "Первооткрыватель:" или "Открыт:".
  • 619 - "Dim" это сокращение от "Dimension". Можно перевести как "Мир".
  • 633 - рудная информация (Информация о руде?)
  • 689 - "экстримальное" - "е" вместо "и"
  • 48 - Самоотвод тепла - может Самоохлаждение?
  • 843 - Требуеться - без мягкого знака
  • 847 - Запрошеная - две Н

At line 549 translation token written as "CropUnknowen". Isn't there a typing error?

commented

Также перевод пива будет совсем ужасным. Как оно используется можешь примерно глянуть здесь: http://minecraft-ru.gamepedia.com/IndustrialCraft_2/Каменная_кружка_с_пивом
Сам по себе текущий перевод уже некорректен (brew - сусло, youngster - молодое пиво, lite - светлое и так далее... сейчас из отдельных слов будут собираться вещи вроде "Очистить Суп Драконья Кровь").

С переводом здесь явно будут проблемы... Род последнего слова отличается, вместе с ним должны меняться и прилагательные, иначе будут несовпадения вроде "Чёрное драконья кровь" или "Светлая эль"... Для многих языков включая все славянские из-за родов, падежей или других путей изменения слова в зависимости от окружения нельзя так просто составлять названия как конструктор.

Types of beer can't be translated with current system into Russian and, I'm sure, many other languages where adjectives have different forms depending on object. In general, complete tokens should be translated e.g. "beerDarkAle" or "beerStrongDragonBlood"...

commented

Now I would recommend remove lines 426-450 at all from this translation as they produce meaningless result.

commented

True, needed the support of full names for drinks.
I replaced 426-450 on the the standard.
Fixed your remarks.
Link the same.

commented

ok thanks.
I will update it. But i leave this post open until the version is ready.
Also @reoseah could you type at least normal info please in english i would always like to know what you type when its here about a thing i take care of...

Also @yaroslav4167 just a question. 1.10.x is still wip but close to an end i would like to know if you want to take care of that lang file too. (So i can give it to you when we are in testing)

commented

@Speiger Of course. I can try to do the translation.

commented

@Speiger do you mean English sentences I've addressed to you are to short and not understandable, or you want everything be in English? The text in Russian contains mostly misprints, spelling mistakes and errors in the use of words due to literal translation.

I repeat this thing to be sure:
At line 549 (if it not changed) I noticed this translation token:
container.cropAnalyzer.CropUnknowen.name

I think there should be "CropUnknown", and "Unknowen" is just typo/mistake.

About beer

For kinds of beer correct translation is hard to create. Adjectives should have different ending depending on gender of noun after it. Example:

English Russian
Strong brew Крепкое сусло
Strong youngster Крепкое молодое пиво
Strong beer Крепк**ое** пиво
Strong ale Крепк**ий** эль
Strong dragonblood Крепк**ая** драконья кровь

(This literal translation of "dragonblood" is meaningless in Russian. It needs to be replaced with something like "крепкое/адское пойло" (which is of course hard to translate back to English))
Also note that in difference from English only first word starts with capital letter in Russian and many other languages. It can be fixed in Java, but not in lang-files...

One simple solution is to make all words have some gender, It may be done in Russian, but not guaranteed for other languages. Lower and upper case still can't be handled.

English Russian
brew сусло
youngster молодое пиво
beer пиво
ale выдержанное пиво
dragonblood адское пойло
-------------- ----------------
strong крепкое
lite лёгкое
dark темное
light светлое
so on ...

Other way is allowing recursive translation. For example like this:

  • Take given string and translate
I18n.translateToLocal("item.beer.twoModifiers") // result "{beer.%s} {beer.%s} Beer"
  • Place variable parts in it
String.format("{beer.%s} {beer.%s} Beer", "strong", "dark") // result "{beer.strong} {beer.dark} Beer"
  • Replace brackets and text in them with translation of that text
string.replace("{beer.strong}", I18n.translateToLocal("beer.strong")) // and so for all brackets

English lang file for it should look like this:

item.beer.twoModifiers={beer.%s} {beer.%s} Beer
 ... all other kinds of beer, ale...
beer.strong=Strong
beer.dark=Dark
... all other traits ...

Then genders can be handled like this

item.beerTwoModifiers={beer.neuter.%s} {beer.neuter.%s} пиво
item.aleTwoModifiers={beer.masculine.%s} {beer.masculine.%s} эль
beer.neuter.dark=Темное
beer.masculine.dark=Темный
... so on...

Using of upper-case letters can be added to this system too...

item.beerTwoModifiers={beer.neuter.first.%s} {beer.neuter.other.%s} пиво
beer.neuter.first.dark=Темное
beer.neuter.other.dark=темное

This way can be used to support most of languages. It's pretty complex however...

And of course, you can just translate whole string at once. I think there are around 100 combinations possible... Not very hard to translate...

commented

I'm not sure whether there is existing libraries for translation in Java... It is not hard to make if you do not attempt to support nested brackets.

commented

Also if it was unclear: in Russian and other languages not only animate things have gender.
And writing everything with upper-case letter will be really bad, there are only categories which are written this way, but beer is not one of them... It's nether astronomical, nor geographical name, nor remains of USSR love to write the highest positions and orders this way... With your way it impossible to guarantee that only first word will begin with capital letter.

commented

hmmmm so i need to make a multi case system what is builded from the lang file instead of the game?

commented

Yes, something like that... Also you can translate whole names at once and then write translation token for each possible combination, or if you will make all string lower-case except first character when Russian language is used then words from that table where everything has same gender can be used.

commented

@reoseah
1: Well i would like to join the talk and not just look at it asking me what you talk about or using google translate. (Thats why i asked you to not fully write in Russian. And if you could keep english as main lang (nothing against if something is in russian but i would like to understand at least the context))

2: If beer was not only a Item. Then yes i should change it but that what i did is in total easier because all these item.beerSolidRatio0.name is just a component. And i have like 4-5 Of them.
Here is a Code Example of 1.7.10:

return StatCollector.translateToLocal("item.beerSolidRatio"+getSolidRatioOfBeerValue(meta)+".name") + StatCollector.translateToLocal("item.beerHopsRatio"+getHopsRatioOfBeerValue(meta)+".name") + StatCollector.translateToLocal("item.beerTimeRatio"+getTimeRatioOfBeerValue(meta)+".name");

I do not tell its the most efficient way to do it but it is actually working and i allow to support types to.
Else i would have to do a xTimes more cases...

commented

@Speiger
I think you've not understand what I meant...

If needed, I can create with such signature:

public static String translateRecusiveSet(String token, String... args);

that can be called with arguments like this:

translateRecursiveSet("item.beer", getSolidRatioOfBeerValue(meta), getHopsRatioOfBeerValue(meta), getTimeRatioOfBeerValue(meta));

and will allow creating correct files for practically any human language... It will nearly have same lang files for English as naive translating each word except first token, which translation is used as rule to compose localized name.

commented

version is out