feat(wizard): the profile cards and the welcome page speak the window's language

The cards were the last surface still drawn from ImGui defaults: four emoji on
stock child frames, sized to a fixed 2x2 grid that clipped the longer privacy
descriptions in half the supported languages.

They are tiles in the row language now -- a resting surface, an accent bar down
the left edge when chosen, a held hover over both, tracked caps for the heading.
The emoji are FontAwesome glyphs from the icon font the rest of the plugin
already uses. Each card measures its own height from its text and the pair in a
row takes the taller of the two, inside a scrolling frame, because cutting a
privacy choice off mid-sentence is not a thing this plugin gets to do.

Step three moves onto ToggleSwitch rows and a drawn theme field with a popup
built from PopupRow, using the transient widget overloads throughout: the
Func/Action pair saves on every click, and this step is staged until Finish.

The welcome page is opaque, unlike every other window here. Those are read at a
glance over the game; this one is read once and carries a privacy decision. The
fox sat on a hardcoded off-white rectangle that read as paper taped to the
window -- it is a disc now, tinted from the theme accent and only lightened as
far as the black linework needs, measured rather than set.

Three defects surfaced while doing it, all older than this work:

- The GDPR notice for full history had been translated into 25 languages and
  drawn nowhere since the four-step rewrite dropped it on 2026-05-18. It is on
  the card where the choice is made.
- Two cards claimed to be recommended: the badge sat on casual while the data
  minimisation heading still said "(recommended)" in every language. The suffix
  is gone, and the word it carried became the badge label.
- The wizard had no way back into it at all. /hellion wizard reopens it, and
  OnOpen resets the staged state so a second run cannot commit picks from a
  first one the user never saw.

The welcome text drops the fork framing: Chat 2 and this plugin have diverged
far enough that the codebases no longer line up, so it reads as history in a
muted line rather than as a justification up front. In its place is the notice
that plugins are a grey area in this game and do not belong in public channels.
Channel names in it come from Language.<lang>.resx per language, so the German
build says Sagen/Rufen/Schreien and the Polish one says Say/Yell/Shout, which is
what a Polish player actually sees on an English client.
This commit is contained in:
2026-08-19 21:50:21 +02:00
parent 5958bceb1c
commit 52237fda7e
29 changed files with 1012 additions and 331 deletions
+10 -4
View File
@@ -172,7 +172,7 @@
<value>시작 프로필을 선택하세요. 나중에 설정 → 개인정보에서 모두 조정할 수 있습니다.</value>
</data>
<data name="Wizard_Profile_PrivacyFirst_Heading" xml:space="preserve">
<value>데이터 최소화 (권장)</value>
<value>데이터 최소화</value>
</data>
<data name="Wizard_Profile_PrivacyFirst_Description" xml:space="preserve">
<value>자신의 대화만 저장됩니다. 귓속말, 파티, 자유부대, 링크셸, 서버 초월 링크셸, 연합 파티, ExtraChat이 포함됩니다. 공개 채팅, NPC 대화, 시스템 스팸은 저장 단계에서 제외됩니다. 보존 기간은 기본 스펙을 따릅니다 (귓속말 365일, 개인 대화 채널 90일).</value>
@@ -214,7 +214,13 @@
<value>Hellion Chat에 오신 것을 환영합니다</value>
</data>
<data name="Wizard_Step1_Subtitle" xml:space="preserve">
<value>Hellion Forge에서 만든 Chat 2 포크입니다. 개인정보 보호 기본값, 브랜드 일관성 있는 디자인, 그리고 몇 가지 편의 기능을 제공합니다.</value>
<value>Hellion Forge가 만든 채팅 창입니다. 기본값부터 개인정보 우선, 25개 언어 지원, 배치는 원하는 대로.</value>
</data>
<data name="Wizard_Step1_Heritage" xml:space="preserve">
<value>Hellion Chat은 Chat 2의 포크로 시작했습니다. 그 뒤로 둘은 코드베이스가 더 이상 호환되지 않을 만큼 멀어졌습니다.</value>
</data>
<data name="Wizard_Step1_PluginNotice" xml:space="preserve">
<value>파이널 판타지 XIV에서 플러그인은 회색 지대입니다. 스퀘어 에닉스 이용약관은 이를 다루지 않으며, 요시다 나오키는 공개적으로 홍보하지 말아 달라고 요청했습니다. 말하기, 떠들기, 외치기를 비롯한 모든 공개 채널에서는 이 주제를 꺼내지 마세요.</value>
</data>
<data name="Wizard_Step1_Footer_Hint" xml:space="preserve">
<value>세 가지 간단한 단계입니다. 나중에 설정 → Hellion Chat에서 모두 변경할 수 있습니다.</value>
@@ -228,8 +234,8 @@
<data name="Wizard_Step2_Title" xml:space="preserve">
<value>무엇을 저장할까요?</value>
</data>
<data name="Wizard_Step2_RecommendedFooter" xml:space="preserve">
<value>★ = 대부분의 플레이어에게 권장됩니다.</value>
<data name="Wizard_Profile_Recommended_Badge" xml:space="preserve">
<value>권장</value>
</data>
<data name="Wizard_Profile_Roleplay_Heading" xml:space="preserve">
<value>롤플레이</value>