You are viewing a potentially older version of this package. View all versions.
Babareba-Tolmach-0.6.0 icon

Tolmach

Русский перевод 87 модов Valheim и субтитров игры. Меняется только отображаемый текст: сохранения, рецепты и конфиги модов не затрагиваются.

Date uploaded 3 weeks ago
Version 0.6.0
Download link Babareba-Tolmach-0.6.0.zip
Downloads 36
Dependency string Babareba-Tolmach-0.6.0

This mod requires the following mods to function

ValheimModding-JsonDotNET-13.0.4 icon
ValheimModding-JsonDotNET

Shared version 13.0.3 of Json.NET from Newtonsoft, net45 package for use in Valheim mods. Maintained by the ValheimModding team.

Preferred version: 13.0.4
denikson-BepInExPack_Valheim-5.4.2351 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2351

README

Tolmach

Книга рун с надписью «Толмач» на перилах у фьорда с драккаром

Russian translations for 87 Valheim mods and the game's closed captions. Client-side, display text only.

Tolmach (от старинного «толмач» — переводчик) переводит на русский 87 модов Valheim и субтитры самой игры. Другие пакеты перевода не нужны. Tolmach заполняет только отсутствующие и английские строки: русский текст самого мода или другого пакета перевода остаётся как есть, кроме нескольких явно отмеченных исправлений ошибок в нем.

Возможности

  • Переводит подписи интерфейса, подсказки, сообщения, названия предметов, существ и навыков модов из списка ниже, а также субтитры звуков игры.
  • Меняет только текст на экране. Сохранения, рецепты, предметы и конфиги модов не затрагиваются.
  • Работает только на клиенте: серверу и другим игрокам пакет не нужен.
  • Позволяет отключить перевод отдельного мода или весь пакет в настройках.

Установка

Нужны:

  • BepInExPack_Valheim и JsonDotNET — Gale доустанавливает их сам как зависимости пакета.

Пакет опубликован на Thunderstore: в Gale или r2modman найдите Tolmach в списке модов и установите, как любой мод Thunderstore.

Установить вручную можно ZIP Muratovnik-Tolmach-<версия>.zip со страницы релизов на GitHub. Рядом лежит SHA256SUMS для сверки хеша архива.

  • Gale: «Импорт» → «…локальный мод» и выберите ZIP, или перетащите ZIP в окно Gale. Повторный импорт новой версии заменяет прежнюю.
  • r2modman: Settings → Import local mod. Этот путь не проверялся.
  • Вручную: скопируйте содержимое папки plugins из архива в BepInEx/plugins/Tolmach/ так, чтобы Tolmach.dll и папка catalog лежали рядом.

Перед первым запуском имеет смысл сделать резервную копию профиля и миров.

Первый запуск

  1. Запустите Valheim через менеджер модов.
  2. В настройках игры выберите русский язык.
  3. Откройте окно или предмет переводимого мода: текст должен быть на русском.

Если перевода нет, откройте отчёт BepInEx/config/Tolmach.runtime.txt. Строка Russian active: True означает, что перевод включён. Ниже — строка по каждому найденному моду и причина пропуска для модов, которых нет в профиле.

Переводимые моды

Переводы сверены с версиями ниже. Если у мода другая версия, Tolmach переводит строки, которые в ней находит, а новые строки мода остаются английскими; предупреждение о версии и ненайденные строки видны в Tolmach.runtime.txt. Моды, которых нет в профиле, пропускаются.

