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

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

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

80 Days

header.jpg

  • Метки: Приключение, Глубокий сюжет, Решения с последствиями, Выбери себе приключение, Стратегия
  • Платформы: PC iOS An MAC
  • Разработчик: Inkle Studios
  • Издатель: inkle Ltd
  • Дата выхода: 29 сентября 2015 года
  • Отзывы: 1100 отзывов, 91% положительных
1872 год, с элементами стимпанка. Филеас Фогг поспорил, что сможет обогнуть мир всего за 80 дней. Путешествуйте на дирижабле, подводной лодке, механическом верблюде, паровозе и многом другом. Соревнуйтесь с другими игроками и часами, которые никогда не останавливаются, в Игре 2014 года по версии журнала TIME.
Скриншоты
Изменено пользователем 0wn3df1x

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


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

Правильно оформи тему. Вверху ссылка на шаблон сообщения

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


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

Сразу расставлю все точки над I.

По признанию самих же разработчиков игру практически невозможно перевести из-за их замутов с технической частью.

Они просто разрабатывали её даже не задумываясь о возможности локализации. Поэтому там текстовые строки зачастую эквивалентны техническим. Поэтому, к примеру, во всех документах определённые тысячи слов должны совпадать между собой и т.д.

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


Ссылка на сообщение
Сразу расставлю все точки над I.

По признанию самих же разработчиков игру практически невозможно перевести из-за их замутов с технической частью.

Они просто разрабатывали её даже не задумываясь о возможности локализации. Поэтому там текстовые строки зачастую эквивалентны техническим. Поэтому, к примеру, во всех документах определённые тысячи слов должны совпадать между собой и т.д.

Очень жаль :sad:

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


Ссылка на сообщение
Очень жаль :sad:

На данный момент игру можно перевести.

Техническую часть возьму на себя, по вставке текста и его вытаскиванию.

Проблема в распознании Юникода в скриптах .json

Единственный вариант это закодировать символы под английский алфавит

Количество символов в строке может быть любое.

Если найдутся переводчики, то буду заливать на ноту в открытый доступ.

Текст присутствует везде, как в *.assets / level0 / mainData / *.dll

Бинарный, и в скриптах .json

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

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


Ссылка на сообщение
На данный момент игру можно перевести.

Техническую часть возьму на себя, по вставке текста и его вытаскиванию.

Проблема в распознании Юникода в скриптах .json

Единственный вариант это закодировать символы под английский алфавит

Количество символов в строке может быть любое.

Если найдутся переводчики, то буду заливать на ноту в открытый доступ.

Текст присутствует везде, как в *.assets / level0 / mainData / *.dll

Бинарный, и в скриптах .json

Здравствуйте! Спасибо вам за начинание. Надеюсь, что всё-таки перевод состоится.

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


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

Готов участвовать в переводе, правда, нотой никогда не пользовался и в саму игру не играл, по крайней мере, пока.

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


Ссылка на сообщение
В 15.10.2017 в 12:47, Tericonio сказал:

Если найдутся переводчики, то буду заливать на ноту в открытый доступ.

Если ещё актуально, то готов поучаствовать.

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


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

Верну немного рассуждение по теме.

Разработчики намутили прилично.

Подразобрал файл 80days.inkcontent — Первое что бросается, это строки созданные из движка одного сайта или на его основе.

Разберём первую строку которая появляется при первом диалоге:

LONDON, 1872

I have entered into the service of a new gentleman.

На первый взгляд строка вроде обычная, но, найдя слово “entered” в кавычках у черта на куличках, изменив одну букву игра не сломалась:

I have fntered into the service of a new gentleman.

“fntered”

Получаем текст который в другой части считывает это слово, но таких слов в кавычках нашёл аж 5 мест, и изменил все.

Дальше ещё хуже, где-то прописан не хеш файла — иначе бы файл при замене одного символа не воспроизводил начальный текст, а его размер в байтах или в байтах но в хеше, из-за чего происходит после увеличения размера не воспроизведение первого диалога.

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

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


Ссылка на сообщение
On 27.09.2023 at 7:19 PM, Tericonio said:

LONDON, 1872

I have entered into the service of a new gentleman.

