Облегчатор переводов локализаций Clausewitz Engine (major version update) - Моды и моддинг - Strategium.ru Перейти к содержимому

Облегчатор переводов локализаций Clausewitz Engine (major version update)

Рекомендованные сообщения

flashader
Спойлер

Сижу себе, никого не трогаю, примус починяю размышляю, как Китай из долгового кризиса вывести. Гля, в ленте мемасики по TNO. Дай, думаю, гляну что за мод, концепция то интересная..

 

[One etertiny later]

 

То, что у ветки Язова нет продолжения, я ещё с болью, но стерпел (я в Омске родился, нам положено). Но то, что фокусы Шукшина (которые были заявлены, как наиболее далёкое продолжение сюжета за РФ) так и не перевели - воспринял в качестве личного вызова. Мол, что я, моды раньше не переводил? Да мы сейчас кааак..

 

А там оказалось почти девяносто тысяч символов одних только фокусов. А я ленивый. А что делает масштабная модель программиста, когда ей лень? Неправильно! Она гуглит.

Но, как оказалось снова, в интернете практически нет инструментария для моддеров по клаузевицу. В такие моменты во мне обычно начинает играть профессиональная деформация и я пишу скрипт. Например - Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

 

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

    

Спойлер

Q: Что это?
A: Это небольшой помощник начинающего переводчика [модов для] игр Clauzewitz Engine.

Q: Зачем он? Я и с блокнотом справляюсь.
A: Он упрощает многие рутинные действия - тот же копипаст в окно онлайн-переводчика и обратно, создание файлов перевода и прочие мелочи.

Q: Что ещё полезного умеет?
A: Например, cледит за тем, чтобы в файлах не было типичных ошибок, роняющих игру. Реализует WYSIWYG ("Что видишь - то и получаешь") для некоторых символов форматирования. Поддерживает массовый перевод всех ключей файла (пять мегабайт переводит примерно за пять минут). Ну и помогает легко "подправлять" перевод получившихся файлах.

Q: Так он может прямо всё-всё одной кнопкой перевести?
A: Конечно нет. Машина никогда не переведёт лучше человека, да и ошибки совершает слишком глупые. Поэтому каждую переведённую строку потом полезно отсматривать глазами и исправлять по-человечески за машиной. Я стараюсь развивать эту программу, чтобы было максимально удобно.

Q: Так она ещё и развивается?
A: Планы, как всегда, наполеоновские. Ко второй версии собираюсь нарастить интерфейс: например, для совсем уже массового перевода целыми папками. Ещё хочу добавить отображение ошибок "незакрытых тегов" (программа обо всех них уже знает, просто отображать пока не умеет). Ещё будет полезно оставлять пометки к некоторым строкам/файлам (например - "переведено автоматически", "перепроверить" etc). Не помешает добавить поддержку второй Виктории, и отполировать функционал перевода EU4 и CK2 (он есть, но в массовый релиз пока не пошёл, слишком кривой и косой). А если мне совсем будет скучно: педаль в пол и полный WISYWIG, позволяющий раскрашивать строки прямо в самой программе.


Q: А дай исходники посмотреть?
A: Когда в релиз выйдет вторая версия программы - исходники первой будут открыты для всех.


Q: А я вот хотел ещё спросить..
A: @flashader почти на любой платформе - постараюсь ответить.

Q: Какое пьёшь?
A: Светлое, фильтрованное.

 

По идее, софт должен работать с локализациями любой из Clausewitz игр - Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. у них довольно давно не менялся (и это не YAML, как многие думают). Проверял на тегах CK3, VIC3, HOI4, но мог что-то упустить. Дорогу осилит мотивированный.

 

Спойлер

1) Запускаем Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

2) Кнопкой `Load...` выбираем *_l_english.yml для перевода

2.5) Ждём парсинга

3) Переводим построчно, либо все строки одним прогоном

3.5) Ждём перевода

4) Материм машинный перевод

