Перейти к содержимому
Zone of Games Forum
SerGEAnt

Сообщение добавлено пользователем SerGEAnt

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

LUNARK

header.jpg?t=1688072893

  • Жанр: Платформер
  • Платформы: PC
  • Разработчик: Canari Games
  • Издатель: WayForward
  • Дата выхода: 30 марта 2023
  • Движок: GameMaker
     
Скрытый текст

 

Скрытый текст

ss_1cdf66fcc365b71e832f341a428ce2536ebf9

ss_b1988ae11395b7366976f52d0f4b7bf57d0d9

ss_b25bad4440f64660a255006ecf934deb88132

Скрытый текст

LUNARK — это современная интерпретация кинематографических 2D-платформеров из 90-х. Действие происходит на далекой планете, где царит тоталитарный режим. В роли Лео — курьера с уникальными способностями и загадочным прошлым — вы будете бегать, прыгать, висеть, карабкаться, кататься и стрелять, находясь в анимированных пиксельных средах. Например, в антиутопичном мегаполисе, жутких пещерах или внеземном лесу. Выбирайтесь из ловушек, решайте головоломки, получайте улучшения, сражайтесь со вражескими дроидами и боритесь за выживание. На пути Лео встретит ярких персонажей, которые заставят его усомниться в своих идеалах. Раскройте страшную тайну нового дома, уготованного для человечества, и узнайте всю правду о главном герое в этом эпичном научно-фантастическом приключении!

 

Поделиться сообщением


Ссылка на сообщение

@0wn3df1x в игре двигло Game Maker Studio. Заменить шрифт не особая-то и проблема. Текст лежит отдельно в json файле language.json

Скрытый текст

Screenshot-5.jpg

 

Изменено пользователем SileNTViP

Поделиться сообщением


Ссылка на сообщение

Стилистика мое почтение. The Way ещё напомнило от разработчиков Puzzling Dream.

header.jpg?t=1724959391

 

  • Лайк (+1) 1

Поделиться сообщением


Ссылка на сообщение
11 часов назад, SileNTViP сказал:

@0wn3df1x в игре двигло Game Maker Studio. Заменить шрифт не особая-то и проблема. Текст лежит отдельно в json файле language.json

  Скрыть содержимое

Screenshot-5.jpg

 

Скрипт для экспорта language.json в csv файл и обратного импорта:

Скрытый текст

import json
import csv
import os
import tkinter as tk
from tkinter import filedialog, messagebox

