feat: add support for Chinese characters
This commit is contained in:
parent
bd68419074
commit
2f68ab1950
|
@ -36,6 +36,7 @@ internal class Configuration : IPluginConfiguration {
|
|||
public bool SortAutoTranslate;
|
||||
|
||||
public bool FontsEnabled = true;
|
||||
public bool EnableChineseRange;
|
||||
public float FontSize = 17f;
|
||||
public float JapaneseFontSize = 17f;
|
||||
public float SymbolsFontSize = 17f;
|
||||
|
@ -70,6 +71,7 @@ internal class Configuration : IPluginConfiguration {
|
|||
this.SharedMode = other.SharedMode;
|
||||
this.SortAutoTranslate = other.SortAutoTranslate;
|
||||
this.FontsEnabled = other.FontsEnabled;
|
||||
this.EnableChineseRange = other.EnableChineseRange;
|
||||
this.FontSize = other.FontSize;
|
||||
this.JapaneseFontSize = other.JapaneseFontSize;
|
||||
this.SymbolsFontSize = other.SymbolsFontSize;
|
||||
|
@ -246,49 +248,61 @@ internal static class KeybindModeExt {
|
|||
[Serializable]
|
||||
internal enum LanguageOverride {
|
||||
None,
|
||||
ChineseSimplified,
|
||||
ChineseTraditional,
|
||||
English,
|
||||
French,
|
||||
German,
|
||||
Italian,
|
||||
Japanese,
|
||||
Korean,
|
||||
Norwegian,
|
||||
Greek,
|
||||
// Italian,
|
||||
// Japanese,
|
||||
// Korean,
|
||||
// Norwegian,
|
||||
PortugueseBrazil,
|
||||
Romanian,
|
||||
Russian,
|
||||
Spanish,
|
||||
Swedish,
|
||||
}
|
||||
|
||||
internal static class LanguageOverrideExt {
|
||||
internal static string Name(this LanguageOverride mode) => mode switch {
|
||||
LanguageOverride.None => Language.LanguageOverride_None,
|
||||
LanguageOverride.ChineseSimplified => "简体中文",
|
||||
LanguageOverride.ChineseTraditional => "繁體中文",
|
||||
LanguageOverride.English => "English",
|
||||
LanguageOverride.French => "Français",
|
||||
LanguageOverride.German => "Deutsch",
|
||||
LanguageOverride.Italian => "Italiano",
|
||||
LanguageOverride.Japanese => "日本語",
|
||||
LanguageOverride.Korean => "한국어 (Korean)",
|
||||
LanguageOverride.Norwegian => "Norsk",
|
||||
LanguageOverride.Greek => "Ελληνικά",
|
||||
// LanguageOverride.Italian => "Italiano",
|
||||
// LanguageOverride.Japanese => "日本語",
|
||||
// LanguageOverride.Korean => "한국어 (Korean)",
|
||||
// LanguageOverride.Norwegian => "Norsk",
|
||||
LanguageOverride.PortugueseBrazil => "Português do Brasil",
|
||||
LanguageOverride.Romanian => "Română",
|
||||
LanguageOverride.Russian => "Русский",
|
||||
LanguageOverride.Spanish => "Español",
|
||||
LanguageOverride.Swedish => "Svenska",
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(mode), mode, null),
|
||||
};
|
||||
|
||||
internal static string Code(this LanguageOverride mode) => mode switch {
|
||||
LanguageOverride.None => "",
|
||||
LanguageOverride.ChineseSimplified => "zh-hans",
|
||||
LanguageOverride.ChineseTraditional => "zh-hant",
|
||||
LanguageOverride.English => "en",
|
||||
LanguageOverride.French => "fr",
|
||||
LanguageOverride.German => "de",
|
||||
LanguageOverride.Italian => "it",
|
||||
LanguageOverride.Japanese => "ja",
|
||||
LanguageOverride.Korean => "ko",
|
||||
LanguageOverride.Norwegian => "no",
|
||||
LanguageOverride.Greek => "el",
|
||||
// LanguageOverride.Italian => "it",
|
||||
// LanguageOverride.Japanese => "ja",
|
||||
// LanguageOverride.Korean => "ko",
|
||||
// LanguageOverride.Norwegian => "no",
|
||||
LanguageOverride.PortugueseBrazil => "pt-br",
|
||||
LanguageOverride.Romanian => "ro",
|
||||
LanguageOverride.Russian => "ru",
|
||||
LanguageOverride.Spanish => "es",
|
||||
LanguageOverride.Swedish => "sv",
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(mode), mode, null),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -112,7 +112,15 @@ internal sealed class PluginUi : IDisposable {
|
|||
builder.Destroy();
|
||||
}
|
||||
|
||||
BuildRange(out this._ranges, null, ImGui.GetIO().Fonts.GetGlyphRangesDefault());
|
||||
var ranges = new List<IntPtr> {
|
||||
ImGui.GetIO().Fonts.GetGlyphRangesDefault(),
|
||||
};
|
||||
|
||||
if (this.Plugin.Config.EnableChineseRange) {
|
||||
ranges.Add(ImGui.GetIO().Fonts.GetGlyphRangesChineseFull());
|
||||
}
|
||||
|
||||
BuildRange(out this._ranges, null, ranges.ToArray());
|
||||
BuildRange(out this._jpRange, GlyphRangesJapanese.GlyphRanges);
|
||||
this.SetUpUserFonts();
|
||||
|
||||
|
|
|
@ -90,6 +90,10 @@ public class Fonts : ISettingsTab {
|
|||
|
||||
ImGuiUtil.HelpText(string.Format(Language.Options_JapaneseFont_Description, Plugin.PluginName));
|
||||
ImGui.Spacing();
|
||||
|
||||
ImGui.Checkbox("Enable Chinese glyphs", ref this.Mutable.EnableChineseRange);
|
||||
ImGuiUtil.HelpText("Adds support for Chinese characters in the global font.");
|
||||
ImGui.Spacing();
|
||||
}
|
||||
|
||||
const float speed = .0125f;
|
||||
|
|
Loading…
Reference in New Issue
Block a user