Не знаю, нет там такого текста :)

Spoiler

VorL3d1SLNNitEAbYlPEAhWGfrhjuAU0QVlH57hc

 

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


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

@clarkkent 

Разобрался в файле 80days.txt и 80days.inkcontent.txt

Как работает 

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

    "initial": "storycrashed",
    "indexed-content": {
        "filename": "80days.inkcontent",
        "ranges": {
            "storycrashed": "0 150", c 0 и  150 символов в первой строке
            "repeat_visit_bank": "150 1294", с 150 символа и 1294 символов в строке
            "village_bank": "1444 97",
            "medium_bank": "1541 97",
            "town_bank": "1638 97",
            "withdrawal_options": "1735 4753",
            "bank_done": "6488 24",
            "begging": "6512 408",

  • Надо делать SDF шрифты через Unity
Изменено пользователем Tericonio

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


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

@Tericonio да, я шрифты уже сделал, но с nunito и Oswald есть проблемы. Осталось с ними разобраться, и русификатор готов :)

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


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

@clarkkent 

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

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import json
import os
import shutil

def recalc_and_save(content_file, index_file, output_dir="ru"):
    """
    Пересчитывает байты (UTF-8) в content_file и обновляет index_file
    Сохраняет в папку output_dir с оригинальными именами файлов
    """
    
    # Создаём папку (например, "ru")
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    # 1. Читаем файл контента как БАЙТЫ
    with open(content_file, 'rb') as f:
        raw_bytes = f.read()
    
    print(f"Файл контента: {len(raw_bytes)} байт (UTF-8)")
    
    # 2. Разбиваем на строки по \n в байтах
    lines_bytes = raw_bytes.split(b'\n')
    # Удаляем последнюю пустую строку если есть
    if lines_bytes[-1] == b'':
        lines_bytes.pop()
    
    print(f"Найдено строк (сцен): {len(lines_bytes)}")
    
    # 3. Читаем старый индекс
    with open(index_file, 'r', encoding='utf-8') as f:
        index_data = json.load(f)
    
    old_ranges = index_data.get("indexed-content", {}).get("ranges", {})
    scene_names = list(old_ranges.keys())
    
    print(f"Сцен в индексе: {len(scene_names)}")
    
    # 4. Пересчитываем ranges на основе реальных байтов
    new_ranges = {}
    current_offset = 0
    
    print("\n=== ПЕРЕСЧЁТ (В БАЙТАХ) ===")
    
    for i, name in enumerate(scene_names):
        if i >= len(lines_bytes):
            print(f"  ❌ Сцена '{name}' - нет строки")
            continue
        
        line_bytes = lines_bytes
        line_length = len(line_bytes) + 1  # +1 для \n
        
        new_ranges[name] = f"{current_offset} {line_length}"
        
        print(f"  '{name}': offset={current_offset}, length={line_length}")
        
        current_offset += line_length
    
    # 5. Обновляем индекс - имя файла ОСТАЁТСЯ ОРИГИНАЛЬНЫМ
    index_data["indexed-content"]["ranges"] = new_ranges
    index_data["indexed-content"]["filename"] = "80days.inkcontent"  # без .txt и без _ru
    
    # 6. Сохраняем индекс в папку output_dir с оригинальным именем
    output_index = os.path.join(output_dir, "80days.txt")
    with open(output_index, 'w', encoding='utf-8') as f:
        json.dump(index_data, f, ensure_ascii=False, indent='\t')
    
    print(f"\n[OK] Индекс сохранён: {output_index}")
    
    # 7. Копируем файл контента в папку output_dir с оригинальным именем
    output_content = os.path.join(output_dir, "80days.inkcontent.txt")
    with open(output_content, 'wb') as f:
        f.write(raw_bytes)
    
    print(f"[OK] Контент скопирован: {output_content} ({len(raw_bytes)} байт)")
    
    return new_ranges


# Запуск
if __name__ == "__main__":
    recalc_and_save("80days.inkcontent.txt", "80days.txt", "ru")

Сгенерировал скрипт для подсчёт символов

Извлечь файлы 80days.inkcontent.txt 80days.txt через UnityEX  и извлечётся в 80 Days_Data\Unity_Assets_Files\resources\

Потом запустить скрипт к примеру python Check_files.py где расположены эти файлы в папке resources\ после подсчёта создаст папку ru и в ней уже подсчитаны все суммы

Я пишу скрипты для символов которые есть в файле или в файлах потом собираю по группам к примеру 32-127,140 и на основе оригинального размера шрифта создаю SDF шрифт в Unity используя параметры извлечённые через UABEA c MonoBehaviour создав новый потом через UEBEA замещаю имя и все GUID 

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

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


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

@Tericonio я это всё уже сделал. Там просто есть жёлтый текст в диалогах, который собирается из кусков, и вот с русификатором эти куски на разной высоте располагаются.

Я думаю, что вечером уже добью это дело, ну или завтра, если сегодня не успею из-за другого русификатора. 

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

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


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

@clarkkent

Тут только весь SDF менять как mono так и texture, нужно либо поискать схожий шрифт и сравнить умляуты между собой по высоте чтобы были одинаковы, тогда не будут скакать 

Если структура файла не нарушена то должно всё быть в порядке

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: SerGEAnt
      Sign: Broken Kether

      Метки: Приключение, Визуальная новелла, Глубокий сюжет, Аниме, Казуальная игра Платформы: PC Разработчик: Nekonoke Издатель: Nekonoke Дата выхода: 26 октября 2026 года Отзывы Steam: 70 отзывов, 95% положительных

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

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

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

    • Я зайду к нему, пожалуй в субботу, поговорю. Единственно, я не знаю, вообще ли этот хрен теперь здесь проживает, как раньше, на постоянке, или живёт уже в другом месте, а сюда просто, типа приезжает иногда.  Я не видел его хрен знает сколько, до этого момента. Видел несколько раз, давно, около углового магазина он тёрся, с большими любителями прибухнуть в любое время суток.  Придётся народ местный про него расспрашивать, в крайнем случае, можно к следаку будет сходить и у него адрес проживания спросить. Я понимаю, что он права давать не имеет, но в такой ситуации может пойдёт на встречу, ведь сам же предложил пойти с ним на "мировую". Пусть подостынет за эти пару дней, может и правда договоримся. Я то уже жалею обо всей ситуации, просто не повезло мне. Блин, я теперь думать ни о чём другом не могу, постоянно гоняю все эти мысли.  Честно сказать, когда наступил следующий день, я был уверен, что пронесло , чел изменился может, ну или по крайней мере в ментовку точно не пошёл.  Но... Некоторые получается не меняются, и когда позвонили в дверь, я понял, что вот оно и прилетело. С такими людьми, всегда надо по худшему сценарию думать.  Я надеюсь на его любовь к бухлу и очень большую лень. Следак вот дал понять, что ему это ситуация (дело) не особо- то нужно. Это положительные моменты, как я их вижу. Но что у этого чёрта в голове я не знаю, и мне надо с ним поговорить, вот это я знаю и хочу сделать. Но вместе с тем и не хочу, не хочу я с ним блин разговаривать, хочется всё на самотёк пустить, только бы его рожу не видеть и не говорить с ним. Но я всё-таки поговорю, потому что хочется ещё и ситуацию попытаться уладить, и как можно скорей. В субботу утром к нему зайду. Или даже может не в субботу, а раньше. У меня уже голова от всего этого пухнет.  
    • https://torfiles.ru я тут скачивал
    • Попробовать зайти через другой браузер.
    • @mc-smail ситуация с знакой и телефоном странная. Не сомневаюсь в том, что история правдивая. Но ей же должны были назначить адвоката. Неужто он ей ничем помочь не смог? Или это вопрос из той же оперы, что адвокат "бесплатный" (им платят какую-то сумму за счёт государства, но она не сравнима с обычным гонораром). Да уж, бывают у нас разные казусы, увы. А вот тут можешь сильно ошибаться. Если тебя признают виновны, да ещё и по уголовной статье, он тебе может гражданский иск предъявить о компенсации морального вреда. Сумму ему небольшую присудят, но сам факт может иметь место. Судя по описанию, побои это потолок. Даже если чем-то бил. Он туда пешком ходил 100%. На такие вызовы полиция бы ехала до ночи. В том то и дело, ты сразу заяву накатал, как только тебя вызвали. А Питон, если сейчас напишет, это уже спустя два дня будет. 
    • @Dovnoblan, потому что весь тот 'перевод' был на BepInEx + AutoTranslator. Руками он от силы перевёл вступительную часть и меню, а всё остальное игроки, купившие русификатор, переводили на лету. Хотя в игре есть готовые языковые пакеты, которые можно было по-человечески перевести и заменить в ресурсах. Сделай он это нормально - не было бы ни софтлоков, ни багов... Но зачем париться, если и так сойдёт? Вот кому нужно русификатор от Ckyan.  
    • Не обязательно сразу. На меня тоже как-то один хмырь заяву накатал, что я ему лицо разбил в кровь. А тот синий в дрова с утра за руль полез, проезд перегородил, что не выехать из-за него. Я ему кричу, чтобы убирал своё ведро с дороги. Тот ко мне подходит, давай пальцы гнуть типа: “ты кому сигналишь, дядя”. Ну я из машины вышел и положил его прямо там. Правда тогда в 112 ещё позвонил насчёт бухого тела, чтобы наряд ГАИ вызвали, оформить. Но вроде так никто и не приехал. А у него ещё участковый какой-то знакомый похоже был, вызывает типа так и так серьёзно всё. Тот хотел деньжат с меня поднять за то, что я ему здоровье подпортил. Ну я и расписал на него заяву ответную, что так мол и так, сел пьяный за руль, а там дети в это время в школу как раз идут, мог бы какого-нибудь ребёнка задавить в таком состоянии. Больше после этого меня никто не беспокоил 
    • @Shnyashka Есть, на бусти чела с ником “masterkosta”,  я даже проходил с этим русификатором, он очень  проблемный и так часто игру крашит (хоть в описании русификатора и есть гайд как исправлять моменты) но он очень руинит весь кайф от процесса игры, легче реально английский выучить.

      Ну и русификатор доступен у него за подписку от 150 рублей, немного платно и не стоит того.
    • писать сразу нужно было… может конечно и примут, но доказать он не сможет теперь никак. как только существо рыпается — нужно сразу вызывать полицию, и даже неважно ударит или нет — накатать заяву про угрозы , как минимум. Сейчас такие времена , что если не ты вызовешь полицию — то вызовут по твою душу. - Летом ситуация была — шел мимо, смотрю сторож выгоняет подростков с территории частной стройки. Они там любят “яйца на камни” кинуть, рассасывать пиво, иногда дымят травой… в общем сторожу надоело — решил в этот раз троих выгнать. Пошумел, покричал, за рукав схватил и потянул За территорию., малолетки на месте , сразу же , вызвали полицию и накатали заяву. Мол угрожал , бил (один снимал на телефон — там видно только , как сторож тянет за рукав — я в наглую подошел и посмотрел, гулял мимо с собакой...), злой вообще — полиция приехала, пошли составлять акт и т.п. хз чем закончилось , Но суть в том, что лучше вызвать чем не вызывать.
    • @NoctisLeonhart Прошу прощения,я не понял как пользоваться Makaikit.Я скачал с Github архив “makaikit-master.zip”,но там ни одной .dll нет.Можно мне в личку подробную инструкцию по скачиванию и установке этого мод-менеджера? Пардон,моя вина.Не увидел кнопку справа.Всё нашёл,спасибо за перевод!
  • Изменения статусов

    • edifiei

      «Как говорил мой дед — делай добро и пихай его в гнома»
      · 0 ответов
    • goosemose  »  Orionus

      Здраствуйте
      Хотел спросить за руссификатор для Dragon Quest 3, есть ли бесплатный для пк? Или только платный недавно купил ее в стиме, думал что на пк есть руссификатор, уже некоторое время ищу и нахожу либу пустые файлы либо платные, хотя по коментариям вроде видно что был на пк бесплатный перевод.
      Подскажите пожалуйста.
       
      · 0 ответов
    • 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 - Релиз
      · 1 ответ
    • Perfect End Strange  »  SerGEAnt

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


×