class LanguageFileManager:
    def __init__(self, root):
        self.root = root
        self.root.title("Language File Manager")
        
        self.label = tk.Label(root, text="Укажите путь к language файлу:")
        self.label.pack(pady=10)
        
        self.path_entry = tk.Entry(root, width=50)
        self.path_entry.pack(pady=5)
        
        self.browse_button = tk.Button(root, text="Обзор", command=self.browse_file)
        self.browse_button.pack(pady=5)
        
        self.export_button = tk.Button(root, text="Экспорт", command=self.export_to_csv)
        self.export_button.pack(pady=5)
        
        self.import_button = tk.Button(root, text="Импорт", command=self.import_from_csv)
        self.import_button.pack(pady=5)
        
    def browse_file(self):
        file_path = filedialog.askopenfilename(filetypes=[("JSON files", "*.json")])
        self.path_entry.delete(0, tk.END)
        self.path_entry.insert(0, file_path)
        
    def export_to_csv(self):
        file_path = self.path_entry.get()
        if not file_path:
            messagebox.showerror("Ошибка", "Путь к файлу не указан")
            return
        
        try:
            with open(file_path, 'r', encoding='utf-8') as file:
                data = json.load(file)
            
            csv_file_path = filedialog.asksaveasfilename(defaultextension=".csv", filetypes=[("CSV files", "*.csv")])
            if not csv_file_path:
                return
            
            with open(csv_file_path, 'w', newline='', encoding='utf-8') as csv_file:
                writer = csv.writer(csv_file, delimiter='\t', quoting=csv.QUOTE_NONE, escapechar='\\')
                
                # Заголовок
                header = ["ID", "Type"] + list(data.keys())
                writer.writerow(header)
                
                # Данные
                all_keys = set()
                for lang in data.values():
                    all_keys.update(lang.keys())
                
                for key in sorted(all_keys, key=int):
                    row = [key, "string"]
                    for lang in data.keys():
                        value = data[lang].get(key, "")
                        if isinstance(value, int):
                            row[1] = "int"
                            value = str(value)
                        # Заменяем \n на \\n
                        value = value.replace('\n', '\\n')
                        row.append(value)
                    writer.writerow(row)
            
            messagebox.showinfo("Успех", f"Данные успешно экспортированы в {csv_file_path}")
        
        except Exception as e:
            messagebox.showerror("Ошибка", f"Ошибка при экспорте: {e}")
    
    def import_from_csv(self):
        file_path = self.path_entry.get()
        if not file_path:
            messagebox.showerror("Ошибка", "Путь к файлу не указан")
            return
        
        csv_file_path = filedialog.askopenfilename(filetypes=[("CSV files", "*.csv")])
        if not csv_file_path:
            return
        
        try:
            with open(csv_file_path, 'r', encoding='utf-8') as csv_file:
                reader = csv.reader(csv_file, delimiter='\t', quoting=csv.QUOTE_NONE, escapechar='\\')
                header = next(reader)
                
                data = {lang: {} for lang in header[2:]}
                
                for row in reader:
                    key = row[0]
                    value_type = row[1]
                    for i, lang in enumerate(header[2:], start=2):
                        value = row[i]
                        # Заменяем \\n на \n
                        value = value.replace('\\n', '\n')
                        if value_type == "int":
                            value = int(value)
                        data[lang][key] = value
            
            json_file_path = os.path.splitext(file_path)[0] + "_update.json"
            with open(json_file_path, 'w', encoding='utf-8', newline='') as json_file:
                json.dump(data, json_file, ensure_ascii=False, indent=2)
            
            messagebox.showinfo("Успех", f"Данные успешно импортированы в {json_file_path}")
        
        except Exception as e:
            messagebox.showerror("Ошибка", f"Ошибка при импорте: {e}")

if __name__ == "__main__":
    root = tk.Tk()
    app = LanguageFileManager(root)
    root.mainloop()

 

Скрипт в виде готового приложения:

https://drive.google.com/file/d/1_wneaen93shN7jWzWTwdjffsEhlAMZiZ/view?usp=sharing
1) Нажимаем “обзор” и выбираем json файл.
2) Нажимаем “Экспорт” и сохраняем под любым названием.
3) После перевода нажимаем “Импорт” и выбираем отредактированный csv файл, после чего будет создан language_update.json с изменениями.

Wxq5q6P.png

Csv файл достаётся в таком виде:
32v0w1C.png

Можно скопировать и вставить на гугол-таблицы:
hOu8UCj.png

А затем скопировать и вставить в csv файл обратно. 

Скрытый текст
  1. Важно экранировать кавычки, если они технические — “ должно быть \”
     
  2. Переносы экранируются дважды. То есть должно быть \\n


Всего текста: 15742 слова без повторяющихся строк.
5394 слова — это имена разработчиков и поддержавших на кикстартере.
Оставшийся текст: 10348 слов.

Изменено пользователем 0wn3df1x

Поделиться сообщением


Ссылка на сообщение

@0wn3df1x Чувствую, что скоро можно будет поиграть на великом православном :)

Поделиться сообщением


Ссылка на сообщение
1 минуту назад, lordik555 сказал:

@0wn3df1x Чувствую, что скоро можно будет поиграть на великом православном :)

Если кто-то захочет взяться за перевод.
SileNTViP знает про движок GM и про шрифты на нём.
Я могу достать текст в нужном виде, хотя выше уже выложил скрипт и standalone-приложение.

