Open Qwertyus3D opened 1 year ago
Да думаю можно будет сделать возможность выбирать язык, пока оставлю открытым, и если когда-то будет свободное время займусь
Займусь этим когда окончательно отвяжу редактор от 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 - это мало кто поймёт, о чём это.
Тем более, если текстуры находятся в WAD, какой же это тогда Internal? Это что ни на есть External.
@Qwertyus3D файл скачаю и проверю позже или можешь через pull request сделать
Я не умею пользоваться pull request. Заглянул туда, вижу там только кнопку нового реквеста, но ни тему, ни другие опции выбрать не предлагают. Или это как-то потом делается?
Перевод готов, но если грузить через pull request, хотелось бы понять, как это правильно сделать.
@Qwertyus3D файл скачаю и проверю позже или можешь через pull request сделать
Я не умею пользоваться pull request. Заглянул туда, вижу там только кнопку нового реквеста, но ни тему, ни другие опции выбрать не предлагают. Или это как-то потом делается?
Перевод готов, но если грузить через pull request, хотелось бы понять, как это правильно сделать.
ну просто что бы осталось в истории)
По идее нужно выбрать файл language_ru.ini в репозитории этом и нажать редактировать, далее там предложит как это правильно сделать.
я сам толком не особо разбираюсь в github, но хуже точно не сделаешь))))
Ну, я нажал Редактировать, мне предложили форкнуть. Я согласился, открылась правка, я выделил весь текст целиком и вставил свой. Потом нажал создать реквест. Вроде что-то получилось :)
Вот на всякий случай файлом. language_ru.zip
Там потерялись несколько строчек из того language_ru, который я делал. Одна с переводом и шесть пока не используемых, судя по всему.
LANG_0427 = ent_context LANG_0428 = empty_context LANG_0429 = face_context
LANG_1066 = ent_context LANG_1067 = empty_context LANG_1068 = face_context
LANG_1073 = Вставить
Вроде бы все нормально с переводом, а когда появится время остальное сам уже доделаю то что не попало в Lang файлы.
Ну, я бы предложил доделать вывод в language(_ru).ini того текста, что относится к интерфейсу (есть ещё, что сделать), а всякие там сообщения лога и дебага можно на потом оставить. Я как раз готовил отчёт со скринами перед этим (ещё до того, как доделал перевод). В частности, вот что пропущено: В инфе о программе две ссылки на исходный гитхаб.
Недопереведён виджет лимитов, левый столбец в главной вкладке и заголовки в подвкладках. Не переведены всплывающие подсказки о типах браш-моделей, которые нельзя скейлить. Для undo/redo нет перевода.
@Qwertyus3D пока добавил отображение подсказок для choices, и поддержку устаревших комментариев (в jack используется разделитель ':' а в sven coop например комментарии обычные '//') парсер у меня и так работает на "эфире" честном слове, так что наверное ничего страшного не случилось из-за того что еще больше хаков добавил (тупо меняет // на :: комментарии, и это заработало).
В Свен Кооп комментарии сделаны не для редактора, видимо, а с расчётом, что их просто кто-то прочтёт, просматривая FGD.
@Qwertyus3D ну ладно тогда теперь смогут прочитать просматривая keyvalue editor ))
В переводе есть неточности. Памятью на отмену обычно называют размер выделенной физической памяти, а не количество операций на отмену. Undo Levels лучше перевести как "Шаги отмены".
@Psycrow101 Тут вопрос не в дословности перевода, а чтоб отражало суть. Плюс чтоб влезал текст, т. к. кое-где с этим проблемы. Конкретно "Шаги отмены" - ну, можно и так перевести. Там просто всплывающей подсказки нету, можно было бы в неё впихнуть длинное объяснение.
Местами я постарался на русском дать пояснение более детальное, чем было на английском, если была такая возможность. И кое-где в английской версии есть опечатки, так что её тоже можно доработать :) . Ну и русский вариант ещё можно шлифовать, я сам взглядом натыкаюсь иногда на что-то, что можно изменить.
А что делать, чтобы перевести программу? Будет какой-то внешний редактируемый файл?