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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: SerGEAnt
      Grind Survivors

      Метки: Экшен, Экшен-рогалик, Пулевой ад, Аркада, Мясо Платформы: PC Разработчик: Pushka Studios Издатель: Assemble Entertainment Дата выхода: 16 марта 2026 года Отзывы Steam: 412 отзывов, 78% положительных

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

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

    •   ща бы у ии спрашивать про формат который может быть любым.

      Внутри вроде бы и обычный формат, но такое ощущение что обрезан буквы на половину. т.е. чётко видно половина букв по указанным оффсетам. А куда делся половина не знаю. может там сжатие\смещение какое у DS. Либо возможно это не те шрифты что нужно. На крине буква R
    • нет не очень, очень средняя я бы сказал(. играю сейчас и чтобы игра держалась в пределах 50-60фпс в основном 55фпс мне нужно выставлять 4к разрешение с фср на балансе то есть в разрешении  2259 × 1270 и это даже не 2к, это примерно такая же оптимизация как и в любой среднестатистической игре на УЕ5  вот в чистом 4к 30фпс это как и уже сказал в любой средне оптимизированной игре на УЕ5 , я не говорю про такие высеры как Бордер лендс 4 где вообще все плохо.) а например на 4070 как утверждается на этом сайте https://gamegpu.com/test-gpu/action-fps-tps/doom-the-dark-ages-test-gpu-cpu так и вовсе в 4к всего 25фпс, у5070 34фпс.
    • У дума оптимизация хорошая очень.
    • Хорошо, спасибо, тогда подожду новостей от SerGEAnt. Мне бы очень хотелось его скачать, потому что его почти нигде нет.
    • что доказал? Ничего не доказал. Игра просто на хайпе вот и всё. Не было бы на хайпе, ничег и не было бы. Вот твои переводы на старые игры кто-то качает массово? Вряд ли. Да и не плачу, просто констактирую факт то что вы делаете и не правите ничего и не обновляете. Ладно чёрт с ним с обновлением, но редактуру то хотя бы поверхностную надо сделать нормально(ну бля хотя бы термины). А не игра запускается и ладно. Вон того товарища еле убедили там в коментах что трифле не всегда переводится одинаково как у него. И в этом нет никакой шутки, как он думает. Это просто литературный мув. ну у когот-то она стоит 180р, а у кого-то все ~600. Ну и на эту игру вряд ли кто-то сделает нормально, если не вручную. Любая машинная будет херня + без текстур если. судя по статистике скачала уже как минимум 10 не комерческий, а вовлеченность. И да он тоже на хайпе просто был.
    • @PermResident а что тут скажешь? Мягко говоря это очень странно. Обычно, ray rec. даже добавляет чутка фпс. Например в AW2 и Дум ДЭ.  Хз, вероятно там какая-то хитрость, и при включении RR включается что-то ещё.  Нужно смотреть, чё там происходит когда включаешь. Вот в этом видосе, судя по всему, про это что-то говорят. Но я по ихнему не понимаю. Надо звать Даскера, пусть расшифровывает. https://youtu.be/SlRpJ553RzE
    • Взял-таки себе The Talos Principle 2 Deluxe Edition не дожидаясь летней распродажи 
    • Тебе видней на кортах 
    •  манямирок он такой. Хорошо наверно тебе в нём 
  • Изменения статусов

    • Jimmi Hopkins  »  SerGEAnt

      Это не просто перевод, а полноценная авторская сценарная адаптация. Диалоги переписаны так, чтобы персонажи звучали живо, остро и в характере. Добавлен чёрный юмор там, где авторы постеснялись. Убраны лорные противоречия, докручены мотивации. В результате игра стала умнее, злее и смешнее оригинала.
      · 0 ответов
    • ElikaStudio

      Долгожданный релиз полного сезона состоялся!
      https://youtu.be/mwBk2stm2OQ?si=qpJojB_XDABaC0We
      https://vk.com/video-48153754_456239394?sh=4&list=c62797c2b7d0725d6e
      Life is Strange: Before the Storm:
      Эпизод 1: "Прoбуждeниe"
      Эпизод 2: "О дивный новый мир"
      Эпизод 3: "Ад пуст"
      Бонусный эпизод: "Прощание"
      Русская озвучка уже доступна для скачивания!
      ElikaStudio выражает огромную благодарность всем, кто принял участие в создании проекта! 
      Группе Mechanics VoiceOver R.G. MVO , в частности их руководителю Дмитрию за неоценимую помощь в выпуске эпизода.
      Скачать для PC Classic (2018):
      GDrive: - https://drive.google.com/file/d/19CL_L80Mz0sIxcb54Ss64byAkeZmV22r/view?usp=sharing
      Скачать для PC Remastered (2022):
      GDrive: - https://drive.google.com/file/d/13q58Lpvw5_aYPYeZ7OGYZlAKOoS1gEbL/view?usp=sharing
      Скачать для Свитч(2022):
      GDrive: - https://drive.google.com/file/d/15e—T1LQiGQCYIHeNnj_C2qJA16Gvh1i/view?usp=sharing
      Ручная установка PC(оба издания):
      https://drive.google.com/drive/folders/1MJPd8965m4XxxAuOBt8enSHtv8_yy5xh?usp=sharing
      Баг репорт в обсуждении:
      https://vk.com/topic-48153754_55571577
      ___________________________________________
      Финансовый аппарат:
      www.donationalerts.com/r/elikastudio
      Пожертвовать средства на наши проекты:
      Кошелек ЮMoney 4100 1188 6818 3009
      карта Сбер банк 2202 2018 6334 1042
      карта Альфа банк 5559 4937 0209 8584
      Спасибо за вашу поддержку!
      #elikastudio #русскаяозвучка
      · 0 ответов
    • fox222  »  Siberian GRemlin

      Здравствуйте, хочу купить персональный доступ к переводам, сколько стоит?
      · 1 ответ
    • vitkach  »  eaZy

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

      C&C: RA: Retaliation (ПК) не работает.
      · 0 ответов
  • Лучшие авторы


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

×