Поделиться сообщением


Ссылка на сообщение

Временный Шрифт для торрент едишн LUNARK.Build.11060535. Как поведет себя архив на других билдах не знаю.

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение
18 часов назад, Ниорк сказал:

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

Да шрифт поправить не долго. Лишь бы найти толковый ttf/otf. Да пока и смысла без текста подбирать.

Поделиться сообщением


Ссылка на сообщение
48 минут назад, SileNTViP сказал:

Да шрифт поправить не долго. Лишь бы найти толковый ttf/otf. Да пока и смысла без текста подбирать.

Тогда, могу завтра скинуть первую версию перевода, заодно протестировать что я ничего лишнего (системного не тронул).

Поделиться сообщением


Ссылка на сообщение

Игрушка обалденная. За 2 выходных прошёл и получил массу удовольствия, всем любителям олдскульного геймплея в духе Flashback и Another World обязательно к прохождению. Музыка тоже зачёт, одна композиция однозначно пойдет в плейлист.

Позволю себе побыть немного тестером :)

Использовал первый вариант шрифта, и в моменте, когда должны пойти титры (финальные) вылетела ошибка:

Скрытый текст

############################################################################################
ERROR in
action number 1
of Draw Event
for object obj_ENDING_credits:

REAL argument incorrect type undefined############################################################################################
gml_Script___scribble_gen_6_build_lines (line 350)
gml_Script___scribble_class_model (line 324)
gml_Script_anon___scribble_class_element_gml_GlobalScript___scribble_class_element_4115868___scribble_class_element_gml_GlobalScript___scribble_class_element (line 1379)
gml_Script_anon___scribble_class_element_gml_GlobalScript___scribble_class_element_45680___scribble_class_element_gml_GlobalScript___scribble_class_element (line 164)
gml_Script_format_backers (line 310)
gml_Script_draw_credits (line 258)
gml_Object_obj_ENDING_credits_Draw_0 (line 20)

Совсем не критично, ибо после титров никаких дополнительных сцен нет и прохождению не мешает, но я любитель досматривать титры до конца. Фетиш такой :) Был бы рад фиксу, если такое представляется возможным. Возможно, со 2 вариантом шрифта не так, не проверял (придется переиграть всю 12 главу целиком).

Поделиться сообщением


Ссылка на сообщение
4 часа назад, lordik555 сказал:

Игрушка обалденная. За 2 выходных прошёл и получил массу удовольствия, всем любителям олдскульного геймплея в духе Flashback и Another World обязательно к прохождению. Музыка тоже зачёт, одна композиция однозначно пойдет в плейлист.

Позволю себе побыть немного тестером :)

Использовал первый вариант шрифта, и в моменте, когда должны пойти титры (финальные) вылетела ошибка:

  Error (Показать содержимое)

############################################################################################
ERROR in
action number 1
of Draw Event
for object obj_ENDING_credits:

REAL argument incorrect type undefined############################################################################################
gml_Script___scribble_gen_6_build_lines (line 350)
gml_Script___scribble_class_model (line 324)
gml_Script_anon___scribble_class_element_gml_GlobalScript___scribble_class_element_4115868___scribble_class_element_gml_GlobalScript___scribble_class_element (line 1379)
gml_Script_anon___scribble_class_element_gml_GlobalScript___scribble_class_element_45680___scribble_class_element_gml_GlobalScript___scribble_class_element (line 164)
gml_Script_format_backers (line 310)
gml_Script_draw_credits (line 258)
gml_Object_obj_ENDING_credits_Draw_0 (line 20)

Совсем не критично, ибо после титров никаких дополнительных сцен нет и прохождению не мешает, но я любитель досматривать титры до конца. Фетиш такой :) Был бы рад фиксу, если такое представляется возможным. Возможно, со 2 вариантом шрифта не так, не проверял (придется переиграть всю 12 главу целиком).


