07470f527e
Move from a local color stack inside Hellion-only surfaces to a
single push wrapping Plugin.Draw, so chat log, settings,
viewers, the file dialog and the wizard all render under the same
palette. The local Push() helper stays for explicit use, but the
two existing call sites (Privacy tab, FirstRunWizard) now drop
their local pushes — the global stack already covers them and
double-pushing would shift colors on every frame.
Palette grew from a single cyan accent into a three-tone HUD set:
Primary cyan-teal (#00B8D4) → buttons, checkboxes, slider grabs,
separator hover/active.
Secondary industrial amber → scrollbar grab and resize-grip
(#FFB300) hover/active highlights.
Tertiary slate violet → active title bars and active tabs
(#7B61FF) so identity beats out the cyan
accent without competing with it on
action controls.
Surfaces are deep slate (#0E1A20 windows, #102027 children, #162831
frames) with steel borders (#37474F). Style variables flatten the
default Dalamud rounding into something more geometric: 4 px window
rounding, 2 px frame/grab/tab/scrollbar, 1 px borders.
A new Configuration.HellionThemeEnabled (default true) and a
matching Appearance section at the top of the Privacy tab let users
turn the whole thing off and fall back to the Dalamud default look.
The flag is checked once per frame in Plugin.Draw — `using
IDisposable? _ = ... ? PushGlobal() : null` — so disabling has zero
overhead beyond a bool check.
277 lines
12 KiB
XML
277 lines
12 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<root>
|
|
<resheader name="resmimetype">
|
|
<value>text/microsoft-resx</value>
|
|
</resheader>
|
|
<resheader name="version">
|
|
<value>2.0</value>
|
|
</resheader>
|
|
<resheader name="reader">
|
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
</resheader>
|
|
<resheader name="writer">
|
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
</resheader>
|
|
<data name="Privacy_Tab_Title" xml:space="preserve">
|
|
<value>Privacy</value>
|
|
</data>
|
|
<data name="Privacy_FilterEnabled_Name" xml:space="preserve">
|
|
<value>Enable privacy filter</value>
|
|
</data>
|
|
<data name="Privacy_FilterEnabled_Description" xml:space="preserve">
|
|
<value>When enabled, only messages from whitelisted channels are persisted to the database. Disabling restores upstream ChatTwo behavior (everything except battle messages is stored).</value>
|
|
</data>
|
|
<data name="Privacy_Whitelist_Help" xml:space="preserve">
|
|
<value>Pick which channels are stored in the local database. Privacy-First default: only your own conversations. Use the buttons below to apply a preset.</value>
|
|
</data>
|
|
<data name="Privacy_Preset_PrivacyFirst" xml:space="preserve">
|
|
<value>Privacy-First (recommended)</value>
|
|
</data>
|
|
<data name="Privacy_Preset_ClearAll" xml:space="preserve">
|
|
<value>Clear all</value>
|
|
</data>
|
|
<data name="Privacy_Preset_SelectAll" xml:space="preserve">
|
|
<value>Select all</value>
|
|
</data>
|
|
<data name="Privacy_Group_DirectMessages" xml:space="preserve">
|
|
<value>Direct Messages</value>
|
|
</data>
|
|
<data name="Privacy_Group_PartyAlliance" xml:space="preserve">
|
|
<value>Party & Alliance</value>
|
|
</data>
|
|
<data name="Privacy_Group_FreeCompany" xml:space="preserve">
|
|
<value>Free Company</value>
|
|
</data>
|
|
<data name="Privacy_Group_Linkshells" xml:space="preserve">
|
|
<value>Linkshells</value>
|
|
</data>
|
|
<data name="Privacy_Group_CrossLinkshells" xml:space="preserve">
|
|
<value>Cross-World Linkshells</value>
|
|
</data>
|
|
<data name="Privacy_Group_ExtraChat" xml:space="preserve">
|
|
<value>ExtraChat (Encrypted)</value>
|
|
</data>
|
|
<data name="Privacy_Group_PublicChat" xml:space="preserve">
|
|
<value>Public Chat (third-party data)</value>
|
|
</data>
|
|
<data name="Privacy_Group_SystemLogs" xml:space="preserve">
|
|
<value>System & Game Logs</value>
|
|
</data>
|
|
<data name="Privacy_PersistUnknown_Name" xml:space="preserve">
|
|
<value>Persist unknown channel types</value>
|
|
</data>
|
|
<data name="Privacy_PersistUnknown_Description" xml:space="preserve">
|
|
<value>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.</value>
|
|
</data>
|
|
<data name="Cleanup_Heading" xml:space="preserve">
|
|
<value>Apply filter to existing database</value>
|
|
</data>
|
|
<data name="Cleanup_Help_Intro" xml:space="preserve">
|
|
<value>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.</value>
|
|
</data>
|
|
<data name="Cleanup_Help_SavedNote" xml:space="preserve">
|
|
<value>Cleanup uses your SAVED whitelist (Plugin.Config), not unsaved edits above. Click Save first if you want to apply your current edits.</value>
|
|
</data>
|
|
<data name="Cleanup_RefreshPreview" xml:space="preserve">
|
|
<value>Refresh preview</value>
|
|
</data>
|
|
<data name="Cleanup_NoPreview" xml:space="preserve">
|
|
<value>No preview yet. Click Refresh to compute the impact.</value>
|
|
</data>
|
|
<data name="Cleanup_TotalStored" xml:space="preserve">
|
|
<value>Total stored messages: {0:N0}</value>
|
|
</data>
|
|
<data name="Cleanup_WillKeep" xml:space="preserve">
|
|
<value>Will keep: {0:N0}</value>
|
|
</data>
|
|
<data name="Cleanup_WillDelete" xml:space="preserve">
|
|
<value>Will delete: {0:N0}</value>
|
|
</data>
|
|
<data name="Cleanup_Breakdown" xml:space="preserve">
|
|
<value>Per-channel breakdown</value>
|
|
</data>
|
|
<data name="Cleanup_Marker_Keep" xml:space="preserve">
|
|
<value>[KEEP] </value>
|
|
</data>
|
|
<data name="Cleanup_Marker_Delete" xml:space="preserve">
|
|
<value>[DELETE]</value>
|
|
</data>
|
|
<data name="Cleanup_Apply_Label" xml:space="preserve">
|
|
<value>Apply current filter to database</value>
|
|
</data>
|
|
<data name="Cleanup_Apply_Tooltip" xml:space="preserve">
|
|
<value>Ctrl+Shift: Hard-deletes {0:N0} messages, then runs VACUUM. Cannot be undone.</value>
|
|
</data>
|
|
<data name="Cleanup_Running" xml:space="preserve">
|
|
<value>Cleanup running in background…</value>
|
|
</data>
|
|
<data name="Cleanup_PreviewError" xml:space="preserve">
|
|
<value>Failed to compute cleanup preview, see /xllog</value>
|
|
</data>
|
|
<data name="Cleanup_Success" xml:space="preserve">
|
|
<value>Privacy cleanup complete: {0:N0} messages removed.</value>
|
|
</data>
|
|
<data name="Cleanup_Error" xml:space="preserve">
|
|
<value>Privacy cleanup failed, see /xllog</value>
|
|
</data>
|
|
<data name="Retention_Heading" xml:space="preserve">
|
|
<value>Message retention</value>
|
|
</data>
|
|
<data name="Retention_Enabled_Name" xml:space="preserve">
|
|
<value>Auto-delete messages after a per-channel retention window</value>
|
|
</data>
|
|
<data name="Retention_Enabled_Description" xml:space="preserve">
|
|
<value>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.</value>
|
|
</data>
|
|
<data name="Retention_Default_Label" xml:space="preserve">
|
|
<value>Default retention (days, 0 = never)</value>
|
|
</data>
|
|
<data name="Retention_Default_Help" xml:space="preserve">
|
|
<value>Applies to channels without an explicit override below.</value>
|
|
</data>
|
|
<data name="Retention_Reset_Spec" xml:space="preserve">
|
|
<value>Reset overrides to spec defaults</value>
|
|
</data>
|
|
<data name="Retention_Clear_Overrides" xml:space="preserve">
|
|
<value>Clear all overrides</value>
|
|
</data>
|
|
<data name="Retention_Tree_Heading" xml:space="preserve">
|
|
<value>Per-channel retention overrides</value>
|
|
</data>
|
|
<data name="Retention_Tag_Override" xml:space="preserve">
|
|
<value>[override]</value>
|
|
</data>
|
|
<data name="Retention_Tag_Spec" xml:space="preserve">
|
|
<value>[spec]</value>
|
|
</data>
|
|
<data name="Retention_Tag_Global" xml:space="preserve">
|
|
<value>[global]</value>
|
|
</data>
|
|
<data name="Retention_Reset_Button" xml:space="preserve">
|
|
<value>reset</value>
|
|
</data>
|
|
<data name="Retention_Apply_Label" xml:space="preserve">
|
|
<value>Apply retention policy now</value>
|
|
</data>
|
|
<data name="Retention_Apply_Tooltip" xml:space="preserve">
|
|
<value>Ctrl+Shift: runs the retention sweep immediately using the SAVED policy. Save your changes first.</value>
|
|
</data>
|
|
<data name="Retention_Running" xml:space="preserve">
|
|
<value>Retention sweep running in background…</value>
|
|
</data>
|
|
<data name="Retention_LastRun_Never" xml:space="preserve">
|
|
<value>Last run: never</value>
|
|
</data>
|
|
<data name="Retention_LastRun_At" xml:space="preserve">
|
|
<value>Last run: {0:yyyy-MM-dd HH:mm}</value>
|
|
</data>
|
|
<data name="Retention_Success" xml:space="preserve">
|
|
<value>Retention sweep complete: {0:N0} messages removed.</value>
|
|
</data>
|
|
<data name="Retention_Error" xml:space="preserve">
|
|
<value>Retention sweep failed, see /xllog</value>
|
|
</data>
|
|
<data name="Migration_Notification_Title" xml:space="preserve">
|
|
<value>Hellion Chat</value>
|
|
</data>
|
|
<data name="Migration_Notification_Content" xml:space="preserve">
|
|
<value>Privacy filter activated by default. Settings → Privacy to adjust.</value>
|
|
</data>
|
|
<data name="Wizard_Title" xml:space="preserve">
|
|
<value>Hellion Chat — Welcome</value>
|
|
</data>
|
|
<data name="Wizard_Intro" xml:space="preserve">
|
|
<value>Pick a starting profile. You can change anything later under Settings → Privacy.</value>
|
|
</data>
|
|
<data name="Wizard_Profile_PrivacyFirst_Heading" xml:space="preserve">
|
|
<value>Privacy-First (recommended)</value>
|
|
</data>
|
|
<data name="Wizard_Profile_PrivacyFirst_Description" xml:space="preserve">
|
|
<value>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).</value>
|
|
</data>
|
|
<data name="Wizard_Profile_PrivacyFirst_Apply" xml:space="preserve">
|
|
<value>Use Privacy-First</value>
|
|
</data>
|
|
<data name="Wizard_Profile_Casual_Heading" xml:space="preserve">
|
|
<value>Casual</value>
|
|
</data>
|
|
<data name="Wizard_Profile_Casual_Description" xml:space="preserve">
|
|
<value>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.</value>
|
|
</data>
|
|
<data name="Wizard_Profile_Casual_Apply" xml:space="preserve">
|
|
<value>Use Casual</value>
|
|
</data>
|
|
<data name="Wizard_Profile_FullHistory_Heading" xml:space="preserve">
|
|
<value>Full History</value>
|
|
</data>
|
|
<data name="Wizard_Profile_FullHistory_Description" xml:space="preserve">
|
|
<value>Disables the privacy filter entirely. Stores everything except battle logs, just like upstream Chat 2. Retention is OFF, history grows forever.</value>
|
|
</data>
|
|
<data name="Wizard_Profile_FullHistory_GdprWarning" xml:space="preserve">
|
|
<value>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.</value>
|
|
</data>
|
|
<data name="Wizard_Profile_FullHistory_Apply" xml:space="preserve">
|
|
<value>Use Full History</value>
|
|
</data>
|
|
<data name="Wizard_Reopen_Button" xml:space="preserve">
|
|
<value>Show wizard again</value>
|
|
</data>
|
|
<data name="Export_Heading" xml:space="preserve">
|
|
<value>Export (GDPR Art. 15 — right of access)</value>
|
|
</data>
|
|
<data name="Export_Help" xml:space="preserve">
|
|
<value>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.</value>
|
|
</data>
|
|
<data name="Export_Range_Label" xml:space="preserve">
|
|
<value>Last X days (0 = all time)</value>
|
|
</data>
|
|
<data name="Export_Sender_Label" xml:space="preserve">
|
|
<value>Sender contains (optional, case-insensitive)</value>
|
|
</data>
|
|
<data name="Export_Channels_Heading" xml:space="preserve">
|
|
<value>Limit to channels</value>
|
|
</data>
|
|
<data name="Export_Channels_AllOff" xml:space="preserve">
|
|
<value>(none selected = all stored channels)</value>
|
|
</data>
|
|
<data name="Export_Format_Label" xml:space="preserve">
|
|
<value>Format</value>
|
|
</data>
|
|
<data name="Export_Format_Markdown" xml:space="preserve">
|
|
<value>Markdown</value>
|
|
</data>
|
|
<data name="Export_Format_Json" xml:space="preserve">
|
|
<value>JSON</value>
|
|
</data>
|
|
<data name="Export_Format_Csv" xml:space="preserve">
|
|
<value>CSV</value>
|
|
</data>
|
|
<data name="Export_Button" xml:space="preserve">
|
|
<value>Export to file…</value>
|
|
</data>
|
|
<data name="Export_Dialog_Title" xml:space="preserve">
|
|
<value>Save export</value>
|
|
</data>
|
|
<data name="Export_Running" xml:space="preserve">
|
|
<value>Export running in background…</value>
|
|
</data>
|
|
<data name="Export_Success" xml:space="preserve">
|
|
<value>Export complete: {0:N0} messages written to {1}</value>
|
|
</data>
|
|
<data name="Export_Empty" xml:space="preserve">
|
|
<value>Export complete: no messages matched the filter.</value>
|
|
</data>
|
|
<data name="Export_Error" xml:space="preserve">
|
|
<value>Export failed, see /xllog</value>
|
|
</data>
|
|
<data name="Theme_Heading" xml:space="preserve">
|
|
<value>Appearance</value>
|
|
</data>
|
|
<data name="Theme_Enabled_Name" xml:space="preserve">
|
|
<value>Use the Hellion theme across all plugin windows</value>
|
|
</data>
|
|
<data name="Theme_Enabled_Description" xml:space="preserve">
|
|
<value>Industrial HUD palette with cyan-teal action accents, slate-violet tabs and amber active highlights, applied globally to chat log, settings, viewers and the wizard. Disable to fall back to the default Dalamud look.</value>
|
|
</data>
|
|
</root>
|