newbspguy
newbspguy copied to clipboard
Русификация?
А что делать, чтобы перевести программу? Будет какой-то внешний редактируемый файл?
Да думаю можно будет сделать возможность выбирать язык, пока оставлю открытым, и если когда-то будет свободное время займусь
Займусь этим когда окончательно отвяжу редактор от Sven Coop игры, все в настройки вынесу, затем перевод на другие языки
Думаю на днях уже буду добавлять поддержку других языков, пока размышляю как все сделать быстро и безболезненно:)
Хорошо!
Сейчас подключу нормальный INI парсер, а не то что сейчас используется, потом можно будет и языковой файл делать.
Я, наверно, могу перевести, снять часть нагрузки :)
@Qwertyus3D добавил выбор языка в последней сборке
Ищет файлы language_[LANG].ini в папке с игрой. (В нижнем регистре)
То есть если есть файл language_ru.ini то добавит язык RU и будет использовать его.
Ну, пункт меню Файл переведён, это роскошно :D
@Qwertyus3D я не так написал, ищет файлы в папке с конфигом, и в папке с программой.
Но щас это один и тот же путь так что можно будет убрать один из них в будущем
Ну, пункт меню Файл переведён, это роскошно :D
Да это была проба пера) в другой раз появится настроение переведу еще пару пунктов меню)))))
У меня после подключения русифицированного файла полетели настройки расположения виджетов. Ну и перевод, вижу, что не шибко точный.
@Qwertyus3D ну да я боту Codeium скормил файл что бы он его перевел) а почему расположение виджетов полетело хз, возможно разные языки сохраняются в конфиге imgui, я тогда вообще ничего с этим поделать не могу.
Ну тут очевидно, что в imgui.ini сохраняется расположение окна вместе с именем окна, если имя изменилось, он его данные новой строчкой сохраняет, по новому имени, а не по служебному индексу названия окна.
В общем, я сделал себе нормальный перевод, не механический. Пока ещё не совсем полный (пропустил всякие служебные сообщения). Вижу, в Настройках некоторые пункты не попали в переводимое, ну и в других виджетах тоже местами нельзя заголовки всякие перевести.
Есть ещё предложение сократить длину панелей с цифровыми значениями в окнах Настроек: General / Limits / Rendering / Controls. Они там занимают непропорционально большое место, из-за чего текстовые комментарии к ним не умещаются нормально. По типу этого:
Ещё есть проблема с окнами виджетов редактора лайтмап и слияния карт - они не масштабируются, как остальные.
А русификацией готов поделиться, разве что немного доперевести нужно.
Не уверен, что всё правильно перевёл, но точно лучше машинного. Там просто есть некие технические термины, которые хрен пойми, что означают, так что их переводил по логике, а не из знания. Хотя, если подумать, то всякие технические сообщения, возможно, даже не стоило переводить, т. к. это дебаг, и, возможно, его лучше стоило бы оставить без перевода, чтобы лог и ошибки были на английском. А так старался использовать устоявшиеся термины, и чтобы текст в менюшках не сильно расползался, т. к. английские слова часто короче. language_ru.zip
ну дебаг сообщения и бот неплохо перевел вроде бы)
есть еще места в коде где используется английский его автоматический скрипт мой не смог достать, по этому буду вручную доставать постепенно в lang файлы)
@Qwertyus3D файл скачаю и проверю позже или можешь через pull request сделать
В принципе, подумал, что Трансформация, наверно, стоило бы перевести как Манипуляция. Более точно по смыслу.
Ещё не знаю, что такое в дебаге "Press me to decal" - подсказки нет, функция непонятно, что делает. И про своп 2-х моделей непонятно - какие-такие модели, что там с ними произойдёт? "Показать крестовину перемещения" - не уверен, что правильно понял "Show DragAxes".
Press me to decal
ну это я декали хотел добавить но так и не добавил, мне нужно было найти куда их ставить и рисовать в нужных координатах их, я уже понял примерно как сделать но это позже
Ещё не знаю, что такое в дебаге "Press me to decal" - подсказки нет, функция непонятно, что делает. И про своп 2-х моделей непонятно - какие-такие модели, что там с ними произойдёт? "Показать крестовину перемещения" - не уверен, что правильно понял "Show DragAxes".
Ну две модели видно просто меняются местами, то есть сущность 1 была *30 а 2 *40, номера останутся те же, но модели поменяются местами. Это я не помню для чего делал, вроде как для CRC подмены что бы можно было модели новые добавлять на карту или хз сам толком не помню.
на счет Show DragAxes не знаю как перевести правильно что бы покороче было, бот выдает следующие варианты:
"Отобразить оси перемещения" "Показать оси перемещения" "Показ осей перемещения" "Показывать перемещение" "Отображение перемещений"
Ну, тут я правильно понял, только почему-то мне показалось, что эта галка не работает. В принципе, "крестовина" нормально подходит по смыслу, а то под осями можно что угодно иметь в виду. Сейчас повторно прохожу по файлу, пытаюсь подправить перевод на более точный по смыслу.
Вообще подумал, что в Справку неплохо было бы добавить раздел Термины, чтобы дать пояснение по используемой терминологии, всяких специфических словечек. Может, даже отдельный файл мини-словарика сделать, чтоб не перегружать файл интерфейса. Больше, конечно, под локализованный вариант пригодилось бы.
файл перегрузить нельзя, всмысле на производительность влиять не будет оно в хэштаблицу считанный из ini файла перевод записывает, и оттуда берет. Вроде как быстро т.к я не ощутил разиницу в ФПС после добавления lang файлов.
для удобства чтения кода можно будет в будущем get_localized_string(LANG_ID) заменить на get_localized_string("LANG_NAME"), но для пользователей это особого смысла не имеет так что спешить не буду с этим)
Если хочешь загрузи свой файл через pull request так будет понятнее
и "Плохая отсылка" как-то не вяжется, можно писать ссылка или смещение или что-то типа того , хз
Или что-то типа "ссылка на плохую текстуру в ноде" и т.п)
ну или часть можно не переводить вообще т.к я думаю английские буквы все умеют читать.
LANG_0110 = Ошибка ссылки на фейс в marksurf {}: {} / {}\n
LANG_0111 = Ошибка ссылки на грань в surfedge {}: {} / {}\n
LANG_0112 = Ошибка ссылки на текстуру в textureinfo {}: {} / {}\n
LANG_0113 = Ошибка ссылки на плоскость в face {}: {} / {}\n
ну или же
LANG_0110 = Неправильная ссылка на фейс в marksurf {}: {} / {}\n
LANG_0111 = Неправильная ссылка на грань в surfedge {}: {} / {}\n
LANG_0112 = Неправильная ссылка на текстуру в textureinfo {}: {} / {}\n
LANG_0113 = Неправильная ссылка на плоскость в face {}: {} / {}\n
Написал боту LangChain (codeium) "попробуй слэнг моделлирования" он выдал:
LANG_0111 = Проблема с ребром в surfedge {}: {} / {}\n
LANG_0112 = Проблема с текстурой в textureinfo {}: {} / {}\n
LANG_0113 = Проблема с плоскостью в face {}: {} / {}\n```
))))
Я ещё дорабатываю перевод, сверяюсь с машинным для верности.
@Qwertyus3D я переводил через Codeium бота он слегка туповат, но им было быстрее всего в VSCode выделял фрагментами файл и вводил команду перевода) Видно можно было бы ему задать больше параметров, типа делай текст короче, используй слэнг моделирования и т.п Но я не проверял)
Лень было вручную переводить)))
Не пойму, почему в браузере текстур есть пункты Internal и Internal names, в чём разница?
Я понял, что нет, но зачем 2 пункта, они не одно и то же означают?
Тогда это какое-то странное название для пунктов. Internal и Internal names. Сбивает с толку. Как я представляю, нужен просто общий список задействованных текстур, что-то типа Used textures. Далее, при наличии - Embedded textures, то бишь - вшитые в карту, ну и за ними список всех подключенных вадов. И там уже можно какую-то галочку или другую отметку на текстуре, если она использована на карте. Вверх такие текстуры поднять, к примеру. А вот это - Internal и Internal names - это мало кто поймёт, о чём это.