Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XEEN RU Localization #3150

Closed
wants to merge 41 commits into from
Closed

XEEN RU Localization #3150

wants to merge 41 commits into from

Conversation

@Ardash
Copy link

@Ardash Ardash commented Jul 13, 2021

I've added support for Russian version of Clouds of Xeen

Edit: There is issue in code analysis. I've fixed it.

@sev-

This comment has been minimized.

Вместо дублирования всей это шняги, почему бы не засунуть нужные строки в переменные?

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Mar 18, 2021

Вместо дублирования всей это шняги, почему бы не засунуть нужные строки в переменные?

Тут проблема в том, что в оригинале идет хардкод day и к нему передается %c char 's', а у нас надо передать %s строку "день"/"дня"/"дней". Поэтому, из-за разных типов параметра, пришлось продублировать.

This comment has been minimized.

Copy link

@sev- sev- replied Mar 18, 2021

Так всё в твоих руках: выкинь хардкод из английского, то есть, поменяй "day%c" на "%s". Тогда сможешь сделать getDayPlurals, внутри которой проверяй язык и для англ возвращай "day/days".

Только комментарий оставь, что поменял

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Mar 18, 2021

Так всё в твоих руках: выкинь хардкод из английского, то есть, поменяй "day%c" на "%s". Тогда сможешь сделать getDayPlurals, внутри которой проверяй язык и для англ возвращай "day/days".

Только комментарий оставь, что поменял

Я думал об этом, но меня остановило вот что:
Сейчас движок можно собирать без использования ccs-файла. Если я поменяю, то получится, что в версии без ccs я в параметр %c передам const сhar*, что приведет к вылету.

This comment has been minimized.

Copy link

@sev- sev- replied Mar 18, 2021

Я немножко не понял, как это "без ccs". Движку этот файл нужен по-любому.

Так вот. строка 42 create_xeen.cpp, увеличиваешь номер версии на единичку. И, соответственно, меняешь в engines/xeen/files.cpp на строке 275.

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Mar 18, 2021

Я немножко не понял, как это "без ccs". Движку этот файл нужен по-любому.

Так вот. строка 42 create_xeen.cpp, увеличиваешь номер версии на единичку. И, соответственно, меняешь в engines/xeen/files.cpp на строке 275.

Я оказался не прав. Когда только начинал изучать код, увидел в rc-файле #if PLUGIN_ENABLED_STATIC(XEEN) и подумал, что можно собрать без ccs (чтобы например выдернуть строки из exe/dat -файла).
Если мы всегда собираемся с ccs - это полностью меняет дело.

@sev-

This comment has been minimized.

Я бы назвал getPlurals(), и внутри делал проверку на язык.

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Mar 18, 2021

Я бы назвал getPlurals(), и внутри делал проверку на язык.

Можно и так. getRuDayPlurals

@sev-

This comment has been minimized.

Copy link

@sev- sev- commented on engines/xeen/font.cpp in 1cf6d6c Mar 18, 2021

все эти переменные лучше засунуть в класс FontSurface, ты же только внутри него делаешь к ним доступ.

Ну, и назвать соответствующе. не offset_fntEn, а _offsetFntEn.

Про именование тут: https://wiki.scummvm.org/index.php?title=Code_Formatting_Conventions#Naming

@sev-

This comment has been minimized.

Copy link

@sev- sev- commented on engines/xeen/font.cpp in 1cf6d6c Mar 18, 2021

пробел затесался случайно

@sev-

This comment has been minimized.

Copy link

@sev- sev- commented on devtools/create_xeen/constants.cpp in 73a8839 Mar 18, 2021

чтобы всё это не переименовывать для одновременного присутствия рус/англ, засунь в два разных namespace.

@sev-

This comment has been minimized.

Copy link

@sev- sev- commented on devtools/create_xeen/constants.cpp in 96dbad8 Mar 19, 2021

Лучше разбей на два файла, просто перенеси содержимое как есть.

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Mar 19, 2021

Да. Это еще не окончательный вариант. Просто залил рабочий вариант, чтобы не потерять большой объем проделанной работы.

Split language constants
Further sharpening ru translation
@sev-

This comment has been minimized.

Copy link

@sev- sev- commented on devtools/create_xeen/ru_constants.h in f9de073 Mar 19, 2021

Про кодировки тебе понятно, что я там на форме понаписал или нужна помощь?

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Mar 19, 2021

Это я, похоже, в 1251 вместо utf-8 залил. Поправлю.

This comment has been minimized.

Copy link

@sev- sev- replied Mar 19, 2021

Не, я не это имел в виду. Нужно текст в строке перекинуть в hex (\xNN), а в комменте после каждой строки в UTF8 написать оригинал.

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Mar 19, 2021