Мод Версия Мод Версия
Advize-PlantEasily 2.2.2 Korppis-SolidHitboxes 1.0.8
Advize-PlantEverything 1.21.3 Korppis-Spearfishing 1.0.5
Alpus-Transmog 3.2.0 LJS-BossAdd 1.2.0
Azumatt-AzuAreaRepair 1.1.8 lnsanity-Culinary_Horizons 1.0.42
Azumatt-AzuAutoStore 3.1.6 M2Valheim-SocialSystem 1.0.1
Azumatt-AzuCraftyBoxes 1.8.26 Marlthon-AirAnimals 0.3.2
Azumatt-AzuWorkbenchTweaks 1.0.7 Marlthon-SeaAnimals 0.3.9
Azumatt-Build_Camera_Custom_Hammers_Edition 1.3.3 MaxFoxGaming-Better_Beehives 1.3.0
Azumatt-FirstPersonMode 1.3.12 MidnightMods-NetworkPerformanceSystem 1.11.0
Azumatt-PerfectPlacement 1.2.2 MidnightMods-ValheimInfiniteFire 1.4.0
Azumatt-Recipe_Description_Expansion 1.1.9 MilkMediaProductions-ExpertExplorer 1.7.0
Azumatt-Recycle_N_Reclaim 1.4.5 MSchmoecker-DynamicStoragePiles 0.8.1
Azumatt-SleepSkip 1.3.2 MSchmoecker-HammerTime 0.3.11
Balrond-balrond_amazing_nature 1.4.0 MSchmoecker-VNEI 0.17.6
Balrond-balrond_arsenal_reborn 0.1.6 Nextek-SpeedyPaths 1.0.9
Balrond-balrond_constructions 1.4.5 NickPappas-Location_Placement_Accelerator 1.0.24
Balrond-balrond_DualMastery 0.2.7 NightOfGames-Huginn_Map 1.0.5
Balrond-balrond_furniture_reborn 1.2.9 OdinPlus-CraftyCartsRemake 3.2.4
Balrond-balrond_humanoidRandomizer 1.6.0 OdinPlus-OdinsSteelworks 0.4.1
Balrond-balrond_lightkeeper 1.0.2 OdinPlus-QuickTeleport 2.0.4
Balrond-balrond_shipyard 1.7.3 OverDrive-SmelterUpgrades 1.1.5
BentoG-MissingPieces 2.3.2 Pumpkin-ValheimVisualEnhanced 0.5.18
blacks7ar-Fermenting 1.1.8 RandyKnapp-EpicLoot 0.14.13
blacks7ar-FoodDurationMultiplier 1.1.7 RandyKnapp-EquipmentAndQuickSlots 3.1.3
blacks7ar-OreMines 1.2.1 SephrinMods-VikingNPC_Continued 0.4.1
blacks7ar-RenegadeVikings 1.4.2 shudnal-MyLittleUI 1.2.26
blacks7ar-SeedBed 1.2.9 shudnal-TradersExtended 2.0.4
blacks7ar-SNEAKer 1.1.8 sighsorry-InventorySlots 1.5.15
blacks7ar-TorchesAreFires 1.1.0 sighsorry-UsefulRunestones 1.0.3
blacks7ar-WieldEquipmentWhileSwimming 1.1.4 Smoothbrain-ComfortTweaks 3.3.11
Cartur-Carturs_Feeding_Trough 1.0.0 Smoothbrain-CreatureLevelAndLootControl 4.6.4
Digitalroot-Digitalroots_GoldBars 1.2.34 Smoothbrain-Groups 1.2.12
DragonMotion-MoveBuildPieces 1.1.1 Smoothbrain-Mining 1.1.7
Dreanegade-Eternal_Legends 1.0.4 Smoothbrain-PassivePowers 1.1.5
Dreanegade-Hunter_Legacy 1.1.4 Smoothbrain-StaminaRegenerationFromFood 1.5.8
Dreanegade-Magic_Supremacy 3.1.2 SpikeHimself-XPortal 1.2.25
Goldenrevolver-Quick_Stack_Store_Sort_Trash_Restock 1.4.15 Therzie-Armory 1.4.2
hoskope-TakeAllCooked 1.1.0 Therzie-Warfare 1.9.4
ishid4-BetterArchery 2.0.2 trustworthy-MaxwellTheCat 0.0.1
JereKuusela-Infinity_Hammer 1.85.0 ValheimModding-Jotunn 2.30.2
JereKuusela-Server_devcommands 1.115.0 Vapok-AdventureBackpacks 2.2.2
JereKuusela-Structure_Tweaks 1.37.0 WackyMole-WackysDatabase 2.5.36
JereKuusela-World_Edit_Commands 1.78.0 warpalicious-More_World_Locations_AIO 5.1.5
Jumpingmushroom-PortalLines 0.8.0

Кроме модов, переводятся субтитры звуков самой игры (Valheim 1.0.16): в её русской локализации их нет.

У модов со своим русским переводом (Amazing Nature, Epic Loot, Culinary Horizons, Transmog, Quick Stack Store и другие) Tolmach дописывает только недостающие строки. Valheim Armory от MidnightMods и ImpactfulSkills переведены самими модами полностью; Armory от Therzie — другой мод, его переводит Tolmach. В полном русском MissingPieces Tolmach исправляет три строки с ошибками. У Recipe Description Expansion части комплекта в подсказке показываются названиями предметов из игры, а не внутренними именами.

Настройки

Файл BepInEx/config/muratovnik.tolmach.cfg появляется после первого запуска. Изменения применяются после перезапуска игры.

Параметр По умолчанию Назначение
General.Enabled true Включить весь пакет.
Modules.<мод> true Включить перевод отдельного мода.
Display.TranslateStandardMapLabels true Переводить на экране стандартные подписи меток карты (например, Camp). Сохранённое имя метки не меняется. Личная метка с таким же именем тоже отобразится переведённой.
Compatibility.OnlyAuditedVersions false Для модов других версий оставить только словарные переводы, без перевода строк в коде мода.

Ограничения

  • Пакет проверен автоматическими тестами с библиотеками игры и BepInEx. Проверка в самой игре на всех экранах ещё не проводилась.
  • Не переводятся: имена консольных команд и их аргументы, окно настроек F1, пользовательские конфиги и введённые игроком имена.
  • Строки, которые мод создаёт при запуске игры (описания улучшений кораблей, названия святилищ), появляются на языке, выбранном при запуске; после смены языка их обновит перезапуск.
  • Ошибки самих модов пакет не исправляет.

О непереведённых местах сообщайте в issues на GitHub. Укажите точную английскую строку, мод и его версию, экран и строки этого мода из Tolmach.runtime.txt.

Tolmach вдохновлён пакетом ObeliskRU. Перевод сделан заново с английских оригиналов модов.

Удаление

Закройте игру и удалите мод в менеджере (или папку BepInEx/plugins/Tolmach), затем запустите игру снова.

CHANGELOG

Изменения

0.6.0 (2026-09-29)

Highlights

Первый выпуск после 0.2.0 и первый на Thunderstore. Tolmach работает сам, без другого пакета русского перевода: 87 модов и субтитры игры, перевод с оригинального английского текста модов. Ниже изменения по этапам, от новых к старым.

Еще 18 модов

  • Переведены 16 модов:
    • Armory от Therzie: названия и описания доспехов, плаща и пояса, оружейная станция, бонусы комплектов, вкладка молота «Военное дело». Это не Valheim Armory от MidnightMods: у того свой полный русский;
    • MyLittleUI: статистика персонажа в главном меню и слова часов в режиме Fuzzy;
    • SmelterUpgrades: подсказки плавильни, печи и доменной печи, сообщения, улучшения в меню молота;
    • Infinity Hammer, Server devcommands, World Edit Commands: сообщения при строительстве, на HUD и на большой карте;
    • NetworkPerformanceSystem: сообщения при обрыве связи с сервером;
    • ValheimInfiniteFire и Transmog: подсказки у огня и сообщение о переключении внешнего вида;
    • Better Beehives, Spearfishing, Solid Hitboxes, Torches Are Fires, Wield Equipment While Swimming, Quick Teleport, Quick Stack Store: сообщение о несовпадении версий при входе на сервер (своего текста у этих модов нет или он уже переведен самим модом).
  • Recipe Description Expansion: в подсказке комплекта части теперь названы как в игре, а не внутренними именами вроде ArmorTrollLeatherChest. Комплект тоже назван как в игре: своим ключом или названием эффекта комплекта. Комплекты Armory там больше не теряют название из-за регистра ключа. Для этого у шаблонов Tolmach появились параметры item и itemSet.
  • MissingPieces переведен самим модом полностью, но в трех строках были ошибки, и Tolmach их исправляет: «Деревянная стена 1x1» (стояла кириллическая «х») и описания двух верхних стен (на обе было скопировано одно описание). Для таких исправлений в каталоге есть список replaceNative; остальной русский модов Tolmach по-прежнему только дополняет.
  • Текст методов, которые Harmony не может пропатчить (фильтр исключений, блок fault), теперь переводится там, где он передается методу показа: например, заголовки окон редактора настроек Traders Extended. Предупреждение UI patch skipped в журнале остается, только если строка каталога действительно осталась английской.
  • У Transmog и Quick Stack Store свой русский полный, Tolmach его не трогает.
  • Не переведено, подробности в docs/COVERAGE.md:
    • справка и вывод консольных команд инструментов JereKuusela, окно ConditionalConfigSync об отказе в подключении;
    • имена инструментов Infinity Hammer из его файла данных.
  • Проверки: 455 тестов NUnit, валидатор данных со схемой каталога, проверка пакета.