Ошибка REAL argument incorrect type undefined может возникать, если в некоторых функциях ожидались числа (например, идентификаторы или количественные значения), а вместо них переданы текстовые строки или несуществующие значения. Это может происходить, если ключи с числовыми значениями (такие как "1901": 1, "2101": 1) указаны неверно или отсутствуют.

Возможно, конечно, дело в data.win.

@Ниорк глянул json с локализацией.
Заметил, что у строк:

417023	What are you doing?
803012	If you want to go further, you'll have to deal with these missile launchers.

Отсутствует перевод в русском.

Ещё есть строка

1209019	...

Она одинаковая во всех переводах, идёт тремя точками и только в русском идёт одним символом многоточия … 
Но то, что подобное может спровоцировать краш бывает в исключительных случаях.
Сам json валидный поэтому не уверен, в нём ли проблема.
Я бы копал в сторону изменений в data.win.

@lordik555
Можешь глянуть конец этого видео и сказать таймкод, где конкретно вылетело? Чем конкретней, тем лучше.

P.S. Возможно имеет смысл откатить файлы до оригинальных и проверить финальные титры на оригинальном французском языке? Если вылетит — значит проблема на уровне игры. Тогда нужно будет просто перетащить локализацию на любой другой язык кроме французского.

Изменено пользователем 0wn3df1x

Поделиться сообщением


Ссылка на сообщение
32 минуты назад, 0wn3df1x сказал:

глянул json с локализацией.
Заметил, что у строк:

Интересно, проходил дотошно, но абсолютно все фразы, которые мне встретились были переведены. Были неточности в роде и во времени глагола несколько раз только.

34 минуты назад, 0wn3df1x сказал:

Можешь глянуть конец этого видео и сказать таймкод, где конкретно вылетело? Чем конкретней, тем лучше.

2:14:28 — ровно в тот момент крашается, когда должна появится надпись Lunark (при этом она не появляется).

37 минут назад, 0wn3df1x сказал:

P.S. Возможно имеет смысл откатить файлы до оригинальных и проверить финальные титры на оригинальном французском языке? Если вылетит — значит проблема на уровне игры.

Попробую сначала на 2 варианте шрифта, а потом на французский переключусь. Отпишусь потом.

Поделиться сообщением


Ссылка на сообщение

Я вроде после того как уже на зоге выложили, немного правил перевод (на бусти), но всё ещё не уверен, что титры пойдут. И пока времени на проверить нет, надо закончить оставшиеся переводы. Так что я не против бесплатных тестеров :D

Скорее всего дело именно в json файле, если быть совсем точным, то в строчках которые нельзя было трогать(ибо они ключи по которым игра ориентируется, какой диалог использовать). Как имена, если их трогать то игра вылетает при диалоге. Но если объект отдельный то всё норм (типа корабля).

Ну и цифры да, у меня exel зачем то увеличил все значения на 1, что не надо было делать. 

