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

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

@demortiusтак на чем все заглохло? на том, что он шрифт не дал, или что? или все же текст сунуть ни у кого не получается?

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


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

@demortiusтак на чем все заглохло? на том, что он шрифт не дал, или что? или все же текст сунуть ни у кого не получается?

Я вроде писал. С технической стороны у Warbreath всё было схвачено, я ему только куски переведённого текста слал, а он мне тестовые версии русификатора. Мне надо было на пару месяцев взять перерыв, и он сказал, что через 3 месяца выложит в открытый доступ всё, если я не появлюсь. Вот только пропал он, вместе со всеми техническими решениями:(

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


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

@demortiusЭто смотрел https://github.com/Albeoris/Septerra, у меня она плохо работает ошибки выдает.

Если что можно будет переписать или исправить ошибки код открытый.

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

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


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

@demortiusЭто смотрел https://github.com/Albeoris/Septerra, у меня она плохо работает ошибки выдает.

Если что можно будет переписать или исправить ошибки код открытый.

Этим я тоже как раз пользовался, там не сделано конвертирование русского языка (выдает вопросительные знаки везде) и выдает ошибки на разборе файла valkyrie.db. А так сделать можно, но там же нет обратного запаковывания

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


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

А так сделать можно, но там же нет обратного запаковывания

Исходники открыты можно добавить поддержку языка. 

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


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

Всем привет! Судя по выложенным demortius'ом именам файлов и их содержимому Warbreath использовал для распаковки текста тулзы DB_Tool и TX00_Tool от Delutto. Была у меня когда-то мыслишка попытаться сваять новый перевод для Septerra Core, но терпения не хватило. К сожалению DB_Tool и TX00_Tool не поддерживают распаковку и вставку текста на русском языке. Я не программист, но с помощью различных консольных и утилит от Delutto извлечь и вставить текст из старого пиратского перевода у меня получилось. Вроде всё нормально работает. Тулзами от Albeoris'а можно графику извлечь в формате tiff и вставить обратно, включая шрифт. Я их приложил в папку bin. Один из билдов когда-то собирал сам, с ним смог распаковать файлы. Не знаю нужно ли ещё где-то таблицу символов править. 
Вот мои файлы, возможно помогут. Правда рассчитано на шрифт из пиратского перевода без букв ё, соответственно и кодировка под него тоже. Не смейтесь над реализацией. )))
https://pixeldrain.com/u/ipSXX3DD

P.S. Хотелось бы чтобы перевод использовал ресурсы в формате оригинальной игры, а не извлечённые файлы с тулзами от Albeoris'а, потому что есть вот это:
https://github.com/M-HT/SR/releases/tag/septerra_v1.04.0.11
 

 

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

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


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

Всем привет! Судя по выложенным demortius'ом именам файлов и их содержимому Warbreath использовал для распаковки текста тулзы DB_Tool и TX00_Tool от Delutto. Была у меня когда-то мыслишка попытаться сваять новый перевод для Septerra Core, но терпения не хватило. К сожалению DB_Tool и TX00_Tool не поддерживают распаковку и вставку текста на русском языке. Я не программист, но с помощью различных консольных и утилит от Delutto извлечь и вставить текст из старого пиратского перевода у меня получилось. Вроде всё нормально работает. Тулзами от Albeoris'а можно графику извлечь в формате tiff и вставить обратно, включая шрифт. Я их приложил в папку bin. Один из билдов когда-то собирал сам, с ним смог распаковать файлы. Не знаю нужно ли ещё где-то таблицу символов править. 
Вот мои файлы, возможно помогут. Правда рассчитано на шрифт из пиратского перевода без букв ё, соответственно и кодировка под него тоже. Не смейтесь над реализацией. )))
https://pixeldrain.com/u/A9gGCNg3

P.S. Хотелось бы чтобы перевод использовал ресурсы в формате оригинальной игры, а не извлечённые файлы с тулзами от Albeoris'а, потому что есть вот это:
https://github.com/M-HT/SR/releases/tag/septerra_v1.04.0.11
 

 