5) Исправляем содержание русских строк (снизу или справа - в зависимости от интерфейса) с ПРОМПТА на литературный

6) Кнопкой `Save...` создаём новый переведённый файл *_l_russian.yml рядом с изначально выбранным в пункте 2.

7) Voila, вы великолепны!

 

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

 

Шукшина я этим инструментом уже перевёл и мне без внешнего запроса откровенно лень придумывать что-то кроме вышеописанных планов. Потому - публикую здесь. Пожалуйста, не стесняйтесь давать любой фидбек.

 

Всем §! (Кто в теме)

Лойс, пип

 

P.S.: Чтобы было удобнее следить за разработкой проекта, посильно участвовать в ней советами и тестами, и даже (в основном) - попинывать меня на мотивацию продолжать - сделал Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .

P.P.S.: Для срочной связи - телега, твиттер и дискорд. Ник нигде не меняется. Ну или пишите в Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .

 

Спойлер

ффффф.png

 

Изменено пользователем flashader
Links updated
Ссылка на комментарий

Закреплённые сообщения
Maraniro

@flashaderПривет, тестил вчера твою прогу. После перевода нажимал сохранить, висело окошко и все.

Ссылка на комментарий

flashader
9 часов назад, Maraniro сказал:

@flashaderПривет, тестил вчера твою прогу. После перевода нажимал сохранить, висело окошко и все.

Спасибо что приложил в личке файл: у парадоксов вместо ямла крайне специфический и, насколько я понимаю, не до конца стандартизованный формат. Приходится каждый крайний случай рассматривать отдельно. В пользовательских файлах может быть много очень интересных тегов, которые я пока не обрабатываю в явном виде, поэтому подобный пример очень полезен.

В конкретно твоём файле ошибка: дублирующийся ключ перевода (скинул в личке - который именно).  Я не знаю, как её обработают в Clausewitz, и обработается ли такой файл вообще, но по хорошему, подобный файл должен вызывать ошибку. Думаю между двумя вариантами решения: выводить ошибку пользователю (в том месте, где у тебя сейчас висит программа, пока не может обработать файл), либо писать в выходной файл "как есть", снимая с себя ответственность за дальнейшее. Или оба этих варианта одновременно.

Постараюсь сегодня вечером найти время на исправление.

Изменено пользователем flashader
typo
Ссылка на комментарий

flashader

Обновил архив с программой.

 

Пока просто пропускаю описанную ранее ошибку дублирующегося ключа: её ещё некуда показывать. Да и в будущем планирую в то же окно записывать ошибки "незакрытых тегов", а с ними пока не до конца решил вопрос: оказывается как минимум в CK3 движок позволяет вложенные теги, что при парсинге.. Неудобно.

 

Из незаметных мелочей: переводчик теперь не портит спецсимволы кавычек и не ломается из-за использования решётки (`#`).

 

А ещё архив теперь весит почти в два раза меньше - всего 381KB ^^

Изменено пользователем flashader
Ссылка на комментарий

flashader

Выпустил настоящую релизную версию: Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .

Там же чейнджлог и простенькая ридмишка.

Из основных фишек: наконец-то реализовал парсинг тегов и определение косяков в них (незакрытость, лишние пробелы и прочее). А ещё по просьбам трудящихся добавил поддержку огромных файлов (проверял на 5 МБ) и действительно массовый автоматический перевод строк (около пяти минут на пятнадцать тысяч строк).

Ссылка на комментарий

flashader

Обновил до Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .
Поступали жалобы, что при попытке перевода ОГРОМНОГО количества текста программа иногда встаёт колом или даже крашится: исправил, теперь просто не переводит)
Если вдруг сервак выступает и отказывается подчиняться человеческому гению - строка откладывается в массив "непереведённых". После окончания массового перевода - выводится специальное окно, показывающее, сколько строк не было переведено c предложением попробовать ещё раз и/или сходить на.. страницу ввода капчи. При повторном нажатии "перевести всё" будут обработаны только те строки, что ещё не были переведены.