SocialSystem и новые версии модов

  • Переведен SocialSystem 1.0.1: друзья, группы и личные сообщения.

    • Окна «Общение» и «Группа», статусы («В сети», «Отошел», «Невидимый», «Не в сети»), подсказки кнопок и диалоги.
    • Приглашения, проверка готовности, сообщения на экране и в чате ([ЛС], [Группа]).
    • Справка команд dm, r и p в консоли.

    Мод хранит строки в своей таблице Jotunn, только на английском и немецком. Tolmach добавляет туда русскую и ничего не заменяет. Не переведена чит-команда socialsystem_fake: ею автор мода проверяет друзей и группы в одиночку.

  • В AdventureBackpacks 2.2.2, More_World_Locations_AIO 5.1.5 и WackysDatabase 2.5.36 снова переводятся строки из кода. Каталоги были сверены с прежними версиями этих модов, и, увидев другую версию, Tolmach пропускал перехват строк, а ключи словарей работали. В новых версиях все строки каталогов на прежних местах, словари и обучающие тексты не изменились, переводы те же.

  • Обновление мода больше не отключает его перевод. Если версия отличается от той, с которой сверен каталог, Tolmach переводит строки, которые находит, а новые строки мода остаются английскими. О версии и ненайденных строках он предупреждает в журнале и в Tolmach.runtime.txt. Параметр Compatibility.AllowOtherVersions заменен на Compatibility.OnlyAuditedVersions (по умолчанию выключен): он оставляет для других версий только словарные переводы, как раньше. Старую строку AllowOtherVersions из muratovnik.tolmach.cfg можно удалить.

  • Проверки: 380 тестов NUnit, валидатор данных со схемой каталога, проверка пакета.

По смыслу, а не по совпадению слов

  • Исправлены названия, которые 0.5.2 взял из игры только потому, что английское слово то же, хотя предмет у мода другой:
    • GoldBars: «Небольшая кучка монет»; «Гора монет» в игре — большой клад;
    • VNEI: вкладка «Рецепты», потому что в ней не только ремесло, но и добыча с существ, переплавка и готовка; фильтр «Все станции»: верстаки, инструменты, плавильни, существа;
    • Shipyard: «Просмоленная лестница 2 м» — это лестница, как на корабле, а не стремянка;
    • Amazing Nature: «Проверить» у гнезда шелкопрядов, как «Проверить пчел» у улья;
    • VikingNPC: «Хозяин» в подсказке над викингом.
  • Остальные правки 0.5.2 перепроверены по коду и ресурсам модов и остаются: «Пиры», «ремесленная стойка», «Залежи медной руды» (в моде Ore Deposit), «Рунная кузница», «Вкл.»/«Выкл.».
  • Каталог перевода с опечаткой в названии раздела или с пустым значением вместо таблицы теперь не загружается, и это видно в журнале. Раньше строки такого раздела молча оставались английскими.
  • Проверки: 373 теста NUnit, валидатор данных со схемой каталога, проверка пакета.