Изменено пользователем Ниорк

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: erll_2nd
      Retrace The Light

       
      Дата выхода: 20 ноя. 2025г Разработчик: Xiaming Game Издатель: Xiaming Game Жанр: Экшен, РПГ Платформы: ПК https://store.steampowered.com/app/2179370/Retrace_the_Light/
      Главная фишка Retrace the Light — способность манипулировать временем. Герой оставляет за собой след света, по которому может мгновенно вернуться, чтобы избегать атак врагов, телепортироваться через препятствия и решать пространственные головоломки. Игроков ждут динамичные сражения, семь боевых модулей и двадцать дополнительных улучшений для настройки стиля боя, схватки с гигантскими механическими боссами и пять альтернативных концовок, зависящих от принятых решений.
      Машинный перевод steam v1.1.2686 https://drive.google.com/file/d/1S7ofVlpxHndIwsIwZFp5rVjZThNUubtf/view?usp=sharing



       
       

  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • @mytraz  я эту погоню за обновами не очень  понимаю. Русификатор остаётся актуальным, так как обновления игры не затрагивают локализационные файлы. Дог и 450р(хотя 450р не ахти как уже обновляет тоже) — шлифуют ради шлифования, при чём изменения как капля в море, т.е. заметить можно только если редачат именно то, что часто в глаза попадаются, навыка, описания и т.д. Сюжетную составляющую — если она хромает, они смогут исправить только сделав русификатор с нуля поделив на ноль всё что делали до этого(навыки и прочее), так как в файлах игры всё совершенном беспорядке. Вот и получается, что хз куда направлены рабочие силы. А уж если если у дога несколько человек задействованы в в редактуре, то оно может наоборот негативно сказаться на унификации. В прочем о чём мне говорить, я уже и не слежу особо, главное, чтобы ты видел результат обнов, а не просто меняющийся номер в лаунчере. @mytraz так в слепую он закончен. Нравится, пользуйтесь.
    • не ну а че)) у тебя “вслепую” краше выходит 
    • вот вот, и я о том же даже ребята которые в ВК продаются за 450р местами не дотягивают до такой литературности увы грешно товарищ allodernat бросать такое на пол пути   @allodernat 
    • Можно сказать, что длсс повышает "производительность" игры(увеличение fps), понятно за счёт чего.  И да, согласен, что это "костыль", хоть и неплохого качества. Некоторые элементы изображения и правда с длсс выглядят лучше, но в целом, изображение с длсс хуже чем с ТАА. С длсс изображение в большинстве случаев выглядит более "пластмассово", чем с тем же ТАА. Только почему-то не все это замечают, что очень странно.
    • Скачать можно ли русскую озвучку?
    • @erll_2nd смастерил нейросетевой русификатор для головоломки Retrace the Light. @erll_2nd смастерил нейросетевой русификатор для головоломки Retrace the Light.
    • NikiStudio, Studii Net, Союз за кадром.
    • Всем привет, пытаюсь прикрутить данные русификаторы на версию игры для PS5. Steam-версия дает нулевой результат, а вот при копировании EGS-версии главное меню, интерфейс частично, обучение, становятся на русском, но, к сожалению, все субтитры в диалогах и в кат-сценах пропадают, остаются только знаки препинания. Будто не хватает шрифта, хотя часть игры же становится на русском и откуда-то берется русский шрифт. Кто может помочь в решение данного вопроса?
    • Господи, репортов-то накидали. Какой-то слабенький срач, вот когда-то у Гремлина я понимаю тут горы ходуном ходили.
  • Изменения статусов

    • TerryBogard  »  Siberian GRemlin

      C&C: RA: Retaliation (ПК) не работает.
      · 0 ответов
    • Алекс Лев  »  SerGEAnt

      Привет, Сержант. Прошу разрулить ситуэйшн и урезонить некоторых людей, оскорбивших мою личность. Пожалуйста, для этого прочтите нашу переписку с Ленивым. Примите меры, будьте добры, мною составлена бумага, ждущая вашей электронной подписи, для подачи её в суд. Если не желаете судебных разборок (а я пойду дальше, если меры не будут приняты), оскорбившие меня люди должны понести необходимое по вашему же Договору наказание. Спасибо.
      · 1 ответ
    • Antony1203  »  SerGEAnt

      Добрый вечер! С Новым Годом. Нашел на просторах сети русскую озвучку Halo Infinite, которая отсутствует на моем любимом сайте  Протестил. Все работает. Подскажите, как можно передать? Спасибо.
      · 2 ответа
    • Albeoris

      Демка вышла. Работаем.
      · 0 ответов
    • maddante665  »  parabelum

      https://disk.yandex.ru/d/A7W9aHwW7wLTjg
      ссылка на торрент , в нем архив с игрой.
      единстенное в геймпасее папка TotalChaos_Data так, а в стиме Total Chaos_Data, но если пробел убрать в архиве с ркссификатором все равно не работает, ломаются надписи , просто прозрачные. я пробовал только текст .
      · 1 ответ
  • Лучшие авторы


Zone of Games © 2003–2026 | Реклама на сайте.

×