diff --git a/HellionChat/Resources/HellionStrings.de.resx b/HellionChat/Resources/HellionStrings.de.resx
index 0729fa8..f1012f1 100644
--- a/HellionChat/Resources/HellionStrings.de.resx
+++ b/HellionChat/Resources/HellionStrings.de.resx
@@ -639,7 +639,7 @@
Allgemein
- Plugin-globale Einstellungen — Sprache, Eingabe, Audio, Performance.
+ Sprache, Eingabe, Audio und Performance.
Erscheinungsbild
@@ -657,25 +657,25 @@
Fenster
- Verhalten des Fensters — wann es da ist, ob es bewegt werden kann.
+ Wann das Fenster sichtbar ist und ob es sich bewegen lässt.
Chat
- Wie Nachrichten angezeigt werden — Tells, Vorschau, Verhalten, Emotes.
+ Tells, Vorschau, Nachrichten-Verhalten und Emotes.
Tabs
- Tab-Verwaltung — eigene Chat-Tabs anlegen und konfigurieren.
+ Eigene Chat-Tabs anlegen und konfigurieren.
Datenschutz
- Was darf gespeichert werden — Privacy-Filter pro Channel.
+ Privacy-Filter pro Channel und was gespeichert werden darf.
Datenbank
@@ -687,7 +687,7 @@
Information
- Über das Plugin — Version, Mission, Lizenz, Changelog.
+ Version, Mission, Lizenz und Changelog.
Themes
@@ -732,25 +732,25 @@
Theme & Layout
- Wie das Fenster aussieht — Theme, Rahmen, Zeitstempel-Style.
+ Theme, Fenster-Rahmen und Zeitstempel-Style.
Schriften & Farben
- Lesbarkeit — Schriftart, Schriftgröße, Chat-Farben pro Channel.
+ Schriftart, Schriftgröße und Chat-Farben pro Channel.
Daten-Verwaltung
- Was passiert mit gespeicherten Daten — Aufbewahrung, Aufräumen, Export, DB-Stats.
+ Aufbewahrung, Aufräumen, Export und Datenbank-Statistiken.
Integrationen
- Andere Dalamud-Plugins, mit denen HellionChat zusammenarbeitet. Auto-detected, mit Vorschau auf kommende Integrationen.
+ Andere Dalamud-Plugins, mit denen HellionChat zusammenarbeitet. Kommende Integrationen in der Vorschau.
Theme
diff --git a/HellionChat/Resources/HellionStrings.resx b/HellionChat/Resources/HellionStrings.resx
index c8071b2..d240515 100644
--- a/HellionChat/Resources/HellionStrings.resx
+++ b/HellionChat/Resources/HellionStrings.resx
@@ -19,28 +19,28 @@
Enable privacy filter
- When enabled, only messages from whitelisted channels are persisted to the database. Disabling restores the original behavior (everything except battle messages is stored).
+ When enabled, only messages from allowed channels are written to the database. When disabled, the default behaviour applies — everything except battle logs is stored.
- The filter only controls what is written to the local database. The chat log itself keeps showing every message live, disallowed channels just stop being saved. Use the channel hide options in your in-game chat tabs if you want to remove channels from the visible chat.
+ The filter only controls what is written to the local database. The chat log still shows every message live; excluded channels are simply no longer stored. If you also want to remove channels from the visible display, use the normal chat-tab filters in the game.
Privacy filter and whitelist
- Pick which channels are stored in the local database. Privacy-First default: only your own conversations. Use the buttons below to apply a preset.
+ Choose which channels are saved to the local database. Default follows data minimisation: only your own conversations. Use the buttons below to apply a preset.
- Privacy-First (recommended)
+ Data minimisation (recommended)
- Clear all
+ Deselect all
Select all
- Direct Messages
+ Direct messages
Party & Alliance
@@ -55,52 +55,52 @@
Cross-World Linkshells
- ExtraChat (Encrypted)
+ ExtraChat (encrypted)
- Public Chat (third-party data)
+ Public chat (third-party data)
- System & Game Logs
+ System & game logs
- Persist unknown channel types
+ Save unknown channel types
- Failsafe for ChatTypes added by future FFXIV patches that this plugin does not yet know about. Default OFF (Privacy-First). Turn ON if you want a complete log including future channels.
+ Safety net for ChatTypes added by future FFXIV patches that the plugin does not yet know about. Default is OFF (data minimisation). Enable if you want future channels to be fully logged as well.
Apply filter to existing database
- The privacy filter only applies to new messages. Use the cleanup below to retroactively remove already-stored messages that don't match your saved whitelist.
+ The privacy filter only affects new messages. The cleanup below lets you retroactively remove already-stored messages that do not match your saved whitelist.
- Cleanup uses your SAVED whitelist (Plugin.Config), not unsaved edits above. Click Save first if you want to apply your current edits.
+ Cleanup uses your SAVED whitelist (Plugin.Config), not unsaved changes above. Click Save first if you want your current changes to be applied.
- The manual sweep uses your SAVED retention policy, not the slider values above. Click Save first if you want the run to apply your current edits.
+ The manual run uses your SAVED retention policy, not the slider values above. Click Save first if you want the run to apply your current changes.
- Preview is out of date — your whitelist has changed since the last refresh. Click Refresh to recalculate.
+ Preview is stale — your whitelist has changed since the last refresh. Click Refresh to recalculate.
Refresh preview
- No preview yet. Click Refresh to compute the impact.
+ No preview yet. Click Refresh to calculate the impact.
Total stored messages: {0:N0}
- Will keep: {0:N0}
+ Keep: {0:N0}
- Will delete: {0:N0}
+ Delete: {0:N0}
- Per-channel breakdown
+ Breakdown by channel
[KEEP]
@@ -112,46 +112,46 @@
Apply current filter to database
- Ctrl+Shift: Hard-deletes {0:N0} messages, then runs VACUUM. Cannot be undone.
+ Ctrl+Shift: Permanently deletes {0:N0} messages and runs VACUUM afterwards. Cannot be undone.
- Cleanup running in background…
+ Cleanup running in the background…
- Failed to compute cleanup preview, see /xllog
+ Preview could not be calculated, see /xllog
- Privacy cleanup complete: {0:N0} messages removed.
+ Cleanup complete, {0:N0} messages removed.
- Privacy cleanup failed, see /xllog
+ Cleanup failed, see /xllog
Message retention
- Auto-delete messages after a per-channel retention window
+ Automatically delete messages past their channel retention window
- When enabled, messages older than the configured window are deleted on every plugin start (at most once per 24 hours). Off by default. The plugin never deletes history without your explicit consent.
+ When enabled, messages older than the configured window are deleted on each plugin start (at most once every 24 hours). Default is OFF — the plugin never deletes anything without your explicit consent.
Default retention (days, 0 = never)
- Applies to channels without an explicit override below.
+ Applies to channels that have no individual override below.
Reset overrides to spec defaults
- Clear all overrides
+ Remove all overrides
- Per-channel retention overrides
+ Retention per channel
- [override]
+ [custom]
[spec]
@@ -163,13 +163,13 @@
reset
- Apply retention policy now
+ Apply retention now
- Ctrl+Shift: runs the retention sweep immediately using the SAVED policy. Save your changes first.
+ Ctrl+Shift: Runs the retention cleanup immediately using the SAVED policy. Save your changes first.
- Retention sweep running in background…
+ Retention cleanup running in the background…
Last run: never
@@ -178,67 +178,67 @@
Last run: {0:yyyy-MM-dd HH:mm}
- Retention sweep complete: {0:N0} messages removed.
+ Retention cleanup complete, {0:N0} messages removed.
- Retention sweep failed, see /xllog
+ Retention cleanup failed, see /xllog
Hellion Chat — Welcome
- Pick a starting profile. You can change anything later under Settings → Privacy.
+ Choose a starting profile. You can adjust everything later under Settings → Privacy.
- Privacy-First (recommended)
+ Data minimisation (recommended)
- Only your own conversations are stored: Tells, Party, FC, Linkshells, Cross-World Linkshells, Alliance and ExtraChat. Public chat, NPC dialogue and system spam are dropped at the storage layer. Retention follows the spec defaults (Tells 365 days, own-conversation channels 90 days).
+ Only your own conversations are stored: tells, party, FC, linkshells, cross-world linkshells, alliance, and ExtraChat. Public chat, NPC dialogues, and system spam are discarded at the storage level. Retention follows spec defaults (tells 365 days, own conversation channels 90 days).
- Use Privacy-First
+ Apply data minimisation
Casual
- Privacy-First plus a 24-hour window for public chat (Say, Shout, Yell, both emote types, Novice Network). For RP players who want to look up the last scene without keeping public chat forever.
+ Data minimisation plus a 24-hour window for public chat (say, shout, yell, both emote types, novice network). For RP players who want to re-read the last scene without keeping public chat forever.
- Use Casual
+ Apply casual
- Full History
+ Full history
- Disables the privacy filter entirely. Stores everything except battle logs (the original full-history behavior). Retention is OFF, history grows forever.
+ Disables the privacy filter entirely. Stores everything except battle logs (the original full-history behaviour). Retention is OFF, so the history grows indefinitely.
- GDPR notice: storing third-party messages (Say/Shout/Yell of strangers, NPC dialogue with player names, etc.) for an unlimited time may exceed the personal/household exemption (Art. 2(2)(c)). Use this profile only if you have a clear reason to keep the full archive.
+ GDPR notice: Storing third-party messages (say/shout/yell from other players, NPC dialogues with player names, etc.) indefinitely may exceed the exemption for purely personal or household activities (Art. 2(2)(c)). Only use this profile if you have a clear reason to keep the full archive.
- Use Full History
+ Apply full history
Show wizard again
- Export (GDPR Art. 15 — right of access)
+ Export (GDPR Art. 15 — Right of access)
- Export stored messages to Markdown, JSON or CSV. Use this to fulfil a request for access from someone whose messages you have, or to take your own history with you.
+ Export stored messages as Markdown, JSON, or CSV. This lets you fulfil an access request from a person whose messages you have stored, or take your own history with you.
- Last X days (0 = all time)
+ Last X days (0 = no time limit)
Sender contains (optional, case-insensitive)
- Limit to channels
+ Restrict to channels
- (none selected = all stored channels)
+ (nothing selected = all stored channels)
Format
@@ -259,41 +259,41 @@
Save export
- Export running in background…
+ Export running in the background…
- Export complete: {0:N0} messages written to {1}
+ Export complete, {0:N0} messages written to {1}
- Export complete: no messages matched the filter.
+ Export complete, no message matched the filter.
Export failed, see /xllog
- Use the Hellion theme across all plugin windows
+ Use Hellion theme for all plugin windows
- Hellion Online Media palette of Arctic Cyan plus Ember Orange, applied across the chat log, settings, viewers and the wizard. Disable to fall back to the default Dalamud look.
+ Hellion Online Media palette of Arctic Cyan and Ember Orange, applied to the chat window, settings, viewer, and wizard. Disable to use the default Dalamud appearance.
Window opacity
- How opaque the plugin panes are. Lower values let the game shine through; form fields and dialogs stay opaque on top so they remain readable.
+ How opaque the plugin windows are. Lower values let the game show through; form fields and dialogs stay fully opaque and readable on top.
- Use the bundled Hellion font (Exo 2)
+ Use bundled Hellion font (Exo 2)
- Renders chat and UI in Exo 2 (SIL Open Font License 1.1) which ships with the plugin. Disable to fall back to whatever font you picked under Settings → Fonts.
+ Renders chat and UI in Exo 2 (SIL Open Font License 1.1), which ships with the plugin. Disable to fall back to the font selected under Settings → Font.
Maintainer
- I maintain Hellion Chat through Hellion Online Media. The website has the contact details for licensing, legal or business questions.
+ I maintain Hellion Chat through Hellion Online Media. Contact details for licensing, legal, or business inquiries are on the website.
Website:
@@ -303,76 +303,76 @@
Why this fork exists
- Hellion Chat is not trying to replace Chat 2. Chat 2 ships a complete chat experience with full history available for filtering, search and replay. That default is the right one for most users. This fork takes a different stance: a smaller default footprint, with extra knobs for users who want to keep less third-party chat on disk.
+ Hellion Chat is not meant to replace Chat 2. Chat 2 delivers a complete chat experience with a full history available for filtering, searching, and replay. That default is the right choice for most users. This fork takes a different approach: a smaller default footprint, with additional controls for users who prefer to keep less of other people's chat on disk.
- The reason I wanted that narrower default was personal. After two years on Chat 2 my database had grown past two million messages, most of them /say, /shout and /yell from strangers in Limsa. That data is exactly what makes Chat 2's full-history view powerful and most users are happy to keep it. For my own taste I wanted a smaller default. So I built this fork.
+ The desire for this narrower default was personal. After two years with Chat 2, my database had grown to over two million messages, the majority of them /say, /shout, and /yell from strangers in Limsa. That data is exactly what makes Chat 2's full history useful, and most users are happy to keep it. My own preference was for a smaller default. So I built this fork.
- I am not chasing a big audience and the fork is not in competition with Chat 2. The code is open under the same EUPL-1.2 licence as the upstream plugin. Infi, Anna or anyone else are welcome to read it, borrow ideas, ask questions, or ignore the project. All three are fine by me.
+ I am not targeting a large audience, and the fork is not in competition with Chat 2. The code is open under the same EUPL-1.2 licence as the original. Infi, Anna, or anyone else is welcome to look around, borrow ideas, ask questions, or simply ignore the project. All three are fine by me.
Built on Chat 2
- Hellion Chat is a fork of Chat 2 by Infi and Anna (ascclemens). The chat replacement window, the IPC integration, the rendering engine and the entire storage core come from upstream Chat 2.
+ Hellion Chat is a fork of Chat 2 by Infi and Anna (ascclemens). The chat-replacement window, IPC integration, render engine, and the entire storage core all come from the original.
- The webinterface is the only major piece I removed. It is built for remote access to chat from a second device, which is a different focus than the smaller default footprint this fork is built around. Aligning it with these defaults would have meant a substantial rebuild, so removing it was the cleaner path for this particular fork.
+ The web interface is the only major piece I removed. It is built for remote access to the chat from a second device — a different focus from the smaller default footprint this fork pursues. Adapting it to these defaults would have required significant rework, so removing it was the clean path for this particular fork.
Upstream repository:
- License
+ Licence
- Hellion Chat and Chat 2 both ship under the European Union Public Licence v1.2 (EUPL-1.2).
+ Hellion Chat and Chat 2 are both released under the European Union Public Licence v1.2 (EUPL-1.2).
- © 2023 to 2026, the Chat 2 authors (Infi, Anna and the upstream contributors).
+ © 2023 to 2026, the Chat 2 authors (Infi, Anna, and upstream contributors).
- © 2026 Hellion Online Media for the additions made in this fork.
+ © 2026 Hellion Online Media for the extensions in this fork.
- FINAL FANTASY XIV disclaimer
+ FINAL FANTASY XIV notice
FINAL FANTASY XIV © SQUARE ENIX CO., LTD. All rights reserved.
- Hellion Chat is an unofficial, fan-made plugin. It has no affiliation with Square Enix and is not endorsed, sponsored or approved by them.
+ Hellion Chat is an unofficial fan plugin. It is not affiliated with Square Enix and is neither endorsed, sponsored, nor approved by them.
- Localization
+ Localisation
- The German translations of the Hellion-specific strings come from me. Other languages are not provided yet.
+ The translations of the Hellion-specific strings were done by me. No additional languages are currently available.
- The translator list below covers the upstream Chat 2 strings on Crowdin. Those volunteers translated Chat 2, not the Hellion additions.
+ The translator list below belongs to the Chat 2 strings on Crowdin. These volunteers translated Chat 2, not the Hellion extensions.
Chat 2 community translators (upstream)
-
+
- Active Tells
+ Active tells
— Earlier conversations —
- History could not be loaded.
+ Could not load history.
- Marked as greeted. Click to remove the marker.
+ Marked as greeted. Click to remove the mark.
Mark as greeted.
@@ -383,62 +383,62 @@
Auto-Tell-Tabs
- Open a tab automatically for each tell partner
+ Automatically open a tab per conversation partner for every /tell
- When you receive or send a /tell, a temporary tab dedicated to that player is opened automatically. Tabs vanish on logout.
+ As soon as you receive or send a /tell, a temporary tab is automatically opened for that player. Tabs are removed on logout.
- Maximum number of auto tell tabs
+ Maximum number of auto-tell tabs
- When the limit is reached, greeted tabs with the oldest activity are dropped first. The change applies on the next /tell.
+ When the limit is reached, greeted tabs with the oldest activity are closed first. Changes take effect on the next /tell.
Compact display
- Show only a thin separator between persistent tabs and auto tell tabs, without the section header.
+ Shows only a thin separator between regular tabs and auto-tell tabs, without a section header.
- Show "mark as greeted" button
+ Show "Mark as greeted" button
- Adds a click-to-toggle button next to each auto tell tab to mark a partner as already greeted, dimming the tab name when set. Useful for club greeters tracking many parallel conversations; off by default.
+ Adds a click button next to each auto-tell tab to mark a conversation partner as already greeted — the tab name is then dimmed. Useful for club greeters managing many conversations in parallel. Off by default.
- Open new /tell tabs directly as pop-out
+ Open new /tell tabs directly as pop-outs
- When enabled, each newly created /tell tab opens directly as its own window. Closing the window returns the tab to the sidebar.
+ When active, each newly created /tell tab is immediately opened as its own window. Closing the window returns the tab to the sidebar.
- The number of preloaded tells is configured in the Privacy tab.
+ The number of preloaded tells can be configured in the Privacy tab.
- Heads-up: if XIV Messanger or a similar plugin is suppressing direct messages, turn its "Suppress DMs" option off so Hellion Chat can receive tells and open the auto tabs.
+ Note: If XIV Messenger or a similar plugin suppresses tells, disable the "Suppress DMs" option there so that Hellion Chat can receive tells and open the auto-tabs.
- Tell history in auto tabs
+ Tell history in auto-tabs
Number of preloaded tells
- How many earlier tell messages are loaded from the database when an auto tell tab is opened. 0 disables the preload.
+ How many previous tell messages are loaded from the database when an auto-tell tab is opened. 0 disables preloading.
- Only takes effect when auto tell tabs are enabled in the Chat tab.
+ Only takes effect when auto-tell tabs are enabled in the Chat tab.
-
+
- Settings reorganised
+ Settings restructured
- Hellion Chat 0.5.0 reorganised the settings into themed tabs. Your chat database and your message history stay untouched. Settings have been reset to defaults; if you want to pick a privacy profile again, the reopen button is in the Privacy tab. A backup of your previous config is at HellionChat.json.pre-v10-backup next to the live config file.
+ Hellion Chat 0.5.0 has restructured the settings into thematic tabs. Your chat database and message history remain unchanged. Settings have been reset to defaults. If you want to re-select your privacy profile, the Reopen button is in the Privacy tab. A backup of the previous config is located at HellionChat.json.pre-v10-backup next to the active config file.
@@ -455,30 +455,30 @@
Chat
- Tabs
+ Channels
Database
- Information
+ About
-
+
Input
- Audio & Notifications
+ Audio & notifications
Performance
- Language & Input Helpers
+ Language & input aids
-
+
Theme
@@ -486,32 +486,32 @@
Fonts
- Chat Colours
+ Chat colours
Timestamps
-
+
- Hide
+ Hiding
- Inactivity Hide
+ Inactivity hiding
- Window Frame
+ Window frame
Tooltips
-
+
Auto-Tell-Tabs
- Message Behaviour
+ Message behaviour
Preview
@@ -520,7 +520,7 @@
Emotes
-
+
Storage
@@ -531,9 +531,9 @@
Maintenance
-
+
- Version Info
+ Version info
About HellionChat
@@ -542,7 +542,7 @@
Changelog
-
+
System
@@ -553,36 +553,36 @@
Party
- Beginner
+ Novice
Linkshell
- If you use multiple linkshells, the maintainer recommends one tab per shell for cleaner readability. Duplicate this tab and narrow the channel selection per copy.
+ If you use multiple linkshells, the maintainer recommends one tab per shell for a cleaner overview. Duplicate the tab and restrict the channel selection in each copy.
- Tab-Icon
+ Tab icon
- FontAwesome-Glyph für die Sidebar. Default greift auf Tab-Name oder Channel-Typ.
+ FontAwesome glyph for the sidebar. Default falls back to the tab name or channel type.
- (Default-Mapping)
+ (Default mapping)
- Klassik (Chat 2 Default)
+ Classic (Chat 2 default)
- High-Contrast
+ High contrast
- Pastell
+ Pastel
- Dark-Mode-Tuned
+ Dark mode tuned
Hellion
@@ -594,22 +594,22 @@
Indigo Violet
- Tip: presets overwrite your current channel colours immediately.
+ Tip: Presets overwrite your current channel colours immediately.
Enable input in pop-outs
- Master switch: lets you type and send messages directly inside every pop-out window (including auto-tell tabs). Channel changes inside a pop-out apply globally just like in the main window; the text buffer and history cursor stay independent per pop-out.
+ Master switch: allows typing and sending directly in any pop-out window (including auto-tell tabs). Channel switching in a pop-out acts globally like in the main window; the text buffer and history cursor are independent per pop-out.
- Reset Window Position
+ Reset window position
- Snaps the chat window and every active pop-out back to the primary monitor's top-left corner. Useful when a window has drifted off-screen after a display layout change (monitor disconnected, resolution changed). The plugin also runs an automatic bounds check once per session — this button is the manual backup if anything still ends up unreachable.
+ Moves the chat window and all active pop-outs back to the top-left corner of the primary monitor. Useful when a window has ended up outside the visible area after a display layout change (monitor disconnected, resolution changed). The plugin also performs an automatic bounds check once per session; this button is the manual escape hatch if something still ends up unreachable.
- New in v0.6.0: you can type directly inside pop-out windows. Toggle the master switch in the window settings to enable it.
+ New in v0.6.0: You can now type directly in pop-outs. Enable the master switch in the Window settings.
Got it
@@ -618,19 +618,19 @@
Open window settings
- You can open any chat tab as its own window. Click the window icon in the top right or right-click the tab. New in v0.6.1: pop-out input is enabled by default (can be turned off under Settings → Window).
+ You can open any chat tab as its own window. Click the window icon in the top right or right-click the tab. New in v0.6.1: pop-out input is active by default (can be disabled under Settings → Window).
Got it
- Open Settings
+ Open settings
Hellion Chat cannot start while Chat 2 is loaded.
- Hellion Chat is a standalone fork of Chat 2. Both plugins replace the same in-game chat window and would conflict at runtime if loaded together.
+ Hellion Chat is a standalone fork of Chat 2. Both plugins replace the same chat window in the game and would conflict at runtime.
Disable Chat 2 in /xlplugins, then re-enable Hellion Chat.
@@ -639,7 +639,7 @@
General
- Plugin-wide settings — language, input, audio, performance.
+ Language, input, audio, and performance.
Appearance
@@ -657,25 +657,25 @@
Window
- Window behaviour — when it shows, whether it can move.
+ When the window is visible and whether it can be moved.
Chat
- How messages are displayed — tells, preview, behaviour, emotes.
+ Tells, preview, message behaviour, and emotes.
Tabs
- Tab management — create and configure your own chat tabs.
+ Create and configure custom chat tabs.
Privacy
- What's allowed to be stored — privacy filter per channel.
+ Privacy filter per channel and what may be stored.
Database
@@ -687,7 +687,7 @@
Information
- About the plugin — version, mission, license, changelog.
+ Version, mission, licence, and changelog.
Themes
@@ -705,16 +705,16 @@
Open themes folder
- Export active...
+ Export active…
- This theme suggests its own chat channel colours.
+ This theme suggests its own channel colours.
Apply
- Keep current
+ Keep
Privacy-First
@@ -723,55 +723,55 @@
Open
- Compact Density
+ Compact density
- Schaltet das Message-Layout vom Card-Row-Default zurück auf einzeilige `[HH:mm] Sender: Text` Zeilen.
+ Switches the message layout from the card-row default back to single-line `[HH:mm] Sender: Text` rows.
Theme & Layout
- How the window looks — theme, frame, timestamp style.
+ Theme, window frame, and timestamp style.
Fonts & Colours
- Readability — font, font size, per-channel chat colours.
+ Font, font size, and chat colours per channel.
- Data Management
+ Data management
- What happens to stored data — retention, cleanup, export, DB stats.
+ Retention, cleanup, export, and database statistics.
Integrations
- Other Dalamud plugins HellionChat reacts to. Auto-detected, with a "coming soon" preview of upcoming integrations.
+ Other Dalamud plugins that HellionChat works with. Upcoming integrations in preview.
Theme
- Window Style
+ Window style
- Timestamp Style
+ Timestamp style
- Window Transparency
+ Window transparency
- How transparent the window background is. Lower values let the game show through more. Tip: Dalamud's per-window menu (Hamburger in the title bar) gives you per-window overrides for opacity, background blur, click-through and pinning — those override this slider for that window.
+ How transparent the window background is. Lower values let more of the game show through. Tip: Dalamud's per-window menu (hamburger in the title bar) offers per-window overrides for opacity, background blur, click-through, and pinning — those take precedence over this slider for the respective window.
Fonts
- Chat Colours
+ Chat colours
Storage
@@ -786,22 +786,22 @@
Export
- Database Viewer
+ Database viewer
- Advanced (Shift+Click to open)
+ Advanced (Shift+click to open)
Behaviour
- Hellion Chat 1.2.1 reorganised the Settings menu and removed the legacy "Style override" option (made obsolete by the Themes system in 1.1.0). Your other settings are unchanged. Window opacity was migrated to Theme & Layout. A backup of your previous config is at pluginConfigs/HellionChat.json.pre-v16-backup next to the live HellionChat.json.
+ Hellion Chat 1.2.1 has reorganised the settings menu and removed the old "Override style" option (superseded by the theme system from 1.1.0). Your remaining settings are unchanged. Window transparency has been migrated to "Theme & Layout". A backup of the previous config is located at pluginConfigs/HellionChat.json.pre-v16-backup next to the active HellionChat.json.
Integrations
- Plugin integrations let HellionChat react to other installed Dalamud plugins. Each integration auto-detects its target and silently disables itself when the target plugin is not present.
+ Plugin integrations let HellionChat work together with other installed Dalamud plugins. Each integration automatically detects its target and silently disables itself when the target plugin is missing.
Honorific
@@ -813,13 +813,13 @@
Not installed
- Incompatible API version ({0} expected, {1}.{2} detected)
+ Incompatible API version ({0} expected, {1}.{2} found)
Show Honorific title in chat header
- Displays your custom title from Honorific in the header above the chat log, in your chosen colour.
+ Shows your custom title from Honorific in the header above the chat log, in the colour you have chosen.
Honorific on GitHub
@@ -831,48 +831,48 @@
Coming soon
- These integrations are on the roadmap. The settings for each appear automatically once the underlying plugin is wired up.
+ These integrations are on the roadmap. The settings will appear automatically once the respective plugin is connected.
Context menu actions
- Right-click a name in chat to jump to PlayerTrack, open the Lodestone profile, or compose a DM in one click.
+ Right-click a name in chat: jump to PlayerTrack, open the Lodestone profile, or compose a DM with one click.
Smart notifications (NotificationMaster)
- Route mentions and DMs through NotificationMaster for system toasts, taskbar flash, and per-channel sounds.
+ Mentions and DMs via NotificationMaster: system toasts, taskbar flash, and per-channel sounds.
RP status block (Moodles · LightlessClient)
- Show Moodles status icons and pair-badges inline next to chat names for richer roleplay context.
+ Show Moodles status icons and pair badges directly next to chat names for more roleplay context.
ExtraChat channels
- Host end-to-end-encrypted cross-datacenter linkshells natively in HellionChat.
+ Host end-to-end encrypted cross-datacenter linkshells natively in HellionChat.
- Quick DM button (XIVInstantMessenger)
+ Quick-DM button (XIVInstantMessenger)
- One-click DM compose without leaving the chat window.
+ Quick DM access directly from the chat window, one click.
Got an idea?
- Got an idea for a plugin integration that's not on this list? Hop on the Hellion Forge Discord and tell me. Community input drives the roadmap.
+ Got an idea for a plugin integration that is not on the list? Come to the Hellion Forge Discord and write to me. Community input shapes the roadmap.
Open Hellion Forge
- Honorific custom title
+ Custom title from Honorific
diff --git a/HellionChat/Ui/SettingsOverview.cs b/HellionChat/Ui/SettingsOverview.cs
index 1569f2c..29b6eb8 100644
--- a/HellionChat/Ui/SettingsOverview.cs
+++ b/HellionChat/Ui/SettingsOverview.cs
@@ -12,43 +12,59 @@ internal sealed class SettingsOverview
private readonly SettingsWindow _window;
// Card order matches the Tabs index in SettingsWindow 1:1.
- private static readonly (FontAwesomeIcon Icon, string TitleKey, string SubtextKey)[] CardDefs =
- [
- (FontAwesomeIcon.SlidersH, "Settings_Card_General_Title", "Settings_Card_General_Subtext"),
- (
- FontAwesomeIcon.Palette,
- "Settings_Card_ThemeAndLayout_Title",
- "Settings_Card_ThemeAndLayout_Subtext"
- ),
- (
- FontAwesomeIcon.Font,
- "Settings_Card_FontsAndColours_Title",
- "Settings_Card_FontsAndColours_Subtext"
- ),
- (
- FontAwesomeIcon.WindowMaximize,
- "Settings_Card_Window_Title",
- "Settings_Card_Window_Subtext"
- ),
- (FontAwesomeIcon.Comments, "Settings_Card_Chat_Title", "Settings_Card_Chat_Subtext"),
- (FontAwesomeIcon.FolderTree, "Settings_Card_Tabs_Title", "Settings_Card_Tabs_Subtext"),
- (FontAwesomeIcon.ShieldAlt, "Settings_Card_Privacy_Title", "Settings_Card_Privacy_Subtext"),
- (
- FontAwesomeIcon.Database,
- "Settings_Card_DataManagement_Title",
- "Settings_Card_DataManagement_Subtext"
- ),
- (
- FontAwesomeIcon.Plug,
- "Settings_Card_Integrations_Title",
- "Settings_Card_Integrations_Subtext"
- ),
- (
- FontAwesomeIcon.InfoCircle,
- "Settings_Card_Information_Title",
- "Settings_Card_Information_Subtext"
- ),
- ];
+ private static (FontAwesomeIcon Icon, string Title, string Subtext)[] BuildCardDefs() =>
+ [
+ (
+ FontAwesomeIcon.SlidersH,
+ HellionStrings.Settings_Card_General_Title,
+ HellionStrings.Settings_Card_General_Subtext
+ ),
+ (
+ FontAwesomeIcon.Palette,
+ HellionStrings.Settings_Card_ThemeAndLayout_Title,
+ HellionStrings.Settings_Card_ThemeAndLayout_Subtext
+ ),
+ (
+ FontAwesomeIcon.Font,
+ HellionStrings.Settings_Card_FontsAndColours_Title,
+ HellionStrings.Settings_Card_FontsAndColours_Subtext
+ ),
+ (
+ FontAwesomeIcon.WindowMaximize,
+ HellionStrings.Settings_Card_Window_Title,
+ HellionStrings.Settings_Card_Window_Subtext
+ ),
+ (
+ FontAwesomeIcon.Comments,
+ HellionStrings.Settings_Card_Chat_Title,
+ HellionStrings.Settings_Card_Chat_Subtext
+ ),
+ (
+ FontAwesomeIcon.FolderTree,
+ HellionStrings.Settings_Card_Tabs_Title,
+ HellionStrings.Settings_Card_Tabs_Subtext
+ ),
+ (
+ FontAwesomeIcon.ShieldAlt,
+ HellionStrings.Settings_Card_Privacy_Title,
+ HellionStrings.Settings_Card_Privacy_Subtext
+ ),
+ (
+ FontAwesomeIcon.Database,
+ HellionStrings.Settings_Card_DataManagement_Title,
+ HellionStrings.Settings_Card_DataManagement_Subtext
+ ),
+ (
+ FontAwesomeIcon.Plug,
+ HellionStrings.Settings_Card_Integrations_Title,
+ HellionStrings.Settings_Card_Integrations_Subtext
+ ),
+ (
+ FontAwesomeIcon.InfoCircle,
+ HellionStrings.Settings_Card_Information_Title,
+ HellionStrings.Settings_Card_Information_Subtext
+ ),
+ ];
public SettingsOverview(SettingsWindow window)
{
@@ -63,14 +79,13 @@ internal sealed class SettingsOverview
// 110f accommodates two-line subtexts; wrap width is matched in DrawCard.
var cardHeight = 110f;
- for (var i = 0; i < CardDefs.Length; i++)
+ var cardDefs = BuildCardDefs();
+ for (var i = 0; i < cardDefs.Length; i++)
{
- var (icon, titleKey, subtextKey) = CardDefs[i];
- var title = HellionStrings.ResourceManager.GetString(titleKey) ?? titleKey;
- var subtext = HellionStrings.ResourceManager.GetString(subtextKey) ?? subtextKey;
+ var (icon, title, subtext) = cardDefs[i];
DrawCard(i, icon, title, subtext, cardWidth, cardHeight);
- if ((i + 1) % columns != 0 && i != CardDefs.Length - 1)
+ if ((i + 1) % columns != 0 && i != cardDefs.Length - 1)
ImGui.SameLine();
}
}
diff --git a/HellionChat/Ui/SettingsTabs/ThemeAndLayout.cs b/HellionChat/Ui/SettingsTabs/ThemeAndLayout.cs
index a14cd0f..5e720b9 100644
--- a/HellionChat/Ui/SettingsTabs/ThemeAndLayout.cs
+++ b/HellionChat/Ui/SettingsTabs/ThemeAndLayout.cs
@@ -43,9 +43,9 @@ internal sealed class ThemeAndLayout : ISettingsTab
var registry = Plugin.ThemeRegistry;
var active = registry.Get(Mutable.Theme);
- var activeLabelTemplate =
- HellionStrings.ResourceManager.GetString("Settings_Themes_Active") ?? "Active: {0}";
- ImGui.TextUnformatted(string.Format(activeLabelTemplate, active.Name));
+ ImGui.TextUnformatted(
+ string.Format(HellionStrings.Settings_Themes_Active, active.Name)
+ );
using (ImRaii.PushColor(ImGuiCol.Text, 0xFF8FA3B5u))
ImGui.TextUnformatted(active.Author);
@@ -55,10 +55,7 @@ internal sealed class ThemeAndLayout : ISettingsTab
ImGui.Separator();
ImGui.Spacing();
- var builtInsLabel =
- HellionStrings.ResourceManager.GetString("Settings_Themes_BuiltIns")
- ?? "Built-in themes";
- ImGui.TextUnformatted(builtInsLabel);
+ ImGui.TextUnformatted(HellionStrings.Settings_Themes_BuiltIns);
ImGui.Spacing();
DrawThemeGrid(registry.AllBuiltIns(), active.Slug);
@@ -68,10 +65,7 @@ internal sealed class ThemeAndLayout : ISettingsTab
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
- var customLabel =
- HellionStrings.ResourceManager.GetString("Settings_Themes_Custom")
- ?? "Custom themes";
- ImGui.TextUnformatted(customLabel);
+ ImGui.TextUnformatted(HellionStrings.Settings_Themes_Custom);
ImGui.Spacing();
DrawThemeGrid(customs, active.Slug);
}
@@ -80,10 +74,7 @@ internal sealed class ThemeAndLayout : ISettingsTab
ImGui.Separator();
ImGui.Spacing();
- var openFolderLabel =
- HellionStrings.ResourceManager.GetString("Settings_Themes_OpenFolder")
- ?? "Open themes folder";
- if (ImGui.Button(openFolderLabel))
+ if (ImGui.Button(HellionStrings.Settings_Themes_OpenFolder))
{
var dir = Path.Combine(Plugin.Interface.ConfigDirectory.FullName, "themes");
Directory.CreateDirectory(dir);
@@ -91,10 +82,7 @@ internal sealed class ThemeAndLayout : ISettingsTab
}
ImGui.SameLine();
- var exportLabel =
- HellionStrings.ResourceManager.GetString("Settings_Themes_ExportActive")
- ?? "Export active...";
- if (ImGui.Button(exportLabel))
+ if (ImGui.Button(HellionStrings.Settings_Themes_ExportActive))
{
var dir = Path.Combine(Plugin.Interface.ConfigDirectory.FullName, "themes");
Directory.CreateDirectory(dir);
@@ -206,25 +194,19 @@ internal sealed class ThemeAndLayout : ISettingsTab
draw.AddRectFilled(origin, origin + new Vector2(width, height), bgFill, 4f);
draw.AddRect(origin, origin + new Vector2(width, height), border, 4f, ImDrawFlags.None, 1f);
- var hint =
- HellionStrings.ResourceManager.GetString("Settings_Themes_ApplyChatColors_Hint")
- ?? "This theme suggests its own chat channel colours.";
- var applyLabel =
- HellionStrings.ResourceManager.GetString("Settings_Themes_ApplyChatColors_Apply")
- ?? "Apply";
- var keepLabel =
- HellionStrings.ResourceManager.GetString("Settings_Themes_ApplyChatColors_Keep")
- ?? "Keep current";
-
var textColor = ColourUtil.RgbaToAbgr(active.Colors.TextPrimary);
- draw.AddText(origin + new Vector2(12f, 10f), textColor, hint);
+ draw.AddText(
+ origin + new Vector2(12f, 10f),
+ textColor,
+ HellionStrings.Settings_Themes_ApplyChatColors_Hint
+ );
using (ImRaii.PushColor(ImGuiCol.Button, active.Colors.Primary))
using (ImRaii.PushColor(ImGuiCol.ButtonHovered, active.Colors.PrimaryLight))
using (ImRaii.PushColor(ImGuiCol.ButtonActive, active.Colors.PrimaryDark))
{
ImGui.SetCursorScreenPos(origin + new Vector2(12f, 32f));
- if (ImGui.Button(applyLabel))
+ if (ImGui.Button(HellionStrings.Settings_Themes_ApplyChatColors_Apply))
{
foreach (var kvp in themeChatColors.Channels)
Mutable.ChatColours[kvp.Key] = kvp.Value;
@@ -233,7 +215,7 @@ internal sealed class ThemeAndLayout : ISettingsTab
}
ImGui.SameLine();
- if (ImGui.Button(keepLabel))
+ if (ImGui.Button(HellionStrings.Settings_Themes_ApplyChatColors_Keep))
{
_applyDismissedFor = active.Slug;
}