Как в игре

  • Переводы сверены с русской локализацией игры:
    • «ё» больше не пишется, как и в самой игре: «Черный лес», «Кремневая кирка». Имена собственные её сохраняют: «Бьёрн», «Ёрмунганд»;
    • между числом и единицей измерения неразрывный пробел: «2 м», «17 с»;
    • термины приведены к игровым:
      • Culinary Horizons: вкладка «Пиры» вместо «Банкеты»;
      • VNEI и Amazing Nature: «ремесленная стойка» вместо «станции»;
      • VNEI: «Чертежи» вместо «Рецепты»;
      • OreMines: «Залежи медной руды» вместо «Медная жила»;
      • GoldBars: «Небольшая гора монет»;
      • Amazing Nature: «Рунная кузница» и «Посмотреть» у гнезда шелкопрядов;
      • Shipyard: «Просмоленная стремянка»;
      • VikingNPC: «Владелец»;
      • Lightkeeper: «Вкл.»/«Выкл.».
  • TakeAllCooked: подсказка у стойки для готовки «Взять все готовое». Мод берёт её из своего конфига; если вы поменяли этот текст сами, он останется как есть.
  • Проверки: 371 тест NUnit, валидатор данных, подсказка TakeAllCooked на DLL самого мода вне игры.

Сверка покрытия

  • Все 68 модов сверены с перечнем строк, которые переводил другой пакет перевода. В части модов строки выпали при подготовке 0.4.0: строку, которую нельзя было заменять в одном месте, не перевели и во всех остальных. Теперь они переведены:
    • MoveBuildPieces: сообщение «Блокировка для перемещения потеряна»;
    • Huginn: группа меток «Портал» в фильтре карты, строки о залежах в выводе huginn.lookingat;
    • Location Placement Accelerator: режим «Ванильный» на экране расстановки локаций;
    • Amazing Nature: эффект «Провокация» и «Кремнёвая кирка»;
    • Arsenal Reborn: эффект «Благословение Одина».
  • Ключи, для которых мод не задаёт английского текста, но показывает их в игре, написаны по контексту:
    • Amazing Nature: названия шести скал («Ледяной утёс», «Скала Пепельных земель»), описание трофея лесного тролля, надпись на табличке мифического алтаря;
    • Arsenal Reborn: описание «Глубинного клеймора»;
    • VNEI: фильтр «Все станции».
  • BossAdd: в сообщении о порядке убийства цвет Массы костей теперь по-русски («Сначала убейте [красную] Массу костей!»). Раньше цвет оставался корейским.
  • Проверки: 368 тестов NUnit, валидатор данных, сверка новых литералов с IL модов. В игре эти изменения не проверялись.

Creature Level and Loot Control

  • Переведён Creature Level and Loot Control: таблички существ с эффектами, стихиями и особенностями боссов в роде существа («Огненная Летучая мышь», «Эйктюр Отражающий»), сообщения о росте уровня сектора и о призыве на помощь, уровень сектора на миникарте, кнопки редактора YAML, значения списков и все 69 настроек в окне F1, вывод консольных команд cllc. Всего 68 модов и субтитры игры.
  • У этого мода своя YAML-таблица переводов, которую он читает один раз при запуске. Tolmach загружается после него и подставляет русскую таблицу; если рядом с модом лежит свой Russian.yml, дописывает только недостающее. Имена секций и ключей в .cfg остаются английскими.
  • Исправлено по первой проверке 0.4.0 в игре (игра запускается, русский включается):
    • EquipmentAndQuickSlots: подписи слотов «Плечи» и «Оберег» (были Shoulders и Trinket);
    • CraftyCartsRemake привязан к установленной 3.2.4, повозки со станциями и их хранилища называются «Повозка (Верстак)» и «Хранилище: Повозка (Верстак)» вместо «Верстак Повозка Storage»;
    • AzuAutoStore: подсказки избранных предметов и ячеек («Ячейка в избранном…»);
    • метки карты: цели рунных камней UsefulRunestones без своего названия («Лагерь Хильдир» вместо Hildir_camp) и названия локаций ExpertExplorer у меток, сохранённых на английском («Погребальные комнаты» вместо Burial Chambers);
    • ложные предупреждения «Literal not replaced» у методов с перегрузками (AzuAutoStore, PlantEasily) и больше сотни предупреждений HarmonyX о поиске полей в журнале.
  • Проверки: 368 тестов NUnit, валидатор данных, сверка литералов с IL; таблички, сообщения и настройки CLLC проверены на DLL самого мода вне игры, патчи остальных модов — на их DLL. В игре CLLC не проверялся.

