fix(font): bundled font now actually renders, ship Inter Light, +CJK fallback
Plugin.cs:937 only pushed RegularFont when Config.FontsEnabled was true.
FontsAndColours.cs:50 forces FontsEnabled=false whenever UseHellionFont is
enabled (to hide the chooser UI), so the bundled-font path was silently
dead and the FFXIV Axis game-font took over. Exo 2 looked "almost right"
because it overlaps Axis on basic Latin, so the regression went unnoticed
for the entire v1.5.x series.
The fix routes RegularFont through draw whenever either FontsEnabled or
UseHellionFont is on. First-frame HITCH dropped from ~74 ms to ~20 ms
median (5-reload Linux/Wine sample 17.9-23.6 ms) as a side effect — the
v1.5.1 "too optimistic" defer-pattern hypothesis was actually a symptom
of this bug, not bad math.
Font-stack overhaul on top:
- Inter Light (Static 18pt-Light, 343 KB, SIL OFL 1.1) replaces Exo 2 as
the bundled font. Inter ships full Latin Extended-A/B, Greek polytonic
and Cyrillic Supplement coverage.
- NotoSansCjkRegular added as a third merge layer for Hangul,
Simplified-Chinese-specific Han glyphs, and CJK fallbacks the FFXIV
Japanese font does not ship.
- Two new ExtraGlyphRanges flags (LatinExtended, Greek) implemented via
AddChar pair lists in SetUpRanges.
- Settings.Apply auto-activates the matching ExtraGlyphRanges flag on
language change. Plugin.LoadAsync runs a one-shot migration that ORs
in the required flag for an already-selected language.
- ExtraGlyphRanges CollapsingHeader reachable regardless of
UseHellionFont (was hidden in the early-return branch).
- New WarningText below the language combo: FFXIV's chat engine only
fully supports EN/DE/FR/JA. Other scripts render in the HellionChat
UI but may garble in in-game chat input/send.
Localisation wave (originally a FR-only cycle):
- 24 selectable UI languages. LanguageOverride enum gains 10 new locales
plus 3 previously commented-out (Italian, Korean, Norwegian with ISO
code `nb` instead of `no`). All new values append to keep existing
user-config integer serialisation stable.
- Resource bundle split: HellionStrings.resx (24 locales, 328 keys) for
fork-added strings, Language.resx (24 locales, 456 keys) for the
ChatTwo-Crowdin-heritage. 4 post-sync Crowdin keys backfilled into
13 legacy locales with per-key AI-assisted comment marker.
- Em-dash sweep on EN source plus 18 translations. Russian and Ukrainian
keep their typographic norm.
Old HellionFont.ttf + HellionFont-OFL.txt removed; Inter-Light.ttf +
Inter-OFL.txt take their place. Configuration field UseHellionFont keeps
its name for backwards-compat. Migration v17 stays.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
---
|
||||
subtitle: "24 Sprachen, Inter Light statt Exo 2, HITCH 74 → 20 ms"
|
||||
versionsnatur: "Localisation + Font-Stack"
|
||||
---
|
||||
- **24 wählbare UI-Sprachen.** Aus dem ursprünglich nur als FR-Lokalisierung geplanten Cycle ist eine breite Welle geworden: Catalan, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norsk bokmål, Polish, Portuguese (BR), Portuguese (PT), Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian, Simplified Chinese, Traditional Chinese. Dropdown sortiert alphabetisch nach Endonym, „None" oben angepinnt. Nicht-native Übersetzungen sind AI-assisted und für Community-Review im Forge-Discord markiert.
|
||||
- **Inter Light statt Exo 2 als bundled Schrift.** Plus NotoSansCjkRegular als dritte Merge-Schicht. Damit deckt der Stack Latin Extended-A/B, Greek polytonic, Cyrillic Supplement und CJK (inkl. Hangul, Simplified-Han nach Reform) ab — die nicht-vanilla-FFXIV-Sprachen waren mit Exo 2 nicht lesbar.
|
||||
- **HITCH 74 → ~20 ms als Side-Effect.** Der UiBuilder-First-Frame-Lag lag seit v1.4.x stabil bei 74 ms; v1.5.1 wollte ihn in Richtung 7 ms ziehen, fiel als „Hypothese zu optimistisch" durch. Echter Grund: `Plugin.cs:937` push'te `RegularFont` nur wenn `FontsEnabled` true war — die „Mitgelieferte Schrift verwenden"-Logik setzte `FontsEnabled = false` mit, der bundled-Pfad war die ganze v1.5.x-Reihe tot, FFXIVs Axis-Font übernahm und kostete ~50 ms extra. Fix routet `RegularFont` jetzt auch über `UseHellionFont`. Median ~20 ms im 5-Reload-Stresstest (17.9-23.6 ms, Linux/Wine; Windows-Baseline steht aus).
|
||||
- **Glyph-Ranges aktivieren sich automatisch beim Sprachwechsel** plus eine One-Shot-Migration für User die schon eine non-Latin-Sprache eingestellt hatten. Neue WarningText unter dem Sprach-Dropdown weist darauf hin, dass FFXIVs Chat-Engine offiziell nur EN/DE/FR/JA-Glyphen rendert — andere Schriften können in der Game-Eingabe Garbled-Output zeigen.
|
||||
- **Unter der Haube.** Drei-Layer-Font-Stack, zwei neue ExtraGlyphRanges-Flags (`LatinExtended`, `Greek`), `LanguageOverride`-Enum wächst um zehn Locales plus drei reaktivierte (Italian, Korean, Norwegian mit `nb`). Append-only damit User-Configs stabil bleiben. Migration v17 bleibt.
|
||||
@@ -833,17 +833,27 @@ public enum LanguageOverride
|
||||
French,
|
||||
German,
|
||||
Greek,
|
||||
|
||||
// Italian,
|
||||
Japanese,
|
||||
|
||||
// Korean,
|
||||
// Norwegian,
|
||||
PortugueseBrazil,
|
||||
Romanian,
|
||||
Russian,
|
||||
Spanish,
|
||||
Swedish,
|
||||
|
||||
// v1.5.3: Crowdin-heritage activated and Forge-maintained additions.
|
||||
// Append-only to preserve serialized integer values of existing user configs.
|
||||
Italian,
|
||||
Korean,
|
||||
Norwegian,
|
||||
Catalan,
|
||||
Czech,
|
||||
Danish,
|
||||
Finnish,
|
||||
Hungarian,
|
||||
Polish,
|
||||
PortuguesePortugal,
|
||||
Turkish,
|
||||
Ukrainian,
|
||||
}
|
||||
|
||||
public static class LanguageOverrideExt
|
||||
@@ -859,15 +869,24 @@ public static class LanguageOverrideExt
|
||||
LanguageOverride.French => "Français",
|
||||
LanguageOverride.German => "Deutsch",
|
||||
LanguageOverride.Greek => "Ελληνικά",
|
||||
// LanguageOverride.Italian => "Italiano",
|
||||
LanguageOverride.Italian => "Italiano",
|
||||
LanguageOverride.Japanese => "日本語",
|
||||
// LanguageOverride.Korean => "한국어 (Korean)",
|
||||
// LanguageOverride.Norwegian => "Norsk",
|
||||
LanguageOverride.Korean => "한국어",
|
||||
LanguageOverride.Norwegian => "Norsk bokmål",
|
||||
LanguageOverride.PortugueseBrazil => "Português do Brasil",
|
||||
LanguageOverride.Romanian => "Română",
|
||||
LanguageOverride.Russian => "Русский",
|
||||
LanguageOverride.Spanish => "Español",
|
||||
LanguageOverride.Swedish => "Svenska",
|
||||
LanguageOverride.Catalan => "Català",
|
||||
LanguageOverride.Czech => "Čeština",
|
||||
LanguageOverride.Danish => "Dansk",
|
||||
LanguageOverride.Finnish => "Suomi",
|
||||
LanguageOverride.Hungarian => "Magyar",
|
||||
LanguageOverride.Polish => "Polski",
|
||||
LanguageOverride.PortuguesePortugal => "Português (Portugal)",
|
||||
LanguageOverride.Turkish => "Türkçe",
|
||||
LanguageOverride.Ukrainian => "Українська",
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(mode), mode, null),
|
||||
};
|
||||
|
||||
@@ -882,17 +901,47 @@ public static class LanguageOverrideExt
|
||||
LanguageOverride.French => "fr",
|
||||
LanguageOverride.German => "de",
|
||||
LanguageOverride.Greek => "el",
|
||||
// LanguageOverride.Italian => "it",
|
||||
LanguageOverride.Italian => "it",
|
||||
LanguageOverride.Japanese => "ja",
|
||||
// LanguageOverride.Korean => "ko",
|
||||
// LanguageOverride.Norwegian => "no",
|
||||
LanguageOverride.Korean => "ko",
|
||||
LanguageOverride.Norwegian => "nb",
|
||||
LanguageOverride.PortugueseBrazil => "pt-br",
|
||||
LanguageOverride.Romanian => "ro",
|
||||
LanguageOverride.Russian => "ru",
|
||||
LanguageOverride.Spanish => "es",
|
||||
LanguageOverride.Swedish => "sv",
|
||||
LanguageOverride.Catalan => "ca",
|
||||
LanguageOverride.Czech => "cs",
|
||||
LanguageOverride.Danish => "da",
|
||||
LanguageOverride.Finnish => "fi",
|
||||
LanguageOverride.Hungarian => "hu",
|
||||
LanguageOverride.Polish => "pl",
|
||||
LanguageOverride.PortuguesePortugal => "pt-pt",
|
||||
LanguageOverride.Turkish => "tr",
|
||||
LanguageOverride.Ukrainian => "uk",
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(mode), mode, null),
|
||||
};
|
||||
|
||||
// Maps a language to the ExtraGlyphRanges flag required for full UI
|
||||
// rendering in that locale. The settings save path ORs this into
|
||||
// Mutable.ExtraGlyphRanges so users do not need to know which range
|
||||
// to tick manually. Returns 0 for locales fully covered by the default
|
||||
// ImGui glyph range (Latin-1) or by the separate Japanese font handle.
|
||||
public static ExtraGlyphRanges RequiredGlyphRanges(this LanguageOverride mode) =>
|
||||
mode switch
|
||||
{
|
||||
LanguageOverride.Korean => ExtraGlyphRanges.Korean,
|
||||
LanguageOverride.ChineseSimplified => ExtraGlyphRanges.ChineseSimplifiedCommon,
|
||||
LanguageOverride.ChineseTraditional => ExtraGlyphRanges.ChineseFull,
|
||||
LanguageOverride.Ukrainian => ExtraGlyphRanges.Cyrillic,
|
||||
LanguageOverride.Greek => ExtraGlyphRanges.Greek,
|
||||
LanguageOverride.Czech
|
||||
or LanguageOverride.Polish
|
||||
or LanguageOverride.Romanian
|
||||
or LanguageOverride.Hungarian
|
||||
or LanguageOverride.Turkish => ExtraGlyphRanges.LatinExtended,
|
||||
_ => 0,
|
||||
};
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
@@ -906,10 +955,23 @@ public enum ExtraGlyphRanges
|
||||
Korean = 1 << 4,
|
||||
Thai = 1 << 5,
|
||||
Vietnamese = 1 << 6,
|
||||
|
||||
// v1.5.3: Custom ranges for languages with Latin Extended-A glyphs (Czech,
|
||||
// Polish, Romanian, Turkish, Hungarian) and Greek polytonic accents.
|
||||
LatinExtended = 1 << 7,
|
||||
Greek = 1 << 8,
|
||||
}
|
||||
|
||||
public static class ExtraGlyphRangesExt
|
||||
{
|
||||
// Custom (start, end) inclusive pair lists for ranges that ImGui does
|
||||
// not ship a built-in helper for. SetUpRanges() feeds these into
|
||||
// ImFontGlyphRangesBuilder.AddChar via the `chars` parameter of
|
||||
// BuildRange so we avoid the lifetime/pinning question that the native
|
||||
// GetGlyphRanges*-pointer pathway papers over.
|
||||
internal static readonly ushort[] LatinExtendedPairs = { 0x0100, 0x024F };
|
||||
internal static readonly ushort[] GreekPairs = { 0x0370, 0x03FF, 0x1F00, 0x1FFF };
|
||||
|
||||
public static string Name(this ExtraGlyphRanges ranges) =>
|
||||
ranges switch
|
||||
{
|
||||
@@ -921,6 +983,8 @@ public static class ExtraGlyphRangesExt
|
||||
ExtraGlyphRanges.Korean => Language.ExtraGlyphRanges_Korean_Name,
|
||||
ExtraGlyphRanges.Thai => Language.ExtraGlyphRanges_Thai_Name,
|
||||
ExtraGlyphRanges.Vietnamese => Language.ExtraGlyphRanges_Vietnamese_Name,
|
||||
ExtraGlyphRanges.LatinExtended => Language.ExtraGlyphRanges_LatinExtended_Name,
|
||||
ExtraGlyphRanges.Greek => Language.ExtraGlyphRanges_Greek_Name,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(ranges), ranges, null),
|
||||
};
|
||||
|
||||
@@ -935,6 +999,10 @@ public static class ExtraGlyphRangesExt
|
||||
ExtraGlyphRanges.Korean => (nint)ImGui.GetIO().Fonts.GetGlyphRangesKorean(),
|
||||
ExtraGlyphRanges.Thai => (nint)ImGui.GetIO().Fonts.GetGlyphRangesThai(),
|
||||
ExtraGlyphRanges.Vietnamese => (nint)ImGui.GetIO().Fonts.GetGlyphRangesVietnamese(),
|
||||
// LatinExtended and Greek are applied via builder.AddChar in
|
||||
// FontManager.SetUpRanges, not through a native pointer range.
|
||||
ExtraGlyphRanges.LatinExtended => 0,
|
||||
ExtraGlyphRanges.Greek => 0,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(ranges), ranges, null),
|
||||
};
|
||||
}
|
||||
|
||||
+73
-17
@@ -9,7 +9,7 @@ using Dalamud.Plugin;
|
||||
|
||||
namespace HellionChat;
|
||||
|
||||
// Two LogProxy sites live in static methods (TryGetHellionFontBytes,
|
||||
// Two LogProxy sites live in static methods (TryGetBundledFontBytes,
|
||||
// AddFontWithFallback); a ctor-injected ILogger would not be reachable
|
||||
// from those scopes, so the class stays on Plugin.LogProxy.
|
||||
//
|
||||
@@ -62,8 +62,8 @@ public sealed class FontManager : IDisposable
|
||||
90f,
|
||||
];
|
||||
|
||||
// Hellion font bytes (Exo 2, OFL-1.1); lazily loaded from manifest resources
|
||||
private static byte[]? HellionFontBytes;
|
||||
// Bundled UI font bytes (Inter Light, OFL-1.1); lazily loaded from manifest resources
|
||||
private static byte[]? BundledFontBytes;
|
||||
|
||||
public FontManager(IDalamudPluginInterface pluginInterface)
|
||||
{
|
||||
@@ -122,7 +122,7 @@ public sealed class FontManager : IDisposable
|
||||
e.OnPreBuild(tk =>
|
||||
{
|
||||
// UseHellionFont swaps the source font but keeps the size
|
||||
// selector tied to FontSizeV2 (the Hellion font ships as
|
||||
// selector tied to FontSizeV2 (the bundled font ships as
|
||||
// a single weight).
|
||||
var basePt = Plugin.Config.UseHellionFont
|
||||
? Plugin.Config.FontSizeV2
|
||||
@@ -130,15 +130,28 @@ public sealed class FontManager : IDisposable
|
||||
var config = new SafeFontConfig { SizePt = basePt, GlyphRanges = Ranges };
|
||||
// Missing embedded resource falls back to the configured
|
||||
// system font instead of taking the whole UiBuilder down.
|
||||
var hellionBytes = Plugin.Config.UseHellionFont ? TryGetHellionFontBytes() : null;
|
||||
config.MergeFont = hellionBytes is not null
|
||||
? tk.AddFontFromMemory(hellionBytes, config, "Hellion-Exo2")
|
||||
var bundledBytes = Plugin.Config.UseHellionFont ? TryGetBundledFontBytes() : null;
|
||||
config.MergeFont = bundledBytes is not null
|
||||
? tk.AddFontFromMemory(bundledBytes, config, "Inter-Light")
|
||||
: AddFontWithFallback(tk, Plugin.Config.GlobalFontV2.FontId, config, "global");
|
||||
|
||||
config.SizePt = Plugin.Config.JapaneseFontV2.SizePt;
|
||||
config.GlyphRanges = JpRange;
|
||||
AddFontWithFallback(tk, Plugin.Config.JapaneseFontV2.FontId, config, "japanese");
|
||||
|
||||
// v1.5.3: NotoSansCjk fallback covers Hangul, Simplified-Chinese
|
||||
// -specific Han (e.g. 简) and other CJK glyphs that the primary
|
||||
// (Inter Light / global font) and the FFXIV Japanese font do not
|
||||
// ship. Merged last so earlier fonts win for shared codepoints.
|
||||
config.SizePt = basePt;
|
||||
config.GlyphRanges = Ranges;
|
||||
AddFontWithFallback(
|
||||
tk,
|
||||
new DalamudAssetFontAndFamilyId(DalamudAsset.NotoSansCjkRegular),
|
||||
config,
|
||||
"noto-cjk-fallback"
|
||||
);
|
||||
|
||||
config.SizePt = Plugin.Config.SymbolsFontSizeV2;
|
||||
tk.AddGameSymbol(config);
|
||||
|
||||
@@ -166,6 +179,16 @@ public sealed class FontManager : IDisposable
|
||||
config.GlyphRanges = JpRange;
|
||||
AddFontWithFallback(tk, Plugin.Config.JapaneseFontV2.FontId, config, "japanese");
|
||||
|
||||
// v1.5.3: NotoSansCjk fallback (see BuildRegularFontHandle).
|
||||
config.SizePt = Plugin.Config.ItalicFontV2.SizePt;
|
||||
config.GlyphRanges = Ranges;
|
||||
AddFontWithFallback(
|
||||
tk,
|
||||
new DalamudAssetFontAndFamilyId(DalamudAsset.NotoSansCjkRegular),
|
||||
config,
|
||||
"noto-cjk-fallback"
|
||||
);
|
||||
|
||||
config.SizePt = Plugin.Config.SymbolsFontSizeV2;
|
||||
tk.AddGameSymbol(config);
|
||||
|
||||
@@ -187,26 +210,26 @@ public sealed class FontManager : IDisposable
|
||||
// happen on a signed release build, but a broken csproj or hand-rolled
|
||||
// dev build can land here. Caller falls back to the system font path
|
||||
// so the plugin still loads instead of crashing the whole UiBuilder.
|
||||
private static byte[]? TryGetHellionFontBytes()
|
||||
private static byte[]? TryGetBundledFontBytes()
|
||||
{
|
||||
if (HellionFontBytes is not null)
|
||||
return HellionFontBytes;
|
||||
if (BundledFontBytes is not null)
|
||||
return BundledFontBytes;
|
||||
|
||||
using var stream = typeof(FontManager).Assembly.GetManifestResourceStream(
|
||||
"HellionFont.ttf"
|
||||
"Inter-Light.ttf"
|
||||
);
|
||||
if (stream is null)
|
||||
{
|
||||
Plugin.LogProxy.Warning(
|
||||
"Hellion font resource missing — falling back to system default font."
|
||||
"Bundled Inter Light font resource missing, falling back to system default font."
|
||||
);
|
||||
return null;
|
||||
}
|
||||
|
||||
using var ms = new MemoryStream();
|
||||
stream.CopyTo(ms);
|
||||
HellionFontBytes = ms.ToArray();
|
||||
return HellionFontBytes;
|
||||
BundledFontBytes = ms.ToArray();
|
||||
return BundledFontBytes;
|
||||
}
|
||||
|
||||
private unsafe void SetUpRanges()
|
||||
@@ -239,6 +262,18 @@ public sealed class FontManager : IDisposable
|
||||
builder.AddText("Œœ");
|
||||
builder.AddText("ĂăÂâÎîȘșȚț");
|
||||
|
||||
// v1.5.3: language-dropdown endonyms. The dropdown renders
|
||||
// with the currently active font range; without these glyphs
|
||||
// a user on an English UI cannot read non-Latin language names
|
||||
// before switching. Auto-activation in Settings.Apply then
|
||||
// pulls in the full ExtraGlyphRange for the chosen locale.
|
||||
builder.AddText(
|
||||
"Català Čeština Dansk Deutsch Ελληνικά English Español Suomi"
|
||||
+ " Français Magyar Italiano 日本語 한국어 Norsk bokmål Nederlands"
|
||||
+ " Polski Português Brasil (Portugal) Română Русский Svenska"
|
||||
+ " Türkçe Українська 简体中文 繁體中文"
|
||||
);
|
||||
|
||||
// "Enclosed Alphanumerics" (partial) https://www.compart.com/en/unicode/block/U+2460
|
||||
for (var i = 0x2460; i <= 0x24B5; i++)
|
||||
builder.AddChar((char)i);
|
||||
@@ -248,11 +283,32 @@ public sealed class FontManager : IDisposable
|
||||
}
|
||||
|
||||
var ranges = new List<nint> { (nint)ImGui.GetIO().Fonts.GetGlyphRangesDefault() };
|
||||
var customChars = new List<ushort>();
|
||||
foreach (var extraRange in Enum.GetValues<ExtraGlyphRanges>())
|
||||
if (Plugin.Config.ExtraGlyphRanges.HasFlag(extraRange))
|
||||
ranges.Add(extraRange.Range());
|
||||
{
|
||||
if (!Plugin.Config.ExtraGlyphRanges.HasFlag(extraRange))
|
||||
continue;
|
||||
|
||||
Ranges = BuildRange(null, ranges.ToArray());
|
||||
// LatinExtended and Greek use AddChar pairs because they have no
|
||||
// built-in ImGui range helper; everything else points to a native
|
||||
// ImGui glyph-range table.
|
||||
switch (extraRange)
|
||||
{
|
||||
case ExtraGlyphRanges.LatinExtended:
|
||||
customChars.AddRange(ExtraGlyphRangesExt.LatinExtendedPairs);
|
||||
break;
|
||||
case ExtraGlyphRanges.Greek:
|
||||
customChars.AddRange(ExtraGlyphRangesExt.GreekPairs);
|
||||
break;
|
||||
default:
|
||||
var ptr = extraRange.Range();
|
||||
if (ptr != 0)
|
||||
ranges.Add(ptr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Ranges = BuildRange(customChars.Count > 0 ? customChars : null, ranges.ToArray());
|
||||
JpRange = BuildRange(GlyphRangesJapanese.GlyphRanges);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
|
||||
<PropertyGroup>
|
||||
<!-- Independent versioning; see yaml changelog for upstream Chat 2 base -->
|
||||
<Version>1.5.2</Version>
|
||||
<Version>1.5.3</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<!-- Use lock file to pin exact versions -->
|
||||
@@ -50,13 +50,13 @@
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Embedded resources: Hellion font (Exo 2, OFL-1.1) + manifest resource -->
|
||||
<!-- Embedded resources: bundled UI font (Inter Light, OFL-1.1) + manifest resource -->
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\HellionFont.ttf">
|
||||
<LogicalName>HellionFont.ttf</LogicalName>
|
||||
<EmbeddedResource Include="Resources\Inter-Light.ttf">
|
||||
<LogicalName>Inter-Light.ttf</LogicalName>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Resources\HellionFont-OFL.txt">
|
||||
<LogicalName>HellionFont-OFL.txt</LogicalName>
|
||||
<EmbeddedResource Include="Resources\Inter-OFL.txt">
|
||||
<LogicalName>Inter-OFL.txt</LogicalName>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Resources\Branding\fox-banner.txt">
|
||||
<LogicalName>HellionChat.Branding.fox-banner.txt</LogicalName>
|
||||
|
||||
@@ -15,8 +15,8 @@ description: |-
|
||||
- Per-channel retention with a daily background sweep
|
||||
- Retroactive cleanup (Ctrl+Shift confirm)
|
||||
- Export to Markdown, JSON or CSV
|
||||
- First-run wizard with three preset profiles
|
||||
- Bilingual UI (EN/DE) with live language switching
|
||||
- First-run wizard with four preset profiles
|
||||
- Multi-language UI (24 locales) with live language switching
|
||||
- Own config and database — no shared state with other plugins
|
||||
|
||||
Based on Chat 2 by Infi and Anna (EUPL-1.2).
|
||||
@@ -35,6 +35,65 @@ tags:
|
||||
- Replacement
|
||||
- Privacy
|
||||
changelog: |-
|
||||
**v1.5.3 — Localisation Wave + Bundled-Font Overhaul (2026-05-19)**
|
||||
|
||||
Multi-language pass plus a long-standing first-frame HITCH lands
|
||||
as a side effect of a font-stack rewrite.
|
||||
|
||||
User-visible:
|
||||
|
||||
- 24 selectable UI languages (was 2). Catalan, Czech, Danish,
|
||||
Dutch, English, Finnish, French, German, Greek, Hungarian,
|
||||
Italian, Japanese, Korean, Norsk bokmål, Polish, Portuguese
|
||||
(BR + PT), Romanian, Russian, Spanish, Swedish, Turkish,
|
||||
Ukrainian, Simplified + Traditional Chinese. Sorted by endonym,
|
||||
"None" pinned first. Non-native locales are AI-assisted and
|
||||
flagged for native-speaker review via the Forge Discord.
|
||||
- Bundled Inter Light replaces Exo 2 (SIL OFL 1.1, 343 KB). The
|
||||
Inter font ships Latin Extended-A/B, Greek polytonic and
|
||||
Cyrillic Supplement coverage; NotoSansCjkRegular joins as a
|
||||
third merge layer for Hangul and Simplified-Han glyphs the
|
||||
FFXIV Japanese game font does not ship.
|
||||
- First-frame HITCH dropped from ~74 ms (v1.5.2 baseline that
|
||||
held since v1.4.x) to a median of ~20 ms (5-reload sample
|
||||
17.9-23.6 ms, Linux/Wine). The bundled-font path silently
|
||||
fell back to the FFXIV Axis font for the entire v1.5.x series
|
||||
because of an early-return in the draw loop. The fix that
|
||||
routes RegularFont through draw also lands the defer-pattern
|
||||
win the v1.5.1 cycle was reaching for.
|
||||
- ExtraGlyphRanges auto-activates on language change. Korean,
|
||||
ChineseFull and the two new flags (LatinExtended, Greek) toggle
|
||||
on without a manual visit to Fonts and Colours.
|
||||
- New WarningText under the language dropdown notes FFXIV's
|
||||
chat input only fully supports EN/DE/FR/JA character sets.
|
||||
Other languages render in HellionChat but may garble when
|
||||
typed into in-game chat.
|
||||
|
||||
Under the hood:
|
||||
|
||||
- Three-layer font stack: Inter Light primary, FFXIV
|
||||
JapaneseFont merge 1 for kana/kanji style, NotoSansCjkRegular
|
||||
merge 2 for everything else CJK.
|
||||
- LanguageOverride enum gains ten locales plus three previously
|
||||
commented out (Italian, Korean, Norwegian as `nb`). New
|
||||
values append to the enum so existing config integers stay
|
||||
stable across update.
|
||||
- Crowdin gap closed: four post-sync ChatTwo keys backfilled
|
||||
into 13 legacy locales with per-key AI markers.
|
||||
- Plugin.LoadAsync runs a one-shot migration that ORs in the
|
||||
matching ExtraGlyphRanges flag for users already on a
|
||||
non-default language. Settings.Apply auto-activates on
|
||||
change going forward.
|
||||
- Em-dash sweep across the EN source and 18 translations to the
|
||||
house style. Russian and Ukrainian keep the typographic norm.
|
||||
|
||||
Migration v17 stays. UseHellionFont users transition from Exo 2
|
||||
to Inter Light transparently on first reload.
|
||||
|
||||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||||
|
||||
---
|
||||
|
||||
**v1.5.2 — First-Run Wizard Rework (2026-05-18)**
|
||||
|
||||
UX patch. The first-run wizard becomes a four-step flow with a
|
||||
@@ -183,48 +242,4 @@ changelog: |-
|
||||
|
||||
---
|
||||
|
||||
**v1.4.10 — Symbol-Picker and Tell-History Fix (2026-05-16)**
|
||||
|
||||
Eleventh and final sub-patch of the v1.4.x polish-sweep series.
|
||||
Symbol picker for the chat input, a tell-history reload fix for
|
||||
users with many active partners, and a closing cleanup sweep
|
||||
before v1.5.0 picks up the DI-container adoption.
|
||||
|
||||
- Symbol picker: a small smile-icon button left of the channel
|
||||
indicator opens a popup with two tabs. The first lists all 161
|
||||
FFXIV PUA glyphs (Dalamud's SeIconChar enum); the second
|
||||
carries 97 server-verified BMP symbols (latin marks, currency,
|
||||
the full Greek alphabet, geometric shapes, suits, notes) —
|
||||
every one of them round-tripped through /echo and /say in a
|
||||
four-round probe so the in-channel render matches what the
|
||||
picker shows. Click drops the glyph at the caret, multi-insert
|
||||
keeps the popup open, and a recent-used strip floats the last
|
||||
sixteen picks across both tabs. Toggle in Settings → Chat →
|
||||
Message behaviour, default on.
|
||||
- Pinned auto-tell tabs reload their full history again: a
|
||||
hidden 500-row scan cap in PreloadHistory used to override the
|
||||
user-configurable AutoTellTabsHistoryPreload setting, so
|
||||
less-frequent pinned partners (rare /tell sessions in an
|
||||
otherwise busy week) lost their backlog. The cap is removed;
|
||||
the (Receiver, Date) index keeps SQL fast, the client-side
|
||||
loop still respects your setting as the upper bound.
|
||||
- Slash-command teardown: /hellion, /hellionView,
|
||||
/hellionDebugger (and #if DEBUG /hellionSeString) wrappers are
|
||||
now cached as private fields. Plugin teardown detaches the
|
||||
live registration instead of re-Register'ing with identical
|
||||
args — closes a latent maintenance hazard from v1.4.9.
|
||||
- v1.4.x polish-sweep wraps up here. The ImGuiListClipper render
|
||||
refactor that was on the v1.4.10 reserve list got dropped
|
||||
after cross-platform smoke showed the scroll rubber-band is a
|
||||
Wine / Linux render-pipeline quirk, not universal — Windows
|
||||
users never saw it. It will get its own platform-targeted
|
||||
spike in a later patch. Next major cycle is v1.5.0 with the
|
||||
DI-container adoption (Microsoft.Extensions.Hosting +
|
||||
ILogger<T>) modelled on Lightless.
|
||||
- Migration v17 stays (no schema bump).
|
||||
|
||||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||||
|
||||
---
|
||||
|
||||
Full history: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases
|
||||
|
||||
+17
-1
@@ -216,6 +216,17 @@ public sealed class Plugin : IAsyncDalamudPlugin
|
||||
Config.Tabs.RemoveAll(TabLifecycleHelpers.ShouldStripOnLoad);
|
||||
|
||||
LanguageChanged(Interface.UiLanguage);
|
||||
|
||||
// v1.5.3 migration: Settings.Apply auto-activates the matching
|
||||
// ExtraGlyphRanges flag on a language CHANGE; a config that already
|
||||
// has e.g. Czech selected from a previous version never goes through
|
||||
// that path. ORing in the required flag here lets the first atlas
|
||||
// build pick it up, so an upgrade from v1.5.2 renders correctly
|
||||
// without forcing the user to toggle the language twice.
|
||||
var requiredRanges = Config.LanguageOverride.RequiredGlyphRanges();
|
||||
if (requiredRanges != 0 && !Config.ExtraGlyphRanges.HasFlag(requiredRanges))
|
||||
Config.ExtraGlyphRanges |= requiredRanges;
|
||||
|
||||
ImGuiUtil.Initialize(this);
|
||||
|
||||
DeferredSaveFrames = -1;
|
||||
@@ -934,7 +945,12 @@ public sealed class Plugin : IAsyncDalamudPlugin
|
||||
// RegularFont is nullable only because the live rebuild path
|
||||
// disposes it before reassigning; both ends of that swap happen on
|
||||
// this same draw thread, so it cannot be null here.
|
||||
using ((Config.FontsEnabled ? FontManager.RegularFont! : FontManager.Axis).Push())
|
||||
// v1.5.3 fix: also push RegularFont when the bundled Inter Light is
|
||||
// selected. Without this, UseHellionFont=true silently fell back to
|
||||
// the FFXIV Axis font because FontsAndColours forces FontsEnabled
|
||||
// off in that branch, and the bundled font never made it into draw.
|
||||
var useRegularFont = Config.FontsEnabled || Config.UseHellionFont;
|
||||
using ((useRegularFont ? FontManager.RegularFont! : FontManager.Axis).Push())
|
||||
WindowSystem.Draw();
|
||||
|
||||
ChatLogWindow.FinalizeFrame();
|
||||
|
||||
Binary file not shown.
@@ -283,6 +283,7 @@ internal class HellionStrings
|
||||
internal static string Settings_General_Audio_Heading => Get(nameof(Settings_General_Audio_Heading));
|
||||
internal static string Settings_General_Performance_Heading => Get(nameof(Settings_General_Performance_Heading));
|
||||
internal static string Settings_General_Language_Heading => Get(nameof(Settings_General_Language_Heading));
|
||||
internal static string Settings_Language_FFXIVCoverage_Warning => Get(nameof(Settings_Language_FFXIVCoverage_Warning));
|
||||
|
||||
// Hellion Chat — Appearance-Tab section headings
|
||||
internal static string Settings_Appearance_Theme_Heading => Get(nameof(Settings_Appearance_Theme_Heading));
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Quant d'opaques són les finestres del plugin. Valors més baixos deixen veure el joc per darrere; els camps de formulari i els diàlegs es mantenen completament opacs i llegibles al damunt.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Utilitza la font Hellion inclosa (Exo 2)</value>
|
||||
<value>Usa Inter Light inclòs</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Renderitza el xat i la interfície en Exo 2 (SIL Open Font License 1.1), que s'inclou amb el plugin. Desactiva-ho per tornar a la font seleccionada a Configuració → Font.</value>
|
||||
<value>Mostra el xat i la interfície en Inter Light (llicència SIL Open Font 1.1), inclosa al connector. Desactiva per tornar al tipus de lletra seleccionat a Configuració → Tipus de lletra.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Cerca la frase exacta. Les consultes de diverses paraules coincideixen només quan les paraules apareixen juntes en ordre. Per utilitzar la sintaxi MATCH de FTS5 directament, posa el terme entre cometes dobles tu mateix.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat mostra les 24 llengües, però l'entrada de xat de FFXIV només admet completament EN, DE, FR i JA. Altres alfabets poden mostrar-se com a caràcters incorrectes en escriure al xat del joc o en enviar missatges.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Jak neprůhledná jsou okna pluginu. Nižší hodnoty nechávají hru prosvítat, formuláře a dialogy zůstávají plně neprůhledné a čitelné nahoře.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Použít přibalenou Hellion font (Exo 2)</value>
|
||||
<value>Použít vestavěné Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Vykresluje chat a UI v Exo 2 (SIL Open Font License 1.1), která je součástí pluginu. Vypni, chceš-li se vrátit k fontu nastavenému v Nastavení → Font.</value>
|
||||
<value>Vykresluje chat a UI v Inter Light (licence SIL Open Font 1.1), které je součástí pluginu. Vypněte pro návrat k písmu vybranému v Nastavení → Písmo.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Vyhledává přesnou frázi. Dotazy s více slovy se shodují pouze tehdy, když slova stojí pohromadě ve správném pořadí. Chceš-li použít syrovou syntaxi FTS5 MATCH, obal svůj výraz do uvozovek ručně.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat zobrazuje všech 24 jazyků, ale chatovací vstup FFXIV plně podporuje pouze EN, DE, FR a JA. Ostatní písma se mohou zobrazovat jako poškozené znaky při psaní do herního chatu nebo při odesílání zpráv.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Hvor uigennemsigtige plugin-vinduerne er. Lavere værdier lader spillet skinne igennem. Formfelter og dialoger forbliver fuldt uigennemsigtige og læselige ovenpå.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Brug medfølgende Hellion-skrifttype (Exo 2)</value>
|
||||
<value>Brug indlejret Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Gengiver chat og brugergrænseflade i Exo 2 (SIL Open Font License 1.1), som følger med plugin'et. Deaktivér for at falde tilbage til skrifttypen valgt under Indstillinger → Skrifttype.</value>
|
||||
<value>Gengiver chat og UI i Inter Light (SIL Open Font License 1.1), som følger med pluginnet. Deaktiver for at vende tilbage til skrifttypen valgt i Indstillinger → Skrifttype.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Søger efter den præcise sætning. Forespørgsler med flere ord matcher kun, når ordene optræder sammen i rækkefølge. For at bruge rå FTS5 MATCH-syntaks, sæt selv dit søgeterm i anførselstegn.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat viser alle 24 sprog, men FFXIV's chatinput understøtter kun EN, DE, FR og JA fuldt ud. Andre skrifter kan vises som forvrængede tegn, når de skrives i spillets chat eller sendes som beskeder.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Wie deckend die Plugin-Fenster sind. Niedrigere Werte lassen das Spiel durchscheinen, Form-Felder und Dialoge bleiben oben drauf deckend und gut lesbar.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Mitgelieferte Hellion-Schrift (Exo 2) verwenden</value>
|
||||
<value>Mitgelieferte Inter Light verwenden</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Rendert Chat und UI in Exo 2 (SIL Open Font License 1.1), die mit dem Plugin ausgeliefert wird. Deaktivieren, um auf die unter Einstellungen → Schrift gewählte Schriftart zurückzufallen.</value>
|
||||
<value>Stellt Chat und UI in Inter Light (SIL Open Font License 1.1) dar, die mit dem Plugin geliefert wird. Deaktivieren, um zur Schrift aus Einstellungen → Schriftart zurückzukehren.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Sucht nach der exakten Wortfolge. Mehrere Wörter werden nur gefunden, wenn sie zusammen und in dieser Reihenfolge stehen. Wer rohe FTS5-MATCH-Syntax nutzen will, setzt eigene Anführungszeichen um den Suchbegriff.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat zeigt alle 24 Sprachen, aber FFXIVs Chat-Eingabe unterstützt nur EN, DE, FR und JA vollständig. Andere Schriften können beim Tippen in den Spiel-Chat oder beim Senden von Nachrichten als unleserliche Zeichen erscheinen.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -385,10 +385,10 @@
|
||||
<value>Qué tan opacas son las ventanas del plugin. Valores más bajos dejan ver el juego por detrás; los campos de formulario y los diálogos permanecen completamente opacos y legibles encima.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Usar la fuente Hellion incluida (Exo 2)</value>
|
||||
<value>Usar Inter Light incluido</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Renderiza el chat y la interfaz en Exo 2 (SIL Open Font License 1.1), que se incluye con el plugin. Desactívalo para volver a la fuente seleccionada en Ajustes → Fuente.</value>
|
||||
<value>Muestra el chat y la interfaz en Inter Light (licencia SIL Open Font 1.1), incluida en el plugin. Desactiva para volver a la fuente seleccionada en Configuración → Fuente.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Busca la frase exacta. Las consultas de varias palabras solo coinciden cuando las palabras aparecen juntas en orden. Para usar la sintaxis FTS5 MATCH sin procesar, encierra tu término entre comillas dobles tú mismo.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat muestra los 24 idiomas, pero la entrada de chat de FFXIV solo admite completamente EN, DE, FR y JA. Otros alfabetos pueden mostrarse como caracteres ilegibles al escribir en el chat del juego o al enviar mensajes.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Kuinka peittäviä lisäosan ikkunat ovat. Pienemmät arvot näyttävät pelin läpi; lomakekentät ja valintaikkunat pysyvät täysin peittävinä ja luettavina päällä.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Käytä mukana tulevaa Hellion-fonttia (Exo 2)</value>
|
||||
<value>Käytä mukana toimitettua Inter Light -fonttia</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Renderöi chatin ja käyttöliittymän Exo 2:ssa (SIL Open Font License 1.1), joka toimitetaan lisäosan mukana. Poista käytöstä palataksesi Asetukset → Fontti -kohdassa valittuun fonttiin.</value>
|
||||
<value>Renderöi keskustelun ja käyttöliittymän Inter Light -fontilla (SIL Open Font License 1.1), joka toimitetaan lisäosan mukana. Poista käytöstä palataksesi fonttiin, joka on valittu kohdassa Asetukset → Fontti.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Etsii tarkkaa lauseketta. Monisanaiset kyselyt löytyvät vain, kun sanat esiintyvät yhdessä järjestyksessä. Käyttääksesi raakaa FTS5 MATCH -syntaksia, aseta hakutermi itse lainausmerkkeihin.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat näyttää kaikki 24 kieltä, mutta FFXIV:n chat-syöte tukee täysin vain EN, DE, FR ja JA. Muut kirjoitusjärjestelmät voivat näkyä virheellisinä merkkeinä, kun ne kirjoitetaan pelin chattiin tai lähetetään viesteinä.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Niveau d'opacité des fenêtres du plugin. Des valeurs basses laissent transparaître le jeu ; les champs de formulaire et les boîtes de dialogue restent entièrement opaques et lisibles par-dessus.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Utiliser la police Hellion fournie (Exo 2)</value>
|
||||
<value>Utiliser Inter Light fourni</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Affiche le chat et l'interface en Exo 2 (licence SIL Open Font 1.1), fournie avec le plugin. Désactivez pour revenir à la police sélectionnée dans Paramètres → Police.</value>
|
||||
<value>Affiche le chat et l'interface en Inter Light (licence SIL Open Font 1.1), fournie avec le plugin. Désactivez pour revenir à la police sélectionnée dans Paramètres → Police.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Recherche l'expression exacte. Les requêtes à plusieurs mots ne correspondent que lorsque les mots apparaissent ensemble et dans l'ordre. Pour utiliser la syntaxe MATCH brute de FTS5, encadrez vous-même votre terme par des guillemets droits.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat affiche les 24 langues, mais la saisie de chat de FFXIV ne prend en charge intégralement que EN, DE, FR et JA. Les autres scripts peuvent apparaître comme des caractères illisibles lors de la saisie dans le chat du jeu ou lors de l'envoi de messages.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Mennyire átlátszatlanok a plugin-ablakok. Alacsonyabb értékeknél a játék átlátszik a háttérben; az űrlapmezők és párbeszédablakok teljesen átlátszatlanok és jól olvashatók maradnak felül.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Beépített Hellion betűtípus (Exo 2) használata</value>
|
||||
<value>Mellékelt Inter Light használata</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>A chatet és a felhasználói felületet Exo 2-ben jeleníti meg (SIL Open Font License 1.1), amely a pluginnel érkezik. Kapcsold ki, ha vissza szeretnél térni a Beállítások → Betűtípus alatt kiválasztott betűhöz.</value>
|
||||
<value>A csevegést és a UI-t Inter Light betűtípussal (SIL Open Font License 1.1) jeleníti meg, amely a bővítményhez van mellékelve. Letiltva visszaáll a Beállítások → Betűtípus alatt kiválasztott betűtípusra.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>A pontos kifejezést keresi. Többszavas lekérdezések csak akkor illeszkednek, ha a szavak egymás után, sorban szerepelnek. A nyers FTS5 MATCH szintaxis használatához tedd a keresőkifejezést saját idézőjelek közé.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>A HellionChat mind a 24 nyelvet megjeleníti, de a FFXIV csevegési bemenete csak az EN, DE, FR és JA nyelveket támogatja teljes mértékben. Más írásrendszerek torzított karakterekként jelenhetnek meg a játék csevegésébe írva vagy üzenetként elküldve.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Quanto sono opache le finestre del plugin. Valori più bassi lasciano trasparire il gioco; i campi modulo e i dialoghi rimangono completamente opachi e leggibili in primo piano.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Usa il font Hellion incluso (Exo 2)</value>
|
||||
<value>Usa Inter Light incluso</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Visualizza la chat e l'interfaccia in Exo 2 (SIL Open Font License 1.1), incluso nel plugin. Disattiva per tornare al font selezionato in Impostazioni → Font.</value>
|
||||
<value>Mostra la chat e l'interfaccia in Inter Light (licenza SIL Open Font 1.1), inclusa nel plugin. Disattiva per tornare al font selezionato in Impostazioni → Font.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Cerca la frase esatta. Le query con più parole corrispondono solo quando le parole appaiono insieme nell'ordine indicato. Per usare la sintassi FTS5 MATCH grezza, racchiudi il termine tra virgolette doppie.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat mostra tutte le 24 lingue, ma l'input chat di FFXIV supporta completamente solo EN, DE, FR e JA. Altre scritture potrebbero apparire come caratteri illeggibili durante la digitazione nella chat di gioco o l'invio di messaggi.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>プラグインウィンドウの不透明度です。値を下げるとゲームが透けて見えます。フォームフィールドとダイアログは常に完全に不透明で読みやすい状態を保ちます。</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>同梱の Hellion フォント(Exo 2)を使用する</value>
|
||||
<value>同梱の Inter Light を使用</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>プラグインに同梱された Exo 2(SIL Open Font License 1.1)でチャットと UI を表示します。無効にすると、設定 → フォントで選択されたフォントにフォールバックします。</value>
|
||||
<value>チャットとUIをプラグインに同梱されている Inter Light (SIL Open Font License 1.1) で表示します。無効にすると、設定 → フォント で選択したフォントに戻ります。</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>完全なフレーズを検索します。複数の単語は同じ順序で並んで出現する場合にのみ一致します。生の FTS5 MATCH 構文を使用するには、検索語を自分でダブルクォートで囲んでください。</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat は 24 言語すべてを表示しますが、FFXIV のチャット入力が完全に対応しているのは EN、DE、FR、JA のみです。他のスクリプトはゲーム内チャットへの入力時やメッセージ送信時に文字化けする可能性があります。</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>플러그인 창의 불투명도입니다. 값이 낮을수록 게임이 배경으로 비쳐 보이며, 폼 필드와 대화 상자는 위에서 완전히 불투명하게 표시됩니다.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>내장 Hellion 글꼴 (Exo 2) 사용</value>
|
||||
<value>내장된 Inter Light 사용</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>채팅과 UI를 Exo 2 (SIL Open Font License 1.1)로 렌더링합니다. 이 글꼴은 플러그인에 포함되어 있습니다. 비활성화하면 설정 → 글꼴에서 선택한 글꼴로 돌아갑니다.</value>
|
||||
<value>플러그인에 포함된 Inter Light (SIL Open Font License 1.1)로 채팅과 UI를 표시합니다. 비활성화하면 설정 → 글꼴에서 선택한 글꼴로 돌아갑니다.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>정확한 구문을 검색합니다. 여러 단어 쿼리는 단어들이 순서대로 함께 나타날 때만 일치합니다. 원시 FTS5 MATCH 구문을 사용하려면 검색어를 직접 큰따옴표로 감싸세요.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat은 24개 언어 모두를 표시하지만, FFXIV의 채팅 입력은 EN, DE, FR, JA만 완전히 지원합니다. 다른 문자 체계는 게임 내 채팅에 입력하거나 메시지로 보낼 때 깨진 문자로 표시될 수 있습니다.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Hvor ugjennomsiktige plugin-vinduene er. Lavere verdier lar spillet synes gjennom. Skjemafelt og dialoger forblir fullt ugjennomsiktige og lesbare på toppen.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Bruk medfølgende Hellion-skrift (Exo 2)</value>
|
||||
<value>Bruk innebygd Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Gjengir chat og UI i Exo 2 (SIL Open Font License 1.1), som følger med pluginen. Deaktiver for å falle tilbake til skriften valgt under Innstillinger → Skrift.</value>
|
||||
<value>Gjengir chat og UI i Inter Light (SIL Open Font License 1.1), som følger med pluginet. Deaktiver for å gå tilbake til skriften valgt i Innstillinger → Skrift.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Søker etter den eksakte frasen. Søk med flere ord matcher bare når ordene vises sammen i rekkefølge. For å bruke rå FTS5 MATCH-syntaks, sett søkeordet i doble anførselstegn selv.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat viser alle 24 språk, men FFXIVs chat-innmating støtter bare EN, DE, FR og JA fullt ut. Andre skrifter kan vises som forvrengte tegn når de skrives i spillets chat eller sendes som meldinger.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Hoe ondoorzichtig de pluginvensters zijn. Lagere waarden laten het spel doorschijnen; formuliervelden en dialoogvensters blijven volledig ondoorzichtig en goed leesbaar.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Meegeleverd Hellion-lettertype gebruiken (Exo 2)</value>
|
||||
<value>Meegeleverde Inter Light gebruiken</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Geeft chat en UI weer in Exo 2 (SIL Open Font License 1.1), dat meegeleverd wordt met de plugin. Schakel uit om terug te vallen op het lettertype dat is geselecteerd onder Instellingen → Lettertype.</value>
|
||||
<value>Toont chat en UI in Inter Light (SIL Open Font License 1.1), meegeleverd met de plugin. Uitschakelen om terug te keren naar het lettertype in Instellingen → Lettertype.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Zoekt naar de exacte woordcombinatie. Zoekopdrachten met meerdere woorden vinden alleen resultaten als de woorden samen en in de juiste volgorde voorkomen. Om ruwe FTS5 MATCH-syntaxis te gebruiken, zet je je zoekterm zelf tussen aanhalingstekens.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat toont alle 24 talen, maar de chat-invoer van FFXIV ondersteunt alleen EN, DE, FR en JA volledig. Andere schriften kunnen als onleesbare tekens verschijnen wanneer ze in de in-game chat worden getypt of als berichten worden verzonden.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Stopień przezroczystości okien pluginu. Niższe wartości pozwalają przeświecać grze; pola formularzy i dialogi pozostają w pełni nieprzezroczyste i czytelne na wierzchu.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Używaj dołączonej czcionki Hellion (Exo 2)</value>
|
||||
<value>Użyj wbudowanego Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Renderuje czat i interfejs w Exo 2 (SIL Open Font License 1.1), która jest dołączona do pluginu. Wyłącz, aby powrócić do czcionki wybranej w Ustawieniach → Czcionka.</value>
|
||||
<value>Renderuje czat i interfejs w Inter Light (licencja SIL Open Font 1.1), dołączonej do wtyczki. Wyłącz, aby powrócić do czcionki wybranej w Ustawienia → Czcionka.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Wyszukuje dokładnej frazy. Zapytania wielowyrazowe trafiają tylko wtedy, gdy słowa występują razem w tej samej kolejności. Aby użyć składni raw FTS5 MATCH, samodzielnie otocz swój termin cudzysłowem.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat wyświetla wszystkie 24 języki, ale wprowadzanie czatu FFXIV w pełni obsługuje tylko EN, DE, FR i JA. Inne systemy pisma mogą być wyświetlane jako zniekształcone znaki podczas wpisywania do czatu w grze lub wysyłania wiadomości.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>O nível de opacidade das janelas do plugin. Valores menores deixam o jogo aparecer por baixo; campos de formulário e diálogos permanecem totalmente opacos e legíveis por cima.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Usar fonte Hellion incluída (Exo 2)</value>
|
||||
<value>Usar Inter Light incluído</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Renderiza o chat e a interface em Exo 2 (SIL Open Font License 1.1), que acompanha o plugin. Desative para voltar à fonte selecionada em Configurações → Fonte.</value>
|
||||
<value>Exibe o chat e a interface em Inter Light (licença SIL Open Font 1.1), incluída no plugin. Desative para voltar à fonte selecionada em Configurações → Fonte.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Busca pela frase exata. Consultas com várias palavras correspondem apenas quando as palavras aparecem juntas em ordem. Para usar a sintaxe raw FTS5 MATCH, envolva seu termo em aspas duplas você mesmo.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>O HellionChat exibe todos os 24 idiomas, mas a entrada de chat do FFXIV oferece suporte completo apenas para EN, DE, FR e JA. Outros alfabetos podem aparecer como caracteres ilegíveis ao digitar no chat do jogo ou enviar mensagens.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Quão opacas são as janelas do plugin. Valores mais baixos deixam o jogo aparecer por detrás; os campos de formulário e diálogos mantêm-se completamente opacos e legíveis por cima.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Usar a fonte Hellion incluída (Exo 2)</value>
|
||||
<value>Usar Inter Light incluído</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Apresenta o chat e a interface em Exo 2 (SIL Open Font License 1.1), que é fornecida com o plugin. Desativa para usar a fonte selecionada em Definições → Tipo de letra.</value>
|
||||
<value>Apresenta o chat e a interface em Inter Light (licença SIL Open Font 1.1), incluída no plugin. Desative para regressar à fonte selecionada em Definições → Fonte.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Pesquisa a frase exata. As consultas com várias palavras só correspondem quando as palavras aparecem juntas e por essa ordem. Para usar a sintaxe FTS5 MATCH diretamente, coloca o teu termo entre aspas duplas.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>O HellionChat apresenta os 24 idiomas, mas a entrada de chat do FFXIV apenas suporta totalmente EN, DE, FR e JA. Outros alfabetos podem aparecer como caracteres ilegíveis ao escrever no chat do jogo ou enviar mensagens.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>How opaque the plugin windows are. Lower values let the game show through; form fields and dialogs stay fully opaque and readable on top.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Use bundled Hellion font (Exo 2)</value>
|
||||
<value>Use bundled Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>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.</value>
|
||||
<value>Renders chat and UI in Inter Light (SIL Open Font License 1.1), which ships with the plugin. Disable to fall back to the font selected under Settings → Font.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Searches for the exact phrase. Multi-word queries match only when the words appear together in order. To use raw FTS5 MATCH syntax, wrap your term in double quotes yourself.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat renders all 24 languages, but FFXIV's chat input only fully supports EN, DE, FR and JA. Other scripts may display as garbled characters when typed into the in-game chat or sent as messages.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Cât de opace sunt ferestrele plugin-ului. Valorile mai mici lasă jocul să se vadă prin fereastră; câmpurile de formular și dialogurile rămân complet opace și lizibile deasupra.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Folosește fontul Hellion inclus (Exo 2)</value>
|
||||
<value>Folosește Inter Light inclus</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Randează chatul și interfața în Exo 2 (SIL Open Font License 1.1), inclus în plugin. Dezactivează pentru a reveni la fontul selectat din Setări → Font.</value>
|
||||
<value>Afișează chatul și interfața în Inter Light (licență SIL Open Font 1.1), inclus în plugin. Dezactivează pentru a reveni la fontul selectat în Setări → Font.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Caută expresia exactă. Interogările cu mai multe cuvinte se potrivesc doar când cuvintele apar împreună în ordine. Pentru a folosi sintaxa brută FTS5 MATCH, înconjoară termenul cu ghilimele duble tu însuți.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat afișează toate cele 24 de limbi, dar intrarea chatului FFXIV acceptă complet doar EN, DE, FR și JA. Alte scrieri pot apărea ca caractere deteriorate când sunt tastate în chatul jocului sau trimise ca mesaje.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Степень непрозрачности окон плагина. Меньшие значения позволяют просвечивать игре; поля форм и диалоги остаются полностью непрозрачными и читаемыми поверх.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Использовать встроенный шрифт Hellion (Exo 2)</value>
|
||||
<value>Использовать встроенный Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Отображает чат и интерфейс шрифтом Exo 2 (SIL Open Font License 1.1), поставляемым с плагином. Отключите для использования шрифта, выбранного в разделе Настройки → Шрифт.</value>
|
||||
<value>Отображает чат и интерфейс в шрифте Inter Light (лицензия SIL Open Font 1.1), поставляемом с плагином. Отключите, чтобы вернуться к шрифту, выбранному в Настройки → Шрифт.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Поиск точной фразы. Запросы из нескольких слов совпадают только если слова стоят рядом и в том же порядке. Для использования синтаксиса FTS5 MATCH оберните свой запрос в двойные кавычки самостоятельно.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat отображает все 24 языка, но ввод чата FFXIV полностью поддерживает только EN, DE, FR и JA. Другие письменности могут отображаться как искажённые символы при наборе во внутриигровом чате или отправке сообщений.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Hur ogenomskinliga pluginfönstren är. Lägre värden låter spelet synas igenom. Formulärfält och dialoger förblir helt ogenomskinliga och läsbara överst.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Använd medföljande Hellion-teckensnitt (Exo 2)</value>
|
||||
<value>Använd inbäddat Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Renderar chatt och gränssnitt i Exo 2 (SIL Open Font License 1.1), som medföljer pluginen. Inaktivera för att återgå till teckensnittet valt under Inställningar → Teckensnitt.</value>
|
||||
<value>Renderar chatt och UI i Inter Light (SIL Open Font License 1.1), som följer med pluginet. Inaktivera för att återgå till typsnittet som valts i Inställningar → Typsnitt.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Söker efter den exakta frasen. Flerdordsfrågor matchar bara när orden förekommer tillsammans i ordning. Om du vill använda rå FTS5 MATCH-syntax, omge din term med dubbla citattecken själv.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat visar alla 24 språk, men FFXIV:s chattinmatning stödjer endast EN, DE, FR och JA fullt ut. Andra skriftsystem kan visas som förvrängda tecken när de skrivs i spelets chatt eller skickas som meddelanden.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Eklenti pencerelerinin ne kadar opak olduğu. Düşük değerler oyunun arkadan görünmesini sağlar; form alanları ve diyaloglar tamamen opak ve okunabilir kalır.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Dahili Hellion yazı tipini kullan (Exo 2)</value>
|
||||
<value>Yerleşik Inter Light'ı kullan</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Sohbet ve arayüzü eklentiyle birlikte gelen Exo 2 (SIL Open Font License 1.1) ile render eder. Ayarlar → Yazı Tipi altında seçilen yazı tipine dönmek için devre dışı bırak.</value>
|
||||
<value>Sohbet ve arayüzü, eklentiyle birlikte gelen Inter Light (SIL Open Font Lisansı 1.1) ile gösterir. Ayarlar → Yazı tipi'nde seçili yazı tipine dönmek için devre dışı bırakın.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Tam ifadeyi arar. Çok kelimeli sorgular yalnızca kelimeler sırayla birlikte göründüğünde eşleşir. Ham FTS5 MATCH sözdizimini kullanmak için kendi arama terimini çift tırnak içine al.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat 24 dilin tümünü gösterir, ancak FFXIV'in sohbet girişi yalnızca EN, DE, FR ve JA dillerini tam olarak destekler. Diğer alfabeler, oyun içi sohbete yazıldığında veya mesaj olarak gönderildiğinde bozuk karakterler olarak görünebilir.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>Рівень непрозорості вікон плагіна. Нижчі значення дозволяють грі просвічуватись крізь вікно; поля форм і діалоги залишаються повністю непрозорими і добре читабельними поверх.</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>Використовувати вбудований шрифт Hellion (Exo 2)</value>
|
||||
<value>Використовувати вбудований Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>Відображає чат і інтерфейс шрифтом Exo 2 (SIL Open Font License 1.1), що постачається разом із плагіном. Вимкніть, щоб повернутись до шрифту, вибраного в розділі Налаштування → Шрифт.</value>
|
||||
<value>Відображає чат та інтерфейс у шрифті Inter Light (ліцензія SIL Open Font 1.1), що постачається з плагіном. Вимкніть, щоб повернутися до шрифту, обраного в Налаштування → Шрифт.</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,7 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>Шукає точну фразу. Запити з кількох слів збігаються лише тоді, коли слова стоять разом у вказаному порядку. Щоб використовувати синтаксис FTS5 MATCH напряму, оберніть запит у подвійні лапки самостійно.</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat відображає всі 24 мови, але введення чату FFXIV повністю підтримує лише EN, DE, FR та JA. Інші писемності можуть відображатися як спотворені символи під час введення в ігровий чат або надсилання повідомлень.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>插件窗口的不透明程度。数值越低游戏背景透视效果越强;表单字段和对话框始终保持完全不透明,确保可读性。</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>使用内置 Hellion 字体(Exo 2)</value>
|
||||
<value>使用内置 Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>使用随插件附带的 Exo 2 字体(SIL Open Font License 1.1)渲染聊天和界面。禁用后将使用设置 → 字体中选择的字体。</value>
|
||||
<value>以 Inter Light (SIL Open Font License 1.1) 渲染聊天和界面,随插件一起提供。禁用以回退到设置 → 字体 中选择的字体。</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>搜索完整短语。多词查询仅在这些词按顺序相邻出现时才会匹配。如需使用原始 FTS5 MATCH 语法,请自行为搜索词加上英文双引号。</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat 显示全部 24 种语言,但 FFXIV 的聊天输入仅完全支持 EN、DE、FR 和 JA。其他文字在游戏内聊天输入或作为消息发送时可能显示为乱码。</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -385,10 +385,10 @@
|
||||
<value>插件視窗的不透明程度。數值越低,遊戲畫面越能透出;表單欄位和對話框則保持完全不透明且清晰可讀。</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Name" xml:space="preserve">
|
||||
<value>使用內建 Hellion 字型(Exo 2)</value>
|
||||
<value>使用內建 Inter Light</value>
|
||||
</data>
|
||||
<data name="Theme_UseHellionFont_Description" xml:space="preserve">
|
||||
<value>以 Exo 2(SIL Open Font License 1.1)渲染聊天和介面,此字型隨插件一同提供。停用後將退回至設定 → 字型所選擇的字型。</value>
|
||||
<value>以 Inter Light (SIL Open Font License 1.1) 渲染聊天和介面,隨插件一起提供。停用以回退到設定 → 字型 中選擇的字型。</value>
|
||||
</data>
|
||||
|
||||
<data name="About_Maintainer_Heading" xml:space="preserve">
|
||||
@@ -1030,4 +1030,8 @@
|
||||
<data name="DbViewer_FullTextToggle_Hint_PhraseMode" xml:space="preserve">
|
||||
<value>搜尋完整的詞組。多字詞查詢只有在這些字詞依序相鄰出現時才會比對成功。若要使用原始 FTS5 MATCH 語法,請自行在搜尋詞外加上雙引號。</value>
|
||||
</data>
|
||||
<data name="Settings_Language_FFXIVCoverage_Warning" xml:space="preserve">
|
||||
<value>HellionChat 顯示全部 24 種語言,但 FFXIV 的聊天輸入僅完全支援 EN、DE、FR 和 JA。其他文字在遊戲內聊天輸入或作為訊息傳送時可能顯示為亂碼。</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Binary file not shown.
Executable → Regular
+1
-1
@@ -1,4 +1,4 @@
|
||||
Copyright 2013 The Exo 2 Project Authors (https://github.com/googlefonts/Exo-2.0)
|
||||
Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
+18
@@ -1860,6 +1860,24 @@ namespace HellionChat.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Latin Extended.
|
||||
/// </summary>
|
||||
internal static string ExtraGlyphRanges_LatinExtended_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("ExtraGlyphRanges_LatinExtended_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Greek.
|
||||
/// </summary>
|
||||
internal static string ExtraGlyphRanges_Greek_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("ExtraGlyphRanges_Greek_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pick a folder location for export..
|
||||
/// </summary>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Amaga el xat mentre el menú New Game+ estigui obert. En tancar el menú, el xat torna a aparèixer.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Llatí estès</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Grec</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -12,8 +12,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in Czech a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1494,4 +1494,10 @@ Starou databázi lze stále obnovit, kontaktuj prosím autora pluginu pro pomoc.
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Načítání logů ...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Rozšířená latinka</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Řečtina</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -12,8 +12,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in Danish a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1494,4 +1494,10 @@ Din gamle database kan stadig gendannes, kontakt venligst plugin-forfatteren for
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Indlæser logs ...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Udvidet latin</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Græsk</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -10,8 +10,8 @@
|
||||
Hellion Forge maintains this file with native-speaker quality,
|
||||
including the keys post-dating the last upstream Chat 2 Crowdin sync.
|
||||
|
||||
Corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1495,4 +1495,10 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Loading logs ...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latein erweitert</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Griechisch</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+1503
File diff suppressed because it is too large
Load Diff
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Oculta el chat mientras el menú New Game+ esté abierto. Al cerrar el menú, el chat se muestra de nuevo.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latín extendido</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Griego</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -13,8 +13,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in Finnish a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
@@ -1494,4 +1494,10 @@ Vanha tietokantasi voidaan silti palauttaa, ota yhteyttä lisäosan tekijään s
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Ladataan lokeja ...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Laajennettu latina</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Kreikka</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Masque le chat pendant que le menu New Game+ est ouvert. Fermer le menu réaffiche le chat.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latin étendu</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Grec</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -12,8 +12,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in Hungarian a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1494,4 +1494,10 @@ A régi adatbázis még helyreállítható, kérjük vedd fel a kapcsolatot a pl
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Naplók betöltése ...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latin kiterjesztett</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Görög</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Nasconde la chat mentre il menu New Game+ è aperto. Chiudendo il menu, la chat riappare.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latino esteso</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Greco</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>ニューゲーム+メニューが開いている間、チャットを非表示にします。メニューを閉じるとチャットが再表示されます。</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>拡張ラテン</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>ギリシャ語</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>뉴게임+ 메뉴가 열려 있는 동안 채팅을 숨깁니다. 메뉴를 닫으면 채팅이 다시 표시됩니다.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>확장 라틴</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>그리스어</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -12,8 +12,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in Norwegian Bokmål a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1494,4 +1494,10 @@ Din gamle database kan fortsatt gjenopprettes. Kontakt plugin-forfatteren for hj
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Laster logg ...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Utvidet latin</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Gresk</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Verberg de chat terwijl het New Game+ menu open is. Het sluiten van het menu toont de chat weer.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latijn uitgebreid</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Grieks</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -12,8 +12,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in Polish a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1494,4 +1494,10 @@ Stara baza danych nadal może zostać odzyskana, skontaktuj się z autorem wtycz
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Ładowanie logów...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Łacińskie rozszerzone</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Grecki</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Oculta o chat enquanto o menu New Game+ estiver aberto. Fechar o menu mostra o chat novamente.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latim estendido</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Grego</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
+8
-2
@@ -12,8 +12,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in European Portuguese a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1494,4 +1494,10 @@ A tua base de dados antiga ainda pode ser recuperada. Contacta o autor do plugin
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>A carregar registos...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latim estendido</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Grego</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1478,4 +1478,10 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Loading logs ...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latin Extended</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Greek</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Ascunde chatul cât timp meniul New Game+ este deschis. Închiderea meniului afișează chatul din nou.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Latină extinsă</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Greacă</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Скрывать чат, пока открыто меню New Game+. При закрытии меню чат снова отображается.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Расширенная латиница</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Греческий</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>Dölj chatten medan New Game+ menyn är öppen. När menyn stängs visas chatten igen.</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Utökat latin</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Grekiska</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -12,8 +12,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in Turkish a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1494,4 +1494,10 @@ Eski veritabanınız hâlâ kurtarılabilir, yardım için lütfen eklenti yazar
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Günlükler yükleniyor...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Genişletilmiş Latin</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Yunanca</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Generated
+8
-2
@@ -12,8 +12,8 @@
|
||||
Hellion Forge maintains this file to give HellionChat users
|
||||
in Ukrainian a fully translated UI.
|
||||
|
||||
Native-speaker corrections welcome via PR to:
|
||||
https://gitea.hellion-forge.cloud
|
||||
Native-speaker corrections welcome via the Hellion Forge Discord:
|
||||
https://discord.gg/X9V7Kcv5gR
|
||||
-->
|
||||
<root>
|
||||
<!--
|
||||
@@ -1494,4 +1494,10 @@
|
||||
<data name="ChatExport_Initial" xml:space="preserve">
|
||||
<value>Завантаження журналів ...</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>Розширена латинка</value>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>Грецька</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
+8
@@ -1482,4 +1482,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>在新游戏+菜单打开时隐藏聊天。关闭菜单时聊天会再次显示。</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>拉丁文扩展</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>希腊语</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
+8
@@ -1483,4 +1483,12 @@ Your old database can still be recovered, please contact the plugin author for h
|
||||
<value>在新遊戲+選單開啟時隱藏聊天。關閉選單時聊天會再次顯示。</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_LatinExtended_Name" xml:space="preserve">
|
||||
<value>拉丁文擴展</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
<data name="ExtraGlyphRanges_Greek_Name" xml:space="preserve">
|
||||
<value>希臘文</value>
|
||||
<comment>AI-assisted machine translation. Pending native-speaker review.</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -201,6 +201,18 @@ public sealed class SettingsWindow : Dalamud.Interface.Windowing.Window
|
||||
|
||||
var hideChanged = !Mutable.HideChat && Mutable.HideChat != Plugin.Config.HideChat;
|
||||
var languageChanged = Mutable.LanguageOverride != Plugin.Config.LanguageOverride;
|
||||
|
||||
// v1.5.3: Auto-enable the ExtraGlyphRanges flag matching the new
|
||||
// locale so non-Latin scripts render immediately. Without this,
|
||||
// a user switching to Korean would see "===" until they manually
|
||||
// tick the Korean range in Fonts & Colours.
|
||||
if (languageChanged)
|
||||
{
|
||||
var required = Mutable.LanguageOverride.RequiredGlyphRanges();
|
||||
if (required != 0)
|
||||
Mutable.ExtraGlyphRanges |= required;
|
||||
}
|
||||
|
||||
var fontChanged =
|
||||
Mutable.GlobalFontV2 != Plugin.Config.GlobalFontV2
|
||||
|| Mutable.JapaneseFontV2 != Plugin.Config.JapaneseFontV2
|
||||
|
||||
@@ -54,28 +54,23 @@ internal sealed class FontsAndColours : ISettingsTab
|
||||
|
||||
if (Mutable.UseHellionFont)
|
||||
{
|
||||
// Bundled-font path: only the base font size matters; the
|
||||
// global / japanese / italic chooser pickers do not apply.
|
||||
ImGuiUtil.FontSizeCombo(Language.Options_FontSize_Name, ref Mutable.FontSizeV2);
|
||||
ImGui.Spacing();
|
||||
|
||||
ImGuiUtil.FontSizeCombo(
|
||||
Language.Options_SymbolsFontSize_Name,
|
||||
ref Mutable.SymbolsFontSizeV2
|
||||
);
|
||||
ImGuiUtil.HelpMarker(Language.Options_SymbolsFontSize_Description);
|
||||
|
||||
ImGui.Spacing();
|
||||
return;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
ImGui.Checkbox(Language.Options_FontsEnabled, ref Mutable.FontsEnabled);
|
||||
ImGui.Spacing();
|
||||
}
|
||||
|
||||
var unused = false;
|
||||
if (!Mutable.FontsEnabled)
|
||||
if (!Mutable.UseHellionFont && !Mutable.FontsEnabled)
|
||||
{
|
||||
ImGuiUtil.FontSizeCombo(Language.Options_FontSize_Name, ref Mutable.FontSizeV2);
|
||||
}
|
||||
else
|
||||
else if (!Mutable.UseHellionFont)
|
||||
{
|
||||
var globalChooser = ImGuiUtil.FontChooser(
|
||||
Language.Options_Font_Name,
|
||||
@@ -164,7 +159,12 @@ internal sealed class FontsAndColours : ISettingsTab
|
||||
string.Format(Language.Options_Italic_Description, Plugin.PluginName)
|
||||
);
|
||||
ImGui.Spacing();
|
||||
}
|
||||
|
||||
// v1.5.3: ExtraGlyphRanges is an atlas-wide property and stays
|
||||
// reachable regardless of UseHellionFont / FontsEnabled state so
|
||||
// users can verify or override the auto-activation on language change.
|
||||
ImGui.Spacing();
|
||||
if (ImGui.CollapsingHeader(Language.Options_ExtraGlyphs_Name))
|
||||
{
|
||||
ImGuiUtil.HelpMarker(
|
||||
@@ -180,9 +180,6 @@ internal sealed class FontsAndColours : ISettingsTab
|
||||
Mutable.ExtraGlyphRanges = (ExtraGlyphRanges)range;
|
||||
}
|
||||
|
||||
ImGui.Spacing();
|
||||
}
|
||||
|
||||
ImGuiUtil.FontSizeCombo(
|
||||
Language.Options_SymbolsFontSize_Name,
|
||||
ref Mutable.SymbolsFontSizeV2
|
||||
|
||||
@@ -139,7 +139,12 @@ internal sealed class General : ISettingsTab
|
||||
{
|
||||
if (combo.Success)
|
||||
{
|
||||
foreach (var language in Enum.GetValues<LanguageOverride>())
|
||||
// None pinned first, then alphabetical by endonym so source order
|
||||
// (append-only for serialisation safety) is not visible to users.
|
||||
var sortedLanguages = Enum.GetValues<LanguageOverride>()
|
||||
.OrderBy(l => l == LanguageOverride.None ? 0 : 1)
|
||||
.ThenBy(l => l.Name(), StringComparer.InvariantCulture);
|
||||
foreach (var language in sortedLanguages)
|
||||
{
|
||||
if (ImGui.Selectable(language.Name()))
|
||||
{
|
||||
@@ -151,6 +156,9 @@ internal sealed class General : ISettingsTab
|
||||
ImGuiUtil.HelpMarker(
|
||||
string.Format(Language.Options_Language_Description, Plugin.PluginName)
|
||||
);
|
||||
// v1.5.3: HellionChat's font stack covers 24 languages but FFXIV's
|
||||
// engine only supports EN/DE/FR/JA for chat input/sending.
|
||||
ImGuiUtil.WarningText(HellionStrings.Settings_Language_FFXIVCoverage_Warning);
|
||||
ImGui.Spacing();
|
||||
|
||||
using (
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/actions/workflows/build.yml)
|
||||
[](LICENSE)
|
||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/latest)
|
||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/latest)
|
||||
[](https://github.com/goatcorp/Dalamud)
|
||||
[](https://dotnet.microsoft.com/)
|
||||
[](https://www.finalfantasyxiv.com/)
|
||||
@@ -11,7 +11,7 @@
|
||||
<img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" />
|
||||
</p>
|
||||
|
||||
**Version 1.5.2** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, built on
|
||||
**Version 1.5.3** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, built on
|
||||
[Chat 2](https://github.com/Infiziert90/ChatTwo) (EUPL-1.2).
|
||||
|
||||
Hellion Chat is a privacy-first plugin built on the Chat 2 foundation. The majority of the engine
|
||||
@@ -55,7 +55,7 @@ Hellion Chat is developed under **Hellion Forge**, the specialized modding and p
|
||||
| UI | Dear ImGui (Dalamud bindings) |
|
||||
| Database | SQLite (Microsoft.Data.Sqlite, MessagePack storage) |
|
||||
| Localization | ResX (HellionStrings.resx, .de.resx; PR-based) |
|
||||
| Font | Exo 2 (SIL Open Font License 1.1, bundled) |
|
||||
| Font | Inter Light (SIL Open Font License 1.1, bundled) |
|
||||
| Toolchain | dotnet 10 SDK, VS Code with C# Dev Kit |
|
||||
| Deployment | GitHub Releases + custom repo (`repo.json`) |
|
||||
|
||||
@@ -103,7 +103,7 @@ Hellion Chat is developed under **Hellion Forge**, the specialized modding and p
|
||||
Colors: Classic (Chat 2 default), High Contrast, Pastel, Dark Mode Tuned, Hellion (brand), plus
|
||||
bonus moods Night Blue and Indigo Violet. One-click apply, battle channels remain untouched.
|
||||
- **Window opacity slider** for combat-friendly transparency.
|
||||
- **Bundled Hellion font** (Exo 2, OFL-1.1) as an optional default instead of the system font.
|
||||
- **Bundled UI font** (Inter Light, OFL-1.1) as an optional default instead of the system font.
|
||||
- **Hellion logo** bundled in the plugin and displayed in the Dalamud plugin list.
|
||||
|
||||
#### Custom Themes (v1.1.0)
|
||||
@@ -164,8 +164,8 @@ HellionChat/
|
||||
│ ├── HellionStrings.de.resx # German translation
|
||||
│ ├── HellionStrings.Designer.cs # Hand-maintained accessor
|
||||
│ ├── ChatColourPresets.cs # Seven built-in color presets (v0.6.0)
|
||||
│ ├── HellionFont.ttf # Exo 2 variable font
|
||||
│ ├── HellionFont-OFL.txt # OFL-1.1 license text (bundled with font)
|
||||
│ ├── Inter-Light.ttf # Inter Light static font (bundled UI font)
|
||||
│ ├── Inter-OFL.txt # OFL-1.1 license text (bundled with font)
|
||||
│ └── Language*.resx # Upstream localization (Crowdin)
|
||||
├── Ui/
|
||||
│ ├── FirstRunWizard.cs # Three-profile onboarding
|
||||
@@ -299,6 +299,28 @@ An optional submission to the Dalamud main plugin repo (in addition to the custo
|
||||
|
||||
## Project Status
|
||||
|
||||
**Version 1.5.3** — Localisation Wave + Bundled-Font Overhaul. Twenty-four selectable UI languages
|
||||
(Catalan, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Italian,
|
||||
Japanese, Korean, Norsk bokmål, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian,
|
||||
Russian, Spanish, Swedish, Turkish, Ukrainian, Simplified Chinese, Traditional Chinese); dropdown
|
||||
sorts alphabetically by endonym, "None" pinned first. Non-native translations are AI-assisted and
|
||||
flagged for community native-speaker review. The bundled UI font swaps from Exo 2 to **Inter
|
||||
Light** (SIL OFL 1.1, 343 KB) for wider Latin Extended-A/B, Greek polytonic and Cyrillic Supplement
|
||||
coverage. **NotoSansCjkRegular** joins as a third merge layer so Hangul and Simplified-Chinese
|
||||
glyphs the FFXIV Japanese game font does not ship now render correctly. First-frame HITCH dropped
|
||||
from ~74 ms (v1.5.2 baseline that held since v1.4.x) to a median of ~20 ms (5-reload sample
|
||||
17.9-23.6 ms, Linux/Wine) as a side effect: the bundled-font path was silently falling back to the
|
||||
FFXIV Axis game font for the entire v1.5.x series because of an early-return in `Plugin.cs:937`.
|
||||
The fix routes `RegularFont` through draw whenever either `FontsEnabled` or `UseHellionFont` is on,
|
||||
and lands the defer-pattern win v1.5.1 was reaching for. `ExtraGlyphRanges` auto-activates the
|
||||
matching flag on language change; two new flags (`LatinExtended`, `Greek`) join the existing set.
|
||||
A WarningText under the language dropdown notes that FFXIV's own chat input only fully supports
|
||||
EN/DE/FR/JA — other languages may garble when typed in-game. Migration v17 stays.
|
||||
|
||||
---
|
||||
|
||||
### Project status (pre-v1.5.3, kept for context)
|
||||
|
||||
**Version 1.5.2** — First-Run Wizard Rework. The single-page wizard becomes a four-step
|
||||
staged-commit flow (Welcome → Privacy → Power Settings → Done). The privacy picker becomes a 2×2
|
||||
grid with a fourth profile "Roleplay" that extends Privacy-First with `Say` and both emote types
|
||||
@@ -357,7 +379,7 @@ Hellion Chat is a standalone plugin, no longer a fork in the repository sense. F
|
||||
- First-run wizard with three profiles
|
||||
- Plugin identity: own `HellionChat` slot, layout migration from Chat 2, Migrate3 recovery
|
||||
- Bilingual UI (EN and DE) with live language switching
|
||||
- Hellion theme, Hellion logo, bundled Exo 2 font
|
||||
- Hellion theme, Hellion logo, bundled Inter Light font
|
||||
- Custom repo pipeline with automated GitHub Release distribution
|
||||
- Slash commands consolidated to the `/hellionchat` family
|
||||
- Web interface removed (v0.2.0)
|
||||
|
||||
@@ -11,6 +11,94 @@ releases as an overview and links to the release pages for details.
|
||||
|
||||
---
|
||||
|
||||
## Hellion Chat 1.5.3 — Localisation Wave + Bundled-Font Overhaul (2026-05-19)
|
||||
|
||||
Multi-language pass plus a long-standing first-frame HITCH lands as a side effect of a font-stack
|
||||
rewrite. The bundled UI font swaps from Exo 2 to Inter Light. HellionChat now ships strings and
|
||||
renderable glyph coverage for 24 languages.
|
||||
|
||||
### User-visible
|
||||
|
||||
- Twenty-four selectable UI languages: Catalan, Czech, Danish, Dutch, English, Finnish, French,
|
||||
German, Greek, Hungarian, Italian, Japanese, Korean, Norsk bokmål, Polish, Portuguese (Brazil),
|
||||
Portuguese (Portugal), Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian, Simplified
|
||||
Chinese, Traditional Chinese. The dropdown sorts alphabetically by endonym, "None" pinned first.
|
||||
Non-native translations are AI-assisted and flagged for community native-speaker review via the
|
||||
Hellion Forge Discord.
|
||||
- Bundled **Inter Light** replaces Exo 2 as the in-plugin font. Wider European coverage (Latin
|
||||
Extended-A/B, Greek polytonic, Cyrillic Supplement) so Czech, Polish, Romanian, Turkish,
|
||||
Hungarian, Greek and Ukrainian render without manual font configuration. SIL OFL 1.1, 343 KB.
|
||||
- **NotoSansCjkRegular fallback** layer added as a merge-on-top so Hangul, Simplified-Chinese
|
||||
characters specific to the post-1956 reform, and other CJK glyphs the FFXIV Japanese game font
|
||||
does not ship now render correctly inside the HellionChat UI.
|
||||
- First-frame **HITCH dropped from ~74 ms** (the v1.5.2 baseline that has held since v1.4.x) to a
|
||||
**median of ~20 ms** (5-reload sample: 23.6 / 20.4 / 17.9 / 20.1 / 19.2 ms, Linux/Wine; Windows
|
||||
baseline pending Jin's verification per the cross-platform-pflicht). The bundled-font path
|
||||
silently fell back to the FFXIV Axis game font for the entire v1.5.x series because of an
|
||||
early-return in the draw loop. The fix that routes `RegularFont` through draw also lands the
|
||||
defer-pattern win the v1.5.1 cycle was reaching for.
|
||||
- **ExtraGlyphRanges activates automatically** when the user picks a language that needs a non-Latin
|
||||
script. Selecting Korean enables the Korean glyph range and rebuilds the atlas without a manual
|
||||
toggle in Fonts & Colours.
|
||||
- New **WarningText under the language dropdown** notes that FFXIV's own chat input only fully
|
||||
supports EN, DE, FR and JA character sets. Other languages render inside HellionChat but may
|
||||
garble when typed into in-game chat or sent as messages.
|
||||
|
||||
### Under the hood
|
||||
|
||||
- Three-layer font stack in `FontManager.BuildRegularFontHandle` and `BuildItalicFontHandle`:
|
||||
Inter Light (or the user-selected global font) as primary, FFXIV JapaneseFont as merge 1 for
|
||||
native FFXIV kana/kanji style, NotoSansCjkRegular as merge 2 for everything else CJK.
|
||||
- Two new `ExtraGlyphRanges` flags: `LatinExtended` (U+0100-U+024F) and `Greek` (U+0370-U+03FF +
|
||||
U+1F00-U+1FFF). Implemented as `builder.AddChar` pair lists in `SetUpRanges` (no managed-pointer
|
||||
pinning needed).
|
||||
- `LanguageOverride` enum gains ten locales (Catalan, Czech, Danish, Finnish, Hungarian,
|
||||
Norwegian, Polish, Portuguese (Portugal), Turkish, Ukrainian) plus three previously
|
||||
commented-out entries (Italian, Korean, Norwegian re-enabled with code `nb` instead of `no`).
|
||||
New values are appended to the enum to keep existing user-config integer serialisation stable.
|
||||
- **Crowdin gap closed:** four ChatTwo keys added after the last community sync
|
||||
(`Options_ColorSelectedInputChannelButton_Name` / `_Description`,
|
||||
`Options_HideInNewGamePlusMenu_Name` / `_Description`) are now backfilled into the thirteen
|
||||
legacy Crowdin locales with per-key AI-translated markers.
|
||||
- Plugin init runs a one-shot migration that ORs in the matching `ExtraGlyphRanges` flag based on
|
||||
the user's current `LanguageOverride`. An update from v1.5.2 picks up the new coverage without
|
||||
the user having to toggle the language twice.
|
||||
- `Plugin.cs:937` draw-path fixed: `RegularFont` is now pushed whenever **either** `FontsEnabled`
|
||||
**or** `UseHellionFont` is on. The previous `Config.FontsEnabled`-only check meant the bundled
|
||||
font path was silently dead whenever `FontsAndColours.cs:50` force-set `FontsEnabled = false` on
|
||||
the UseHellionFont-toggle. Source of the HITCH win.
|
||||
- `ExtraGlyphRanges` settings panel is now reachable in **all** UseHellionFont / FontsEnabled
|
||||
combinations. The bundled-font branch used to short-circuit past it.
|
||||
- **Resource bundle split:** fork-added strings live in `HellionStrings.resx` (24 locales, 328
|
||||
keys each) alongside the ChatTwo-Crowdin-heritage `Language.resx` (24 locales, 456 keys each).
|
||||
The `Language` siblings for the ten brand-new locales and Greek carry a Hellion Forge maintainer
|
||||
header that points reviewers at the Discord rather than the standalone-hosted Gitea.
|
||||
- **Em-dash sweep** across the EN source and 18 translations: in-prose em-dashes replaced with
|
||||
period or colon per the house style guide. Russian and Ukrainian keep their typographic norm
|
||||
where the em-dash is orthographically required (subject-predicate separator).
|
||||
- **Bundled font asset rotation:** `HellionFont.ttf` (Exo 2) plus its OFL notice removed from
|
||||
`Resources/`. `Inter-Light.ttf` plus `Inter-OFL.txt` take their place. `FontManager`
|
||||
references rename to `BundledFontBytes` / `TryGetBundledFontBytes()` for clarity (config field
|
||||
`UseHellionFont` keeps its name so existing user configs deserialize cleanly).
|
||||
|
||||
### Migration
|
||||
|
||||
- Migration v17 stays (no schema bump).
|
||||
- Existing `UseHellionFont = true` users transition transparently from Exo 2 to Inter Light on
|
||||
first reload.
|
||||
- Existing users with `LanguageOverride != None` get their matching `ExtraGlyphRanges` flag set
|
||||
on the first plugin init after the v1.5.3 update (Plugin.cs LoadAsync migration step).
|
||||
|
||||
### Reserved for follow-up cycles
|
||||
|
||||
- Native-speaker review pass for AI-assisted translations in the 13 legacy Crowdin locales (ca,
|
||||
es, fr, it, ja, ko, nl, pt-BR, ro, ru, sv, zh-Hans, zh-Hant) — corrections via the Hellion
|
||||
Forge Discord.
|
||||
|
||||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||||
|
||||
---
|
||||
|
||||
## Hellion Chat 1.5.2 — First-Run Wizard Rework (2026-05-18)
|
||||
|
||||
UX patch. The single-page first-run wizard becomes a four-step staged-commit flow, the privacy
|
||||
|
||||
+36
-6
@@ -10,13 +10,43 @@ be a poor fit for the plugin's privacy-first scope during brainstorming.
|
||||
|
||||
---
|
||||
|
||||
## Next Cycle (v1.5.3)
|
||||
## Next Cycle
|
||||
|
||||
**French localisation.** Strings from `Resources/HellionStrings.resx` get a FR translation pass
|
||||
(DeepL first draft), then Hezcal native-speaker review before release. After that, the Plugin
|
||||
Integrations Wave 2-6 (Context-Menu, NotificationMaster, Moodles, ExtraChat, XIVIM Quick-DM) and the
|
||||
UiBuilder first-frame HITCH investigation that v1.5.1 surfaced are queued behind it, alongside the
|
||||
Wine/Linux scroll-rubber-band spike at the tail.
|
||||
**Plugin Integrations Wave 2-6** (Context-Menu, NotificationMaster, Moodles, ExtraChat, XIVIM
|
||||
Quick-DM) is the next planned scope. The UiBuilder first-frame HITCH investigation that v1.5.1
|
||||
queued is now closed as a side effect of v1.5.3's font-stack fix — HITCH dropped from ~74 ms into
|
||||
the 15-25 ms range. The Wine/Linux scroll-rubber-band spike remains at the tail.
|
||||
|
||||
Native-speaker review of the AI-assisted v1.5.3 translations (13 legacy Crowdin locales) runs in
|
||||
parallel as a continuous correction pass, gathered via the Hellion Forge Discord.
|
||||
|
||||
---
|
||||
|
||||
## v1.5.3 — Localisation Wave + Bundled-Font Overhaul (released 2026-05-19)
|
||||
|
||||
Twenty-four selectable UI languages: from FR-only as the original plan scope, the cycle expanded to
|
||||
cover Catalan, Czech, Danish, Finnish, Greek, Hungarian, Italian, Korean, Norwegian, Polish,
|
||||
Portuguese (Portugal), Turkish and Ukrainian alongside the existing Crowdin-heritage locales, all
|
||||
AI-translated and flagged for community review. Bundled font swaps from Exo 2 to **Inter Light**
|
||||
for wider European glyph coverage (Latin Extended-A/B, Greek polytonic, Cyrillic Supplement);
|
||||
**NotoSansCjkRegular** joins as a third merge layer so Hangul and Simplified-Chinese-specific Han
|
||||
glyphs render correctly inside the HellionChat UI.
|
||||
|
||||
First-frame HITCH dropped from **~74 ms to a median of ~20 ms** (5-reload sample 17.9-23.6 ms,
|
||||
Linux/Wine) as a side effect: the bundled-font path was silently falling back to the FFXIV Axis
|
||||
game font for the entire v1.5.x series because of an early-return in `Plugin.cs:937`. The fix
|
||||
routes `RegularFont` through draw whenever either `FontsEnabled` or `UseHellionFont` is on, and
|
||||
lands the defer-pattern win v1.5.1 was reaching for.
|
||||
|
||||
`ExtraGlyphRanges` auto-activates the matching flag on language change. Two new flags
|
||||
(`LatinExtended`, `Greek`) join the existing set. Plugin init runs a one-shot migration that ORs
|
||||
the required flag into the saved config for users updating from v1.5.2 with a non-default language
|
||||
already selected. A WarningText under the language dropdown notes that FFXIV's own chat input only
|
||||
fully supports EN/DE/FR/JA — other languages may garble when typed into in-game chat.
|
||||
|
||||
Migration v17 stays. `LanguageOverride` enum grows by ten locales plus three previously
|
||||
commented-out (Italian, Korean, Norwegian with code `nb`); all new values append to keep existing
|
||||
user-config integer serialisation stable.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user