Кроме того, лютое спасибо @elmorte за то, что подогнал кучу edge cases с редкими ошибками перевода и парсинга тегов. Например, до этого апдейта я никак не обрабатывал тег иконки (£). Исправил и эти косяки тоже.

Изменено пользователем flashader
Ссылка на комментарий

Killer56525

Возможно ли будет потом добавить возможность подрубать DeepL?

Ссылка на комментарий

flashader
12 часа назад, Killer56525 сказал:

Возможно ли будет потом добавить возможность подрубать DeepL?

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

Изменено пользователем flashader
Вставил ссылку
Ссылка на комментарий

Kassatka
В 27.02.2023 в 08:34, flashader сказал:

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

Спасибо за ссылку на Api DeepL. Возможно мог бы врубить в какую-то из своих программ-помощников для машинного перевода. DeepL даёт на бесплатной основе для зарегистрированного аккаунта 500 000 в месяц. Не шибко много, но тем не менее, если мерять порциями по 5000 символов, которые обрабатывает за раз веб-сайт переводчика, то это целых 100 таких больших страниц текста. Было бы не лишним. Вот только даже для получения бесплатного аккаунта все равно нужна банковская карточка из стран ЕС, Северной Америки, Японии или Сингапура. Даже Южная Корея и Тайвань в пролёте. А у меня, понятное дело, нет такой карточки, как и близких друзей или родственников на Западе, чтобы зарегистрировали бесплатный аккаунт на меня со своей карточки. Гугл-переводчик даёт намного хуже качество перевода чем DeepL. Остается для перевода использовать только сайт DeepL без логина и менять браузеры в случае превышения суточного лимита перевода. Какая-нибудь из моих программ-помощников по переводу формирует порцию удобоваримого текста для перевода в пределах 5000 символов, помещает в буфер обмена. Я иду на сайт DeepL, вставляю этот текст из буфера обмена. DeepL сразу переводит. Прямо здесь на сайте DeepL лучше провести вычитку, при необходимости выбирая мышкой вариант перевода фразы из предлагаемых, там где нельзя выбрать мышкой, полностью редактирую с клавиатуры. Затем копирую весь перевод в буфер, вставляю в моей программе-помощнице, программа расшифровывает и интегрирует в итоговый файл локализации. Дальше можно получить следующую порцию в пределах 5000 символов для перевода. Также могу добавлять результат перевода с сайта в текстовый файл, а затем когда будут переведены все порции по 5000 символов, то уже скармливаю моей программе весь перевод от DeepL полностью, чтобы расшифровать и сформировать итоговый файл локализации. Уже полностью вычитанный без ошибок. Примерно так в последнее время занимаюсь переводом игр ParaWorld и Knights of Honor 2: Sovereign. Если захочу переводить для Crusader Kings 2/3 что-нибудь, то буду тоже по такому принципу, только формат файла локализации другой.

 

За данную программу @flashader  большое спасибо, если нужно быстро перевести без вычитки какой-нибудь мод, чтобы самому поиграть, то программа весьма полезна, хоть и медленная. Что же касается качественного перевода с вычиткой, то скорее всего придется писать свой инструмент с нуля на Delphi, когда в этом возникнет необходимость.

Изменено пользователем Kassatka
дополнил + исправил ошибку
Ссылка на комментарий

Kassatka

Кажись, я таки залогинился как Free-пользователь DeepL без банковской карточки с Польши/Эстонии... Значит всё-таки можно использовать прямые обращения к DeepL из своей программы без копипаста в окно браузера в пределах 500 000 символов в месяц.

Тем не менее это мизер 500 килобайт в месяц в то время как я, обходя суточные лимиты поочередной работой с разных браузеров, перевел на DeepL 2 мегабайта за дня три.

А за один мегабайт предлагают платить 20 евро.:wall:

Изменено пользователем Kassatka
дополнил
Ссылка на комментарий

flashader

Обновил до Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .

Добавил возможность загружать целевой файл и сохранять - исходный. Полезно в случаях перевода больших файлов: сохранив неполный целевой файл можно загрузить его на следующий день не боясь, что переведённые строки пропадут.
При загрузке второго файла (целевого после исходного или исходного после целевого) загружаемый файл проверяется на несоответствие ключей. Полезно, когда вторым загружается неверный файл - несоответствующий загруженному первым.

Спойлер

А ещё перелопатил почти весь код логики и моделей данных (1065 additions and 422 deletions), чтобы всё это взлетело и можно было начинать вторую версию. Сказать, что заколебался - ничего не сказать.


Это последний релиз первой версии программы. Исключение возможно лишь для исправления критических уязвимостей. Вторая версия будет выпускаться уже под другой лицензией (я пока не решил, под какой).

Кроме того, когда вторая версия релизнется, планирую открыть исходники первой.

 

Enjoy.

Ссылка на комментарий

flashader

Выложил хотфикс Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.  двух критических уязвимостей:

  • Вебтранслятор научился новым трюкам порчи строк. Добавил новые способы обхода такого поведения.
  • При загрузке файла с другим набором ключей теперь есть выбор - добавлять их к существующим, стирать старые, или выбрать для загрузки другой файл.

Вторая версия в активной разработке. Уже почти закончил с интерфейсом. Линк на вторую версию изменится: буду выкладывать не на яндекс-диск (который теперь хочет за это слишком много денег), а на нормальный хостинг. В крайнем случае - сюда.

   

Ссылка на комментарий

flashader

Выложил апдейт Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. . В нём нет нового функционала. Зато:

  • Архив теперь весит ещё почти в два раза меньше (~200KB)
  • "Уронил" минимально поддерживаемую версию Adobe AIR до 2.6. Это значит у софтинки теперь есть поддержка не только винды и мака - но даже линукса!

Зачем? Сам не знаю, если честно. Наверное, потому что могу?
 

P.S.: Да, да, знаю, вторая версия с крутецким интерфейсом. Она в работе, честно-честно. Сейчас стою посередине реализации загрузки трансляций сразу папками.

Ссылка на комментарий

flashader

Это свершилось. Я выпустил в бету Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.  своей Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .

Когда она дойдёт до релиза - я обязательно опубликую исходники первой версии (которая обсуждается в этом топике).

 

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

 

Enjoy!

 

P.S.: Наконец-то можно взять перерыв на выспаться.
P.P.S.: Прошу любого мимопробегающего модератора закрепить это сообщение наверху темы.

Изменено пользователем flashader
Ссылка на комментарий

Присоединиться к обсуждению

Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже! Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Ответы 13
  • Создано
  • Последний ответ
  • Просмотры 1826

Лучшие авторы в этой теме

Популярные сообщения

flashader

У меня вышел Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .        По идее, софт должен работать с локализациями любой из Clausewitz игр - Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. fce14e03b4d0

flashader

Спасибо что приложил в личке файл: у парадоксов вместо ямла крайне специфический и, насколько я понимаю, не до конца стандартизованный формат. Приходится каждый крайний случай рассматривать отдельно.

flashader

Обновил архив с программой.   Пока просто пропускаю описанную ранее ошибку дублирующегося ключа: её ещё некуда показывать. Да и в будущем планирую в то же окно записывать ошибки "незакрытых

Maraniro

@flashaderПривет, тестил вчера твою прогу. После перевода нажимал сохранить, висело окошко и все.

flashader

Выпустил настоящую релизную версию: Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. . Там же чейнджлог и простенькая ридмишка. Из основных фишек: наконец-то реализовал парсинг тегов и определение косяков в

flashader

Обновил до Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. . Поступали жалобы, что при попытке перевода ОГРОМНОГО количества текста программа иногда встаёт колом или даже крашится: исправил, теперь просто не перев

Killer56525

Возможно ли будет потом добавить возможность подрубать DeepL?

flashader

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

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...