Ещё 25 модов

  • Переведены еще 25 модов, которые поддерживал другой пакет перевода: Balrond Amazing Nature, Arsenal Reborn, Constructions, Furniture Reborn, Dual Mastery и Lightkeeper, Passive Powers, OdinsSteelworks, Epic Loot, VNEI, Inventory Slots, Culinary Horizons, Hunter Legacy, Magic Supremacy, Eternal Legends, XPortal, TakeAllCooked, MoveBuildPieces, FoodDurationMultiplier, BossAdd, Huginn, FirstPersonMode, PerfectPlacement, Location Placement Accelerator и AzuWorkbenchTweaks. Всего 67 модов и субтитры игры.
  • У модов со своим русским переводом Tolmach дописывает только недостающие строки: ключи без перевода, вкладки строительства, сообщения ServerSync. Ключи, которые мод использует без английского текста (в игре виден [ключ]), переведены по месту использования.
  • ValheimArmory и ImpactfulSkills уже полностью переведены самими модами. Creature Level and Loot Control будет в следующей версии: ему нужен отдельный адаптер.
  • Литералы можно задавать и в типах без namespace (<global> в списке namespaces каталога).
  • Валидатор отклоняет ключ или сырую строку, которые в разных каталогах переведены по-разному.
  • Проверки: 341 тест NUnit, валидатор данных, сверка всех 630 литералов с IL самих DLL. В игре моды этой версии ещё не проверялись.

Самостоятельный пакет: 42 мода и субтитры игры

  • Tolmach работает сам по себе: другие пакеты русского перевода не нужны. Если такой пакет установлен, его строки по-прежнему не перезаписываются.
  • Новые моды: Jotunn (окно несовместимости модов при подключении, отмена и повтор действий, сброс навыков), AdventureBackpacks, AzuAreaRepair, PlantEasily и Balrond Humanoid Randomizer (варианты существ вроде «Грейдворф-страж», эффекты, атаки, оружие).
  • Субтитры звуков игры: 142 строки, которых нет в русской версии Valheim 1.0.16.
  • Расширены переводы: More World Locations AIO (порты, грузы и доставки, обучение в порту, святилища и благословения, путевые камни, торговцы, книги навыков), Balrond Shipyard (предметы, постройки, чертежи улучшений кораблей, записи Compendium), PlantEverything (названия и описания растений), AzuAutoStore, AzuCraftyBoxes и Build Camera (в том числе сообщения о несовпадении версий модов при подключении).
  • Исправлены переводы в 17 модах: термины приведены к русской версии игры (фулинги вместо гоблинов, Павшие, Матерь, Серокамень, повозка, рассекающий урон), исправлена грамматика сообщений DynamicStoragePiles, реплики NPC больше не зависят от пола.
  • Названия, описания и записи Compendium, которые моды хранят в объектах, переводятся при показе: сохранённые данные остаются на английском.
  • Вывод консольных команд переводится у модов, где он указан в docs/COVERAGE.md. Имена команд и аргументов остаются английскими.
  • Исправлен запуск игры вместе со StartupAccelerator: загрузка больше не останавливается. Tolmach не патчит методы с фильтром исключений (catch … when) и с блоком fault (итераторы с try/finally): HarmonyX 2.9 не может их правильно пересобрать, а StartupAccelerator применяет патчи позже, и ошибка останавливала игру. Поэтому заголовки окон редактора TradersExtended остаются английскими; содержимое окон переводится, как раньше.
  • Файлы каталогов называются tolmach-<мод>.json. Встроенный в SleepSkip и другие моды LocalizationManager принимал SleepSkip.json за свой файл перевода и падал.
  • При отложенных патчах в логе больше нет сотен ложных предупреждений «Literal not replaced»: проверка выполняется, когда транспайлер действительно отработал.
  • Проверки: 237 тестов NUnit, валидатор данных и сверка всех 318 литералов с IL установленных DLL. В самой игре пакет ещё не проверялся.

