Перейти к содержимому
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, что не надо было делать. 

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: pipindor666

      Жанр:  Indie / Visual Novel Платформы: PC Разработчик: Mars Equinox. Издатель: Mars Equinox. Дата выхода на PC: 12 фев. 2026    
      ПРОГРЕСС ПЕРЕВОДА:
      Шрифты : 100%  , Текст: 100% , Редактура:100% , Текстуры: 100% , Тестирование: 100%
      Актуальная версия перевода: 1.0 от 16.02.2026
       ( Желающим поддержать старание над переводом рублём — писать в ЛС. )
    • Автор: erll_2nd
      The Prisoning Fletcher's Quest

       
      Дата выхода: 10 фев 2026 г. Разработчик: Elden Pixels Издатель: Acclaim Inc Жанр: Приключения, Платформер, Инди Платформы: PC, PS5, XBOX https://store.steampowered.com/app/2725470/The_Prisoning_Fletchers_Quest/
      The Prisoning: Fletchers Quest, сюрреалистичные декорации которого сотканы из страхов и переживаний центрального персонажа, представляет собой эклектичную смесь платформера и метроидвании. Оказавшись в ловушке собственного разума после неудачного визита к психологу, протагонист вынужден пробиваться сквозь орды ментальных проекций. Геймплей фокусируется на точной стрельбе из револьвера и акробатических этюдах, где любая оплошность наказывается мгновенно. Система выживания здесь крайне сурова: потеря любимой шляпы оставляет героя беззащитным перед следующим ударом, превращая каждую стычку в испытание на прочность.
      Машинный перевод под steam Build.21655248 https://boosty.to/erll_2nd/posts/4e01cd0f-fc21-496c-bac7-624d28888338
      В настройках выбрать французский язык.



       

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

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

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

    • Вот кстати, мнение одного из авторов Игромании по поводу кооператива.  Что и подтверждает ощущение при прохождении — возможность коопа, чисто для привлечения большей аудитории, а основа делалась под соло.  Кооп на хрен не нужен, он здесь для “галочки”.   Чтобы раствориться в этой игре, нужно проходить строго в соло, в наушниках, и желательно в темноте (что я и сделал) Если говорить именно об идее кооператива, то Little Nightmares III местами выглядела даже интереснее. Там совместное прохождение строилось на различиях между героями: один персонаж действовал на расстоянии, другой — вблизи, и из этого рождались более выраженные роли и небольшие игровые ситуации, требующие координации. В Reanimal подход другой. Возможности персонажей почти одинаковые, и акцент сделан не на разделении ролей, а на совместном движении по миру и общей динамике прохождения. Зато игра предлагает то, чего многим не хватало в Little Nightmares 3, — полноценный локальный кооператив с общим экраном. Иногда последний, конечно, создаёт неудобства: если игроки расходятся слишком далеко, можно внезапно улететь на контрольную точку. Но такие моменты случаются нечасто. Во многом это заслуга камеры: она ловко держит ракурс, остаётся кинематографичной и при этом позволяет нормально ориентироваться даже в хаотичных сценах. По факту, впрочем, ни один из кооперативов не хватает звёзд с неба: оба проекта в первую очередь рассчитаны на одиночное прохождение, поэтому совместные механики намеренно остаются довольно простыми. И в данном случае удобство и комфорт во время игры оказываются важнее концептуальных идей.
    • До толстой свиноматки уже дошёл?  ) Это примерно середина. Хотя я не уверен, что это свиноматка. Возможно это толстый хряк.
    • Я где-то на половине, пока все норм, а атмосфера вообще топ.
    • Не,это имхо закос под schedule 1
    • Ну как тебе?  Я прошёл и считаю, что это маленький шедевр.  Я только не совсем понял происходящее, c чего началось и чем закончилось.  Буду благодарен, если разъяснишь )  Визуал и саунд-дизайн просто ахренительные.
    • Поправил некоторые символы в шрифте: https://tempfile.org/1CeLNkcjx5M/  
    • Это что за очередной клон гта? https://store.steampowered.com/app/2774040/The_Boss_Gangster_Criminal_Empire/ Tripware уже пытались угнаться за лаврами калофдюти, но свою Red Orchestra 2 так и бросили не доделав. Теперь с гта решили попробовать? Ясно. Короче, на поддержку старых осей забили, но обозначить об этом на странице с игрой не удосужились.
    • Конечно, а ты на бутерброд её не намазываешь разве? Тогда неправильные у тебя бутерброды. Много сильной репутации — много денег, много денег — можно намазывать на бутерброды что угодно. Ну и наоборот, много денег — много репутации, т.к. у кого-то стало много бутербродов, на которые ушли деньги, которые принесли репутацию.
    • Лайк не глядя, переводить с испанского это офигенно.
    • @CyberPioneer Это не от юнити зависит а от того кто игру делал. От настроек проекта в большей степени.
  • Изменения статусов

    • vitkach  »  eaZy

      Извините за беспокойство. Хотел спросить, а русификатор ещё когда-нибудь будет обновляться? Дело в том, что после его выхода выходили ещё обновления, в частности обновление 1.1, вышедшее летом 2023 года, где была добавлена целая сюжетная глава в конце если проходишь на лучшую концовку золотого пути, это где-то ещё полчаса диалогов. Также в игре присутсвуют иногда кракозябры вместо русского языка, это в основном связано с тем, что кое-где текст был изменён, в основном в обучающих сообщениях.
      · 0 ответов
    • TerryBogard  »  Siberian GRemlin

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

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

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

      Демка вышла. Работаем.
      · 0 ответов
  • Лучшие авторы


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

×