Steam

Steam

116 ratings
Автоматичне оновлення українізаторів
By Godless and 1 collaborators
Файли та команди для зручного, автоматичного оновлення волонтерських перекладів з Google Drive чи GitHub
2
3
   
Award
Favorite
Favorited
Unfavorite
Передмова
З часом з'являється дедалі більше перекладів різних ігор. Але у випадку з неофіційними, волонтерськими проєктами є значний недолік: це регулярні оновлення файлів. Кожна свіжа версія / додавання нових рядків потребує ручного завантаження файлів з гугл диска чи GitHub. Потім доводиться відкривати теку з грою, розархівовувати, переносити відповідний файл, замінювати стару версію... і так по колу. Цей посібник створено задля максимального зменшення подібної мороки.
Є 2 варіанти:
1 - скористатися моєю програмою
2 - створити bat файл і поставити авто оновлення
Який вибрати варіант вирішувати вам
UpdAter
Я представляю вам свою програму, яка дозволить легко та швидко оновлювати безліч перекладів в одному місці із зручним інтерфейсом та зрозумілими функціями.

Посилання на GitHub[github.com] для завантаження. Почитайте Readme, щоб дізнатися, звідки завантажити файли, як правильно додати переклад і що з ним робити потім. Усі питання можете задавати сюди або у відповідні розділи на GitHub.
Створення .bat файлу
Всі оновлення українізаторів, побудованих на елементарній заміні локалізаційних файлів у відповідній теці гри - можна досить легко автоматизувати.

Для початку відкрийте ігрову теку, де повинен перебувати файл українізатора для його роботи. Створіть там .txt файл через блокнот / Windows / Notepad++ / тощо. Вставте наступний код:
(ПРОБІЛИ в посиланні на файл потрібно ВИДАЛИТИ)

@ echo off @chcp 1251 echo Зачекайте будь ласка, файл українізатора оновлюється :) powershell.exe -Command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -OutFile НАЗВА_ФАЙЛУ.ФОРМАТ_ФАЙЛУ 'https ://drive.google .com /uc?export=download&id=ID_ФАЙЛУ'"

НАЗВА_ФАЙЛУ та ФОРМАТ_ФАЙЛУ слід брати з назви потрібного вам українізатора на гугл-диску. Він може називатись "ukrainian.pak", "ua_locale.po" тощо
З тегом ID_ФАЙЛУ вже складніше - файл на гугл-диску доведеться відкрити у новому вікні (див. на фото - кнопка у верхньому правому куті). Альтернативний спосіб (або якщо посилання веде в теку з файлами): клацнути потрібний файл коліщатком миші / зробити подвійне клацання.

Опинившись у вікні з потрібним файлом - копіюємо з адресного рядка ID_ФАЙЛУ (це ВСІ символи між слешами, як на 2 фото)