Features

  • translate SocialSystem and 18 more mods, correct three MissingPieces strings and show game names in the Recipe Description Expansion set block (ea3e9ac)
  • keep a mod's adapters when its version differs from the audited one (ea3e9ac)
  • reject catalogs that do not match their types (f48a3d5)
  • translate config texts that a mod reads in a named method (7c8df24)
  • apply Creature Level and Loot Control's own language table (a445acb)
  • allow literals in types without a namespace (f6a913f)
  • translate stored display text, add five mods and the game's captions (66b5328)
  • catalog: translate Creature Level and Loot Control (ae58edd)
  • catalog: translate 25 more mods (09ab47d)
  • package: replace the package icon with the book artwork (f98cb6b)
  • validation: check catalogs against a JSON Schema (01b098c)
  • validation: check the CLLC language table (a419d92)
  • validation: require one translation per key across catalogs (87813bd)

Bug Fixes

  • translate display calls of methods Harmony cannot rebuild (ea3e9ac)
  • patch only the overload that holds a literal (5145688)
  • leave methods with fault blocks unpatched (7e9c49c)
  • leave methods with exception filters unpatched (3a35f8e)
  • build: decode the package icon instead of reading its header (d585efd)
  • catalog: name seven objects by what they are in the mod (c1ecc3b)
  • catalog: follow the game's spelling, spacing and terms (8d73a7f)
  • catalog: add the strings found by the coverage audit (0a2c5df)
  • catalog: strings left English in the first 0.4.0 game session (22cb6a4)
  • catalog: name catalogs tolmach-<id>.json (69dd148)
  • catalog: use the game's Russian terms in 17 catalogs (8d0de49)

0.2.0 — новое имя: Tolmach

  • Пакет называется Tolmach («толмач» — старинное русское «переводчик»). Переводы и поведение не изменились: все 37 каталогов побайтно совпадают с 0.1.3.
  • Новый идентификатор плагина muratovnik.tolmach (был local.valheim.russianpack). DLL — Tolmach.dll, настройки — BepInEx/config/muratovnik.tolmach.cfg, отчёт — BepInEx/config/Tolmach.runtime.txt. Если у вас стоял локальный ValheimRussianPack, удалите его: у модов разные идентификаторы, и иначе загрузятся оба. Настройки из старого файла не переносятся.
  • Первый публичный выпуск. Исходники и релизы — github.com/Muratovnik/Tolmach. ZIP релиза собирается из закоммиченного кода, рядом публикуется SHA256SUMS.
  • Сборка: Build.ps1 берёт пути из переменных TOLMACH_* и принимает -OutputDirectory. Список хешей исходников SHA256SUMS.txt удалён: целостность исходников обеспечивает Git.

0.1.3 — первый собранный пакет для Thunderstore, Gale и r2modman

  • Впервые собрана и проверена DLL: 167 тестов NUnit с библиотеками игры, BepInEx и Harmony из профиля. Сборка выдаёт пакет Thunderstore, который импортируется в Gale и r2modman как локальный мод; зависимости BepInExPack и JsonDotNET указаны в манифесте.
  • Сообщение OreMines «Mines have been reset!» теперь переводится и в чате, и над головой: перехват перенесён на Chat.OnNewChatMessage. Прежний поиск Chat.AddString не находил метод, объявленный в Terminal.
  • Нативная регистрация через LocalizeKey больше не перезаписывает уже существующий чужой русский перевод ключа.
  • Перевод не записывается в отдельные «английские» экземпляры Localization, которые создают моды (например, SkillManager для имён разделов конфига).
  • Язык игры определяется её собственным GetSelectedLanguage (учитывает Steam Deck). Язык, выбранный игрой при первом запуске по локали системы, подхватывается при ближайшем обновлении, а не после перезапуска.
  • Метод мода, ссылающийся на отсутствующую необязательную зависимость, пропускается с предупреждением и больше не прерывает установку остальных адаптеров этого мода.
  • Удалено правило для Chat.AddString, которое никогда не срабатывало: вывод консольных команд модов по-прежнему не переводится.
  • Сборка: исправлен build-receipt.json (было ~57 МБ из-за сериализации PowerShell, с локальными путями). ZIP собирает Thunderstore CLI, затем проверяются формат пакета, раскладка для Gale и хеши DLL/каталогов. В проект добавлен nuget.config.
  • Собственный установщик Install.ps1/Install.cmd удалён: установку выполняет менеджер модов. Переводы и привязки 37 каталогов не изменены.