Про M-HT я в курсе, хороший проект, через него вот как раз я и играю; мне интересно как Myshkin редактировал текст

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


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

@rellikmil с помощью тех файлов, что я выложил существующий пиратский перевод можно отредактировать. В принципе можно и новый сделать.

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


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

@welltall2 Круто, ну demortius допереведет (если он планирует это делать), то можно вставить, еще бы шрифты уже сделанные взять, и в общем-то все. Я займусь мануалом, “переведу” его насколько смогу, и пришлю сюда, потом текст вставлю и подгоню

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


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

https://transfiles.ru/0m3ya

Не помню финальная ли это версия шрифтов, но судя по цифре последняя версия что у меня сохранилась.

Изменено пользователем fallout1991
  • Лайк (+1) 1

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


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

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

Подскажите, пожалуйста, ориентировочно, через сколько можно ждать перевод? (Пол года/год/ не факт, что выйдет/ и т.д.).
Просто, если через пол года год, то можно и подождать, а если не выйдет, то можно и так попробовать пройти :)

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


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

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

Подскажите, пожалуйста, ориентировочно, через сколько можно ждать перевод? (Пол года/год/ не факт, что выйдет/ и т.д.).
Просто, если через пол года год, то можно и подождать, а если не выйдет, то можно и так попробовать пройти :)

Настолько опустел беклог, что пора проходить игры 20+ летней давности? :D Везучий вы человек. (шутка, я сам откапываю и прохожу такие проекты).

По теме: нашёл тему в разделе руководств в Steam, хотел уже было кинуть ссылку, но почитал комментарии — да, названный “официальный перевод от 1С”, как пишут люди, просто вырезанный перевод из какой-то пиратки (предположительно 7 Волк).

И говорят, что к середине игры там начинается чушь и лучше играть в оригинале… печально. Я вот тоже давненько на эту игрушку посматриваю, там её даже на PS Vita портанули.

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


Ссылка на сообщение
В 7/14/2025 в 10:47, lordik555 сказал:

По теме: нашёл тему в разделе руководств в Steam, хотел уже было кинуть ссылку, но почитал комментарии — да, названный “официальный перевод от 1С”, как пишут люди, просто вырезанный перевод из какой-то пиратки (предположительно 7 Волк).

И говорят, что к середине игры там начинается чушь и лучше играть в оригинале… печально. Я вот тоже давненько на эту игрушку посматриваю, там её даже на PS Vita портанули.

Да нет на самом деле, перевод там вполне играбельный на всём прохождении. Косяков хватает, но всё равно на пол головы выше современных машинных выкидышей.