Ну сейчас почти так и есть, только коммент перед функцией

This comment has been minimized.

Copy link

@sev- sev- replied Mar 20, 2021

Не понимаю. Я имею в виду записать вот так:

"c\f35\xc8\x87\xde....\n" //  "c\f35Идея и руководство проектом:\n"
@sev-

This comment has been minimized.

Copy link

@sev- sev- commented on engines/xeen/party.h in e955f8c Apr 8, 2021

const char *getFoundForm(const Character &c);, и ниже тоже. Пробел перед оператором разыменования.

@sev-

This comment has been minimized.

Copy link

@sev- sev- commented on engines/xeen/party.cpp in e955f8c Apr 17, 2021

у нас оператор ссылки лепится к переменной, а не к типу, то есть const char *Party::get...

@sev-

This comment has been minimized.

ой, а нельзя для русского языка сделать так, чтобы и русские и английские клавиши работали одновременно?

This comment has been minimized.

Copy link

@sev- sev- replied Apr 17, 2021

Да, вижу ниже, что ты именно так и сделал, хорошо.

Пишу тут про другую проблему -- в комментарии не UTF-8, надо бы исправить. Получилась буква "Â"

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Apr 18, 2021

Нет, не получается. Я сначала пытался совместить, но дальше много пересечений. Плюс тут кнопки реализованы так, что нажатие мышкой на кнопку порождает нажатие буквы (последний параметр у addButton)

@sev-

This comment has been minimized.

До меня только дошло, что меня цепляло. Все-все сравнения языка лучше писать как

if (g_vm->getLanguage() != Common::RU_RUS)

вместо постоянного выковыривания из ConfMan

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Apr 18, 2021

Ок. Я как раз это и пытался найти

@sev-

This comment has been minimized.

Если это fall through, то нужно добавить коммент:

// fall through

иначе все современные компиляторы будут ругаться

@sev-

This comment has been minimized.

Походу в комментарии это не UTF-8 получился

@sev-

This comment has been minimized.

Та же беда с комментариями

@sev-

This comment has been minimized.

Чего-то меня эта копипаста смущает. Не проще ли сделать некую табличку маппинга для _buttonValue в зависимости от языка, а саму логику оставить как есть (ну, или с парой проверок так, где нужно), а не копировать целиком 200 строчек кода?

Ardash added 3 commits May 28, 2021
Hotkeys changed in items dialogs.
Hotkeys changed in party, quests, quick_fight, spells dialogs and bank location.
Hotkeys changed in locations, CoX Menu.
@sev-

This comment has been minimized.

Copy link

@sev- sev- commented on a9ea383 Jul 12, 2021

Ну что, давай делать Pull Request?

This comment has been minimized.

Copy link
Owner Author

@Ardash Ardash replied Jul 12, 2021

Ну что, давай делать Pull Request?

Сегодня, чуть позже, залью небольшой фикс для текста, вылезающего за границы окна, в тренировке и оформлю Pull Request

This comment has been minimized.

Copy link

@sev- sev- replied Jul 12, 2021

Я закрыл Pull request.

Пожалуйста, сделай новую ветку, чтобы эти комменты на русском не появились там.

Во-вторых, нужно сделать rebase на текущий master, потому что патч уже не прикладывается.

Ну, и без ссылок на варезные сайты, пожалуйста.

This comment has been minimized.

Copy link

@sev- sev- replied Jul 12, 2021

Напиши плиз http://www.questomania.ru/

Ardash added 21 commits Jul 12, 2021
Hotkeys changed in locations, CoX Menu.
XEEN: RU_T Margin fix
XEEN: RU_T Working on 8-bit font
XEEN: RU_T Move plural forms to constants
Further sharpening ru translation
Added 'Born' gender form and plural form for food
change hotkeys in dialogs_create_char, dialogs_difficulty
Hotkeys changed in char_info, control_panel, create_char, difficulty dialogs.
Hotkeys changed in items dialogs.
Hotkeys changed in party, quests, quick_fight, spells dialogs and bank location.
Hotkeys changed in locations, CoX Menu.
XEEN: RU_T Margin fix
@sev-
Copy link
Member

@sev- sev- commented Jul 15, 2021

This must be rebased, so there is no merge commit. Also, it would be nice if the whole thing is moved to a separate branch, so the temporary comments in Russian are not visible to the team.

@sev-
Copy link
Member

@sev- sev- commented Jul 15, 2021

Also, it must be rebased because the early commits do not conform with our commit log guidelines, e.g. they're lacking the engine prefix and there is even a comment in Russian.

@Ardash Ardash closed this Jul 19, 2021
@Ardash Ardash deleted the Ardash:XEEN_RU branch Jul 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants