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