Skip to content

Latest commit

 

History

History
114 lines (94 loc) · 9.81 KB

NAMEMAP.md

File metadata and controls

114 lines (94 loc) · 9.81 KB

Раскладка названий по словарям pn_*

2026-09-28: у строки, которая ЦЕЛИКОМ является названием, слой не перекрывает запись категории — мод показывает категорию, даже английскую. Поэтому целое название переводится в своей категории, а английский возвращается отключением категории в «Файлах перевода». Слой отвечает за имена ВНУТРИ фраз. Раздел ниже «В слой идёт ВСЯКОЕ название» описывает расчёт, который в игре не подтвердился.

Выключатель «названия по-английски» работает так: игрок гасит словари pn_*, и на экране остаётся оригинал — но только если в общем словаре имя оставлено латиницей или строки там нет вовсе. Значит у каждого названия должно быть два свойства сразу:

  1. оно заведено в pn_* — иначе гасить нечего;
  2. общий словарь его не переводит — иначе гасить бесполезно.

Эта таблица отвечает на первый вопрос: в какой из словарей pn_* идёт класс названий. Класс строке проставляет tools/names.py scan по официальному API и по категории словаря — не по виду строки. Таблица версионируется, разбор нет: поменять раскладку — это правка одной клетки здесь и повторный scan.

Словарь = группа отключения в игре. Чем их больше, тем точнее игрок выбирает, что вернуть к английскому; чем меньше — тем короче список в оверлее.

класс словарь подпись в оверлее откуда знаем класс
items pn_items Имена: предметы /v2/items + категория item_names
skins pn_items Имена: предметы категория skins
minis pn_items Имена: предметы /v2/minis
colors pn_items Имена: предметы /v2/colors
currencies pn_items Имена: предметы /v2/currencies
outfits pn_items Имена: предметы /v2/outfits
gliders pn_items Имена: предметы /v2/gliders
mounts pn_items Имена: предметы категория mounts
novelties pn_items Имена: предметы /v2/novelties
finishers pn_items Имена: предметы /v2/finishers
mailcarriers pn_items Имена: предметы /v2/mailcarriers
skiffs pn_items Имена: предметы /v2/skiffs
jadebots pn_items Имена: предметы /v2/jadebots
itemstats pn_items Имена: предметы категория itemstats
skills pn_skills Имена: умения /v2/skills, /v2/specializations, категории skill_names, traits
masteries pn_skills Имена: умения /v2/masteries
achievements pn_achievements Имена: достижения категории achievement_names, achievement_categories, achievement_groups
titles pn_achievements Имена: достижения /v2/titles
creatures pn_names Имена: персонажи ранговый префикс (Champion / Veteran / Legendary / Elite)
npc_side pn_names Имена: персонажи имя слоя, упоминается в events / renown_hearts / zone_dialogue / npc_dialogue
pets pn_names Имена: персонажи /v2/pets
places pn_world_map Имена: карта мира /v2/maps, /v2/continents (секторы, ориентиры, точки)
wvw pn_world_map Имена: карта мира /v2/wvw/objectives, /v2/wvw/abilities, /v2/wvw/ranks
terms pn_terms Имена: термины слой pn_terms
guild pn_terms Имена: термины категория guild_upgrades, /v2/guild/permissions
pvp pn_terms Имена: термины /v2/pvp/ranks, /v2/pvp/heroes
npc_story — — имя слоя, упоминается только в сюжетных категориях
quests — — /v2/quests

Задания — не названия (решение 2026-09-28)

Категория wizardsvault раньше целиком считалась названиями и шла в pn_achievements. Но в ней лежат задания Хранилища Волшебника: «Defeat 25 Enemies», «Log In», «Complete the Pig Iron Quarry Jumping Puzzle». Их не гуглят, и выключатель «Имена: достижения» делал английским всё Хранилище целиком — вплоть до «Log In».

Решение мейнтейнера: описания заданий из слоя убраны, класса wizardsvault больше нет. Задание переводится в своей категории, а имя ВНУТРИ него идёт своим классом, как в любой фразе: «Победите 10 врагов в Horn of Maguuma» — Horn of Maguuma подставит pn_world_map.

Почему сюжет с прочерком

Договорено 2026-08-28: сюжетную кампанию не трогаем. Прочерк в колонке словаря значит «класс размечаем, но в дыры слоя не тянем» — имя остаётся тем, что оно есть сейчас, и names.py emit для него ничего не выпускает. Имена, которые звучат и в сюжете, и во второстепенном контенте, попадают в npc_side: их всё равно видно на табличках монстров в открытом мире.

В слой идёт ВСЯКОЕ название (решение 2026-09-01)

Раньше правило было уже: в слой шло только то, что встречается внутри чужой фразы или лежит вне именной категории. Довод был такой — строку, которая ЦЕЛИКОМ является названием, уже гасит своя категория (item_names, skill_names и прочие разведены dictsplit.py 2026-08-11), и копия в слое заставит игрока щёлкать два выключателя вместо одного.

Довод остаётся верным, но выбор сделан в пользу полноты: любое название должно быть видно и переключаться в одном месте. Цена — у названий с собственной группой отключения выключателей теперь два, и гасить надо оба.

Что по-прежнему НЕ идёт в слой:

  • строки с разметкой форм ([s], [pl:], [f:]) и плейсхолдерами — слой подставляет подстроку и отрисовать их не может;
  • строки длиннее 60 символов — это описания, попавшие в именную категорию по ошибке;
  • сюжетные классы npc_story и quests — у них в таблице выше прочерк.

Одно слово принимается, когда названием его назвал ИСТОЧНИК — API или категория словаря (Orr, Hoelbrak, Tyria). Улики по корпусу требуют двух слов: там одиночное слово почти всегда мусор вроде Boots, которым слой и засорён.

Новые словари заведены (2026-08-30)

pn_items (4 262), pn_skills (495), pn_achievements (1 111) заведены в dictionary.bin, подписи — в tools/dict_tool.py DICT_NAMES. Правило «новые словари не создаём» из CLAUDE.md §6 писалось про общие словари, где название и описание разводились по существующим группам; здесь другое — словарь слоя парный к своей категории: «Предметы: названия» гасит название предмета как строку, «Имена: предметы» — то же название внутри чужого текста. Один общий словарь имён такой пары не даёт: пришлось бы гасить и имена персонажей.

Перевод в них засеян машинно — из той же строки в общей категории. Вычитки не было, порядок строк в файлах pn/ по числу вхождений во фразы: с головы списка одна запись закрывает десятки вхождений.