Копіюємо та вставляємо відповідні теги в наш текстовий файл, зберігаємо його через: Файл - Зберегти як
Пишемо в назві "UA_Update.bat" (вона може бути довільною, але обов'язково залиште формат .bat)
УВАГА! Внизу є кодування - вибираємо ANSI.

Запускаємо новостворений UA_Update.bat та чекаємо, поки завантажить / оновить українізатор (віконечко з консоллю закриється автоматично). Якщо все зроблено вірно - в теці гри з'явиться оновлений файл українізатора. Для певності можете видалити старий перед запуском bat-файлу.

Тепер можна зробити посилання .bat файлу на робочий стіл (затиснути "Alt" й перетягнути його на робочий стіл) - або розробити автоматичне оновлення через Windows Task Scheduler. Воно самостійно запускатиме .bat файл у певний час доби. Детальніше про цей метод - в кінці посібника.

Оновлення файлів з GitHub
Для завантаження нової версії файлу слід відкрити САМЕ ТОЙ файл, який ви хочете оновлювати. Вгорі справа можна побачити кнопку Raw. Натискаємо й повністю копіюємо адресу посилання. Вставляємо його замість посилання на гугл-диск з попереднього прикладу

Оновлення декількох файлів
Тут все просто: рядок, який починається з "powershell.exe" - потрібно скопіювати й вставити ще раз, тоді опрацювати кожен з них окремо

Робота з архівами
Якщо файли перекладу лежать в архіві можна розпаковувати їх додавши з нового рядку наступну команду:
tar -xf НАЗВА_АРХІВУ.zip
Метод не дуже перевірений тому радий буду відгуку чи працює стабільно
Автоматизація
Регулярно запускати файл руцями з часом стає незручно. Тож розповім, як можна зробити це автоматично. Є два варіанти: 1. Звичайний запуск .bat файлу; 2. Потаємний запуск .bat файлу (який НЕ буде показувати віконечко з консоллю й повідомленням про оновлення).

Натискаємо комбінацію клавіш Win + R, вводимо у пошук taskschd.msc, тиснемо "ок".
Вибираємо "Create Basic Task" (Створити базове завдання);

Пишемо бажану назву для завдання, тиснемо "Next>" (Далі);

Вибираємо, коли саме буде запускатись завдання. Наприклад "Daily" (Щодня), або "When the computer starts" (Після запуску системи);

Припустімо, вибрали "Daily". Тепер визначаємо час доби для запуску завдання (першочергово слід виставити години / хвилини). Далі можна вибрати "Recuver every: N days" (Повтор кожні: N днів) - раз на скільки днів запускатиметься завдання. Для щоденного запуску залишаємо одиницю;

Варіант 1. Звичайний запуск .bat файлу
Тиснемо "Next>", потім ще раз "Next>". Тепер необхідно вказати шляхи до нашого .bat файлу та його робочої теки. Додаємо .bat файл через "Browse", його шлях автоматично пропишеться з лапками. Далі відкриваємо у провіднику теку з .bat файлом - копіюємо шлях до неї БЕЗ ЛАПОК (і без назви самого файлу), вставляємо в поле "Start in".

ПРИКЛАД: якщо шлях до файлу "D:\game\game_data\update.bat" - то в "Start in" слід вставляти лише D:\game\game_data\


Варіант 2. Потаємний запуск .bat файлу
В теці, де ми вже розмістили .bat файл - слід створити ще один .txt файл, вставивши в нього наступний код:
Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "НАЗВА_ФАЙЛУ.bat" & Chr(34), 0 Set WshShell = Nothing
Зберігаємо як "hide_update.vbs"

ВАЖЛИВО: обидва файли мають лежати в одній теці!

Повертаємось до створення задачі
Тиснемо "Next>", потім ще раз "Next>". Тепер необхідно вказати шляхи до нашого .vbs файлу та його робочої теки. Додаємо .vbs файл через "Browse", його шлях автоматично пропишеться з лапками. Відкриваємо у провіднику шлях до теки з vbs. файлом - тоді копіюємо її шлях БЕЗ ЛАПОК (і без назви самого файлу), вставляємо в поле "Start in".
ПРИКЛАД: якщо шлях до файлу "D:\game\game_data\hide_update.vbs" - то в "Start in" слід вставляти лише D:\game\game_data\.
Тепер ПОВНИЙ шлях до файлу вгорі "вирізаємо" й переносимо в поле "Add arguments", а замість нього пишемо вгорі "wscript.exe". Результат має виглядати як на фото:

Все, найстрашніше позаду. Тепер у вас автоматично запускатиметься файл автооновлень обраних українізаторів / обраним методом, який завантажуватиме оновлений переклад в зручний для вас час.

Якщо потрібно зупинити або видалити завдання - його завжди можна відшукати у відповідному списку "таскера". Якщо зробити подвійне клацання на завданні - відкриються його подробиці / необхідні інструменти праворуч:


Післямова
Сподіваюсь, цей посібник спростить гравцям отримання актуальних перекладів, а перекладачам - полегшить життя з вічними оновленнями проєктів, политих потом та кров'ю.

Автори й куратори перекладів: ви можете вільно додавати посилання на цей посібник у власні гайди українізації. Також закликаю всіх поширювати й покращувати його. В майбутньому можливо зроблю ще дещо для автоматизації... але про це згодом. За наявності пропозицій / питань: пишіть коментарі, допоможу чим зможу. Дяка за увагу.

Автор: Godless
Перевірка, тести й редагування: Dragon Kreig
19 Comments
Godless  [author] 10 May @ 12:17am 
@DeZ, Привіт, я здається читав що якось можна запустити і на лінукс, але я гляну
DeZ 9 May @ 6:31pm 
А буде лінукс-білд?
Для SteamDeck дуже стало б в нагоді
Godless  [author] 28 Apr @ 12:19pm 
@DeZ для завантаження фалу на диск потрібні інші доступи і скоріше за все перехід на використання api. а це купа мороки і переписування коду. Тому не факт що з'явиться такий функціонал. Можете розглянути варіант переходу на github. там оновлення значно простіше робити і є більш якісна історія версій та інше
DeZ 28 Apr @ 12:12pm 
І ще одне питання, я правильно розумію, що на даний момент воно тільки для завантаження локалізації з певног омісця в гру? Функціоналу вивантаження нема, тільки через бат?
А планується? Було б мабуть зручно мати дві вкладки - користувача і локалізатора.
DeZ 28 Apr @ 11:12am 
@Goddes, красно дякую. Прикольний хінт про версії. Зкільки працюю з гугл драйвом, в різних аспектах, а про це не знав.
Godless  [author] 28 Apr @ 10:30am 
@DeZ, привіт.
1) Щоб оновлювати переклад і не змінювати посилання на файл потрібно зробити наступне: пкм по файлу/інформація про файл/керування версіями. Це дозволить просто оновити файл а не створювати інший.
2) Структура zip має бути такою, щоб після розпакування в одну папку переклад одразу опинився на потрібному місці без додаткового переміщення.
Якщо розпаковувати в корінь гри, в архіві має бути папка data (або в інструкції вказати шлях розпакування як корінь гри/data). Вибір за вами.
DeZ 28 Apr @ 10:04am 
Привіт, як правильно оновлювати zip архіви своєї локалізації? Якщо давати посилання на сам файл архівУ, а потім перезаливати архів, т опосилання на файл змінеться, тоді користувачам треба буде заново додавати посилання. І що таке "правильна структура" зіп? Там одразу мати _Data теку (якщо гра на юніті)?
Godless  [author] 18 Oct, 2024 @ 2:48pm 
@Rondo Привіт, звичайно.
Rondo 18 Oct, 2024 @ 1:36pm 
Привіт. Чи можу я дати посилання на ваш застосунок у своєму посібнику з пошуку українізаторів?
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3137617136
Godless  [author] 5 Sep, 2024 @ 8:36am 
@DМИТРИК зрозуміло що будуть трабли, ідеальним його ніяк не назвати але для більшості випадків коли переклад не важить за 100+мб воно повинно працювати