Изменено пользователем Korgan_F_NC
  • Спасибо (+1) 2

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: SerGEAnt
      Mortal Shell 2
      Метки: Не указан Платформы: PC XS PS5 Разработчик: Cold Symmetry Издатель: Playstack Дата выхода: 20 августа 2026 года
    • Автор: tilifunkin

      https://store.steampowered.com/app/741140/Baldr_Sky/ — страница игры
      Жанр: Визуальная новелла Разработчик: GIGA Издатель: GIGA, Sekai Project Платформы: Windows Дата выхода: 20 Декабря 2019 (2009 - релиз). Состав сборника: Baldr Sky Dive1 “Lost Memory”,  Baldr Sky Dive2 “Recordare”  
      Переводом Steam версии Baldr Sky занимается группа SnowLabs.
      Инструкцию по установке перевода можно найти тут.
      Автор перевода ищет новый переводчиков, писать - SunRay27(zog) или ВК.
      Переведено — 41.31% — 09/05/2026 13:38
      Рэйн — 100% Наноха —  100% Тинацу — 2% Прошлое — 3% Аки — 1% Макото — 1% Финал — 1% Бонусный контент — 1% Система и интерфейс — 91% Обучение — 100%

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

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

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

    • Это чтобы наши с Мирославом жопы горели в унисон?
    •  что это.   Нет, я помню что что-то  такое писал, но мать твою.... Кратковременный пик это то, что может не засеч мониторинг если у тебя там не а 1/10 сек строчит. Я слышал, что у 5090 это может быть 1200-1300w.
    • Ну к слову, я в основном играю c достаточно серьезным андервольтом снижающем постоянное потребление с 330w до 250w но теперь мне охота посмотреть будут ли тикие пики под 600w или хотя бы 400-500w
    • Будет ли апдейт под 2.0?
    • //------------------------------------------------ //--- 010 Editor Binary Template // // File:        Asura_TXTH.bt // Authors: Giza+AI // Description: Asura Engine Text Resource (.ASRBE / .ASR / TXTH chunk) // File Mask:   *.ASRBE,*.asr,*.bin // ID Bytes:    41 73 75 72 61 20 20 20 54 58 54 48 // "Asura   TXTH" //------------------------------------------------ BigEndian(); // ------------------------------------------------ // Header Definition (36 bytes / 0x24) // ------------------------------------------------ struct HEADER {     char   magic[8]        <comment="Engine signature: 'Asura   '">;     char   chunkType[4]    <comment="Chunk signature: 'TXTH' (Text Header)">;     uint32 chunkSize       <comment="Total size of remaining chunk payload (FileSize - 24)">;     uint32 version         <comment="Structure version (typically 1)">;     uint32 flags           <comment="Resource flags">;     uint32 entryCount      <comment="Number of localized string entries">;     uint32 archiveHash     <format=hex, comment="Archive/File 32-bit Hash ID">;     uint32 totalTextBytes  <comment="Total raw byte size of all UTF-16 text data">; } header <style=sHeading1>; // ------------------------------------------------ // Localized Text Entry // ------------------------------------------------ typedef struct {     uint32  keyHash   <format=hex, comment="32-bit hash identifier for the key name">;     uint32  charCount <comment="String length in UTF-16 characters (including null terminator)">;     wchar_t text[charCount] <comment="UTF-16BE encoded text">;          // 4-byte padding alignment     local int textBytes = charCount * 2;     if ((textBytes % 4) != 0) {         ubyte padding[4 - (textBytes % 4)] <comment="Alignment padding">;     } } TEXT_ENTRY <read=ReadTextEntry>; wstring ReadTextEntry(TEXT_ENTRY &entry) {     return entry.text; } // ------------------------------------------------ // Text Entries Table // ------------------------------------------------ struct TEXT_ENTRIES {     TEXT_ENTRY entries[header.entryCount] <optimize=false>; } textEntries <style=sSection1>; // ------------------------------------------------ // Key Names Table (ASCII / null-delimited) // ------------------------------------------------ typedef struct {     string keyName <comment="Identifier key corresponding 1-to-1 with entry index">; } KEY_ENTRY <read=ReadKeyEntry>; string ReadKeyEntry(KEY_ENTRY &k) {     return k.keyName; } struct KEY_TABLE {     uint32 keyTableSize <comment="Total size in bytes of raw string table">;     KEY_ENTRY keys[header.entryCount] <optimize=false>;          // Remaining alignment padding to EOF (aligned to 16 bytes)     if (!FEof()) {         ubyte filePadding[FileSize() - FTell()] <comment="End-of-file padding">;     } } keyTable <style=sSection2>;   на основе этого ии написал пайтон скрипт:
        #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Asura Engine TXTH (.ASRBE) Text Exporter & Importer Supports Big-Endian Asura text archives (PS3 / Xbox 360). """ import sys import os import struct import json import argparse def export_asrbe(file_path, output_path=None): if output_path is None: output_path = os.path.splitext(file_path)[0] + ".json" with open(file_path, "rb") as f: data = f.read() if len(data) < 36: raise ValueError("File is too small to be a valid ASRBE file.") magic = data[:8].decode("latin1") chunk_type = data[8:12].decode("latin1") if magic != "Asura " or chunk_type != "TXTH": raise ValueError(f"Invalid header signature: {magic!r} / {chunk_type!r}") chunk_size, version, flags, entry_count, archive_hash, total_text_bytes = struct.unpack(">IIIIII", data[12:36]) offset = 36 entries_data = [] for i in range(entry_count): key_hash, char_count = struct.unpack(">II", data[offset:offset+8]) offset += 8 text_raw = data[offset:offset + char_count * 2] text = text_raw.decode("utf-16-be").rstrip("\x00") offset += char_count * 2 # 4-byte padding alignment if offset % 4 != 0: offset += 4 - (offset % 4) entries_data.append({ "key_hash": f"0x{key_hash:08X}", "raw_hash": key_hash, "text": text }) # Read Key Table key_table_size = struct.unpack(">I", data[offset:offset+4])[0] offset += 4 keys_raw = data[offset:offset + key_table_size] # Split null-delimited keys key_names = [k.decode("latin1") for k in keys_raw.split(b"\x00") if k] # Combine keys and entries output_entries = [] for i in range(entry_count): k_name = key_names[i] if i < len(key_names) else f"UNKNOWN_KEY_{i}" output_entries.append({ "index": i, "key": k_name, "key_hash": entries_data[i]["key_hash"], "text": entries_data[i]["text"] }) meta = { "format": "Asura_TXTH", "endian": "big", "version": version, "flags": flags, "archive_hash": f"0x{archive_hash:08X}", "raw_archive_hash": archive_hash, "entry_count": entry_count, "entries": output_entries } with open(output_path, "w", encoding="utf-8") as f: json.dump(meta, f, ensure_ascii=False, indent=2) print(f"[+] Successfully exported {entry_count} entries to {output_path}") def import_asrbe(json_path, output_path): with open(json_path, "r", encoding="utf-8") as f: meta = json.load(f) entries = meta["entries"] entry_count = len(entries) version = meta.get("version", 1) flags = meta.get("flags", 0) archive_hash = meta.get("raw_archive_hash") if archive_hash is None: archive_hash = int(meta["archive_hash"], 16) # Build text entries block text_entries_bytes = bytearray() total_text_bytes = 0 for entry in entries: raw_hash = entry.get("raw_hash") if raw_hash is None: raw_hash = int(entry["key_hash"], 16) text = entry["text"] + "\x00" # include null terminator text_utf16 = text.encode("utf-16-be") char_count = len(text) entry_bytes = bytearray() entry_bytes.extend(struct.pack(">II", raw_hash, char_count)) entry_bytes.extend(text_utf16) # 4-byte padding text_len = len(text_utf16) total_text_bytes += text_len if len(entry_bytes) % 4 != 0: pad_len = 4 - (len(entry_bytes) % 4) entry_bytes.extend(b"\x00" * pad_len) text_entries_bytes.extend(entry_bytes) # Build keys table keys_raw = bytearray() for entry in entries: keys_raw.extend(entry["key"].encode("latin1")) keys_raw.append(0) # null terminator key_table_bytes = bytearray() key_table_bytes.extend(struct.pack(">I", len(keys_raw))) key_table_bytes.extend(keys_raw) # Payload = text entries + key table payload = text_entries_bytes + key_table_bytes # Pad payload to 16 bytes alignment pad_rem = len(payload) % 16 if pad_rem != 0: payload.extend(b"\x00" * (16 - pad_rem)) # Total chunk size = total file size - 24 # Header is 36 bytes -> header[24:] is 12 bytes + payload chunk_size = 12 + len(payload) header = bytearray() header.extend(b"Asura ") header.extend(b"TXTH") header.extend(struct.pack(">IIIIII", chunk_size, version, flags, entry_count, archive_hash, total_text_bytes)) full_data = header + payload with open(output_path, "wb") as f: f.write(full_data) print(f"[+] Successfully packed {entry_count} entries to {output_path} ({len(full_data)} bytes)") def main(): parser = argparse.ArgumentParser(description="Asura Engine TXTH (.ASRBE) Converter") subparsers = parser.add_subparsers(dest="command", required=True) # Export p_export = subparsers.add_parser("export", help="Export .ASRBE to .json") p_export.add_argument("input_file", help="Path to input .ASRBE file") p_export.add_argument("-o", "--output", help="Path to output .json file") # Import p_import = subparsers.add_parser("import", help="Import .json back to .ASRBE") p_import.add_argument("input_json", help="Path to input .json file") p_import.add_argument("output_file", help="Path to output .ASRBE file") args = parser.parse_args() if args.command == "export": export_asrbe(args.input_file, args.output) elif args.command == "import": import_asrbe(args.input_json, args.output_file) if __name__ == "__main__": main()  
    • А вот были бы мы друзьями....          Выяснил, что мне дают.  Во первых по одной табле антидепрессанта, потом укол чего-то, что влияет на сосуды мозга, что-то связанное с кислородом, ну и наеоч дают микс из фена и циклобарбитала. А вчере я сказал, что всё равно плохо сплю, тогда мне перед миксом дали какую-то ж5ёлтенькую таблетку, а потом сразу микс.   Меня так срубило, сто я даже не помню успел ли я доесть ту сырную булочку, а чай я вышел походу себе на яйца, потому что проснулся в полномьа хуе и "обосанным"  Очень сильная вещь.
    • в 0xC размер блока указана. Скрипт видимо его не меняет у вас. Отсчёт начинается с 0x18, не скажу что прям во всех файлах. Но то что скинули так.
    • Привет, автор тут.
      Добавил русификатор на Birth by Sleep 
      https://steamcommunity.com/sharedfiles/filedetails/?id=3782280719
    • Всем привет, мне нужна помощь с увеличением длины текста в Shellshock 2: Blood Trails [BLES00408]. Текст хранится в файлах ASRBE, которые я прикрепляю. У меня есть скрипт, который извлекает текст, но если сделать его длиннее, игра вылетает. ASRBE
  • Изменения статусов

    • axe66  »  SerGEAnt

      здравствуйте. можете добавить на сайт раздел для игры She’s Leaving и русификатор к нему? и как и куда вам скинуть фото и сам русификатор?
      [h2] Версия: 1.0.1 (от 22.05.2026)
      Совместимость: для сборки 20909321 [/h2]
       Информация:
      Машинный перевод моделью gemma2:9b-instruct с несколькими этапами автоматической перепроверки (модель "самопроверялась") и финальными ручными правками.
      Это не финальная версия — по мере нахождения ошибок перевода будут выходить обновления.
      Известные нюансы:
      * Возможны неточности и ошибки в переводе.
      * Некоторые элементы интерфейса остались без перевода.
       Установка:
      1. Запустить Russifier.exe
      2. Нажать "Выбрать папку"
      3. Выбрать папку с игрой и нажать ОК
      4. Нажать "Установить"
      5. Дождаться завершения установки и закрыть программу.
      После установки запустите игру и наслаждайтесь!
      Если заметили ошибки или некорректные формулировки — оставляйте комментарии, будем исправлять!
       
      Автор: Serjik Sokolov История изменений:   Версия 1.0.1 от 22.05.2026 - Установщик теперь автоматически определяет корневую папку игры, даже если случайно выбрана вложенная папка.   Версия 1.0.0 от 03.12.2025 - Релиз
      · 0 ответов
    • Perfect End Strange  »  SerGEAnt

      Привет, озвучку для Silent Hill 4: The Room выпустил энтузиаст под ником Perfect End Strange, а вы написали совсем другую студию, пожалуйста, исправьте эту оплошность
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
    • NekoNya  »  Onzi

      https://www.dropbox.com/scl/fi/4xncxr2tqy77vz4644q08/text_RU_FINAL.json?rlkey=xckxss3jkql4gjmc1ah6qjb5e&st=k5ql651f&dl=0 
       
      Вот, то что вышло. Извинюсь, что зря говорил, что помогу (
      · 2 ответа
    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
  • Лучшие авторы


×