0.1.2 — стандартные механизмы и разделение проверки данных/исполнения

  • Сборка через SDK/MSBuild; один production-проект. Copy-only установка отделена.
  • NUnit/VSTest использует DLL production-проекта, без повторной компиляции src.
  • Удалены Python-переводчик, C#-лексер, собственный test Main и Reflect.Path.
  • Общая рефлексия и IL labels переданы Harmony. Нет сканирования 12 words-only модулей.
  • Jötunn public GetTranslations/AddTranslation, включая in string; Map не читается.
  • Глобальная регистрация через Translate/AddWord; защита существующего русского также при обратной регистрации нашего текста. Обновление кэша после native refresh.
  • Неуспешный rebind сбрасывает прежний runtime context; nullable входы display API оставляют оригинал вместо исключения. Ошибка отписки не останавливает очистку.
  • Пакетный путь сравнивает DLL/каталоги с тестовым выходом, не принимает пустой/пропущенный тестовый запуск. Старый ZIP отделяется от нового результата.
  • ZIP-установка проверяет разрешённые файлы и каталоги, дубликаты и размеры до записи профиля.
  • Все 37 каталогов сохранены без изменения; DLL и игровой запуск по-прежнему не получены.

История предшествующей поставки

Изменения

0.1.1 — исправления после ревью 0.1.0

Подтверждённые замечания предыдущего ревью

  • F2: BalrondShipyard.merged вместо имени файла без .merged.
  • F3: отдельное поле pluginVersion для всех 37 модулей; StructureTweaks 1.37. Отсутствующие build/revision трактуются как нули; ненулевая ревизия сравнивается.
  • F4: реальные подписи ExpertExplorer и семантический параметр стандартного имени в уведомлении о добавленной метке.
  • F5: только явно помеченные вложенные сообщения/названия полей переводятся повторно. Глубина вложения ограничена; остальные параметры непрозрачны.
  • F6: создание меток исключено из универсальных UI-перехватов. Отдельный адаптер меняет только подпись виджета; предусмотрено восстановление при смене языка и настройка отключения перевода стандартных меток.
  • F1 остаётся открытым: готовый бинарник не собран; среды исполнения нет.

Дополнительно найдено и исправлено при внесении правок

  • TradersExtended объединяет несколько ошибок. Добавлены 22 замены UI-литералов строго в BuildItemRowValidation, GetKeyValidation, GetIntersectionValidation. Идентификаторы и проверяемые значения не переводятся.
  • Ограничитель версии теперь применяется и к LegacyDisplay/OreMines chat-hook, которые иначе могли продолжать работать на неподтверждённой версии.
  • Старое сравнение версии игнорировало четвёртый компонент. Ненулевая revision теперь препятствует UI-патчам так же, как другой build/minor.
  • Отдельный адаптер постоянной подписи PortalLines отслеживает слабые ссылки и обновляет известный текст после переключения языка.
  • Собственный IlReader.cs заменён на Harmony.PatchProcessor.GetOriginalInstructions.
  • Добавлены диагностика фактических мест замены и отсутствующих ожидаемых литералов.
  • Производственный CatalogLoader используется тестами; убраны копии DTO из EngineStubs. Загрузка отвергает повторяющиеся JSON-ключи, пустые обязательные значения, несовпадающие плейсхолдеры и неизвестные правила перевода аргументов.
  • Установщик компилирует тот же код загрузчика/движка/адаптеров для тестов, проверяет версию созданной DLL, сохраняет идентичности зависимостей и build-receipt. Сторонние тестовые зависимости остаются только во временной папке.
  • Диагностика сбоя отката не скрывает его; native stderr собирается с проверкой exit code, а не принимается автоматически за завершённый журнал ошибок.

Все пункты относятся к изменённым исходникам и данным. Игровой запуск, фактическая компиляция и Windows-установка не подтверждены. Полный статус — в docs/REVIEW-0.1.1.md.