feat(settings): make eleven settings reachable again

Every field here has a reader in the running plugin and had no control
in the window. The config file was the only way to any of them.

HideChat is the one that mattered. It defaults to on, it suppresses the
game's own chat window, and the only other path to it is a right-click
item that sets it to true and can never set it back. Anyone who used
that item once had to edit JSON to get their chat back. The new toggle
reads and writes the same field, so the two agree instead of fighting.

The rest, by tab:

- Window: the three remaining hide conditions, the preview minimum that
  belongs to a toggle already on screen, native item tooltips and their
  offset.
- Chat: an emotes section holding the BetterTTV switch, the cache state,
  and an editor for the blocked-code list that has been in the config
  since v1.0 with nowhere to edit it. Blocking one code is a finer
  instrument than switching emotes off wholesale. Plus auto-translate
  sorting.
- General: the failed-tell warning. The game reports a failed tell in
  the log only, where somebody who is typing does not see it.
- Data & Privacy: battle messages. It decides whether battle lines are
  persisted at all, which makes it a storage decision rather than a chat
  one, and it sits in front of the whitelist rather than inside it.

MaxParallelPopouts stays out. It is read once in the pool's constructor,
the windows are registered once, and registering at runtime is
explicitly forbidden -- a slider would do nothing until a reload, which
is exactly the kind of decoration this cycle exists to remove.

Four new strings in all 25 languages; the other fifteen labels were
already translated and waiting.
This commit is contained in:
2026-08-18 22:40:54 +02:00
parent 1bb968211b
commit 75c4acd19a
30 changed files with 496 additions and 11 deletions
@@ -1193,4 +1193,16 @@
<data name="Settings_Telemetry_None" xml:space="preserve">
<value>원격 측정 정보를 수집하지 않습니다. 사용자나 사용 내역에 관한 어떤 정보도 전송하지 않습니다.</value>
</data>
<data name="Settings_Section_AutoTranslate" xml:space="preserve">
<value>정형문</value>
</data>
<data name="Settings_Emotes_Block" xml:space="preserve">
<value>차단</value>
</data>
<data name="Settings_NotifyFailedTell_Name" xml:space="preserve">
<value>귓속말이 전달되지 않으면 알림</value>
</data>
<data name="Settings_NotifyFailedTell_Description" xml:space="preserve">
<value>게임은 귓속말 실패를 로그에만 표시합니다. 이 설정은 대신 알림을 띄워, 오프라인이거나 다른 월드에 있는 상대에게 보낸 메시지를 놓치지 않게 합니다.</value>
</data>
</root>