From 8ad6cce6c2ec01844b788c3be6a817894b5b9eeb Mon Sep 17 00:00:00 2001 From: rampaa Date: Mon, 10 Feb 2025 00:37:12 +0300 Subject: [PATCH] Minor --- JL.Core/Audio/AudioUtils.cs | 16 ++- JL.Core/Dicts/JMdict/JmdictLoader.cs | 14 ++- JL.Core/Utilities/JapaneseUtils.cs | 144 +++++++++++++-------------- JL.Core/Utilities/Utils.cs | 13 --- 4 files changed, 92 insertions(+), 95 deletions(-) diff --git a/JL.Core/Audio/AudioUtils.cs b/JL.Core/Audio/AudioUtils.cs index adbc8961..a6050d38 100644 --- a/JL.Core/Audio/AudioUtils.cs +++ b/JL.Core/Audio/AudioUtils.cs @@ -21,16 +21,14 @@ public static class AudioUtils } }; - private static readonly FrozenDictionary s_mediaTypeToExtensionDict = new Dictionary(6, StringComparer.Ordinal) + private static readonly FrozenDictionary s_mediaTypeToExtensionDict = new KeyValuePair[6] { - // ReSharper disable BadExpressionBracesLineBreaks - { "mpeg", "mp3" }, - { "3gpp", "3gp" }, - { "3gpp2", "3g2" }, - { "vorbis", "ogg" }, - { "vorbis-config", "ogg" }, - { "x-midi", "midi" } - // ReSharper restore BadExpressionBracesLineBreaks + new("mpeg", "mp3"), + new("3gpp", "3gp"), + new("3gpp2", "3g2"), + new("vorbis", "ogg"), + new("vorbis-config", "ogg"), + new("x-midi", "midi") }.ToFrozenDictionary(StringComparer.Ordinal); private static async ValueTask GetAudioFromUrl(Uri url) diff --git a/JL.Core/Dicts/JMdict/JmdictLoader.cs b/JL.Core/Dicts/JMdict/JmdictLoader.cs index 2626f112..d432f2ae 100644 --- a/JL.Core/Dicts/JMdict/JmdictLoader.cs +++ b/JL.Core/Dicts/JMdict/JmdictLoader.cs @@ -11,6 +11,18 @@ internal static class JmdictLoader { private static bool s_canHandleCulture = true; + private static readonly FrozenDictionary s_iso6392BTo2T = new KeyValuePair[] + { + #pragma warning disable format + // ReSharper disable BadExpressionBracesLineBreaks + new("tib", "bod"), new("cze", "ces"), new("wel", "cym"), new("ger", "deu"), new("gre", "ell"), + new("baq", "eus"), new("per", "fas"), new("fre", "fra"), new("arm", "hye"), new("ice", "isl"), + new("geo", "kat"), new("mac", "mkd"), new("mao", "mri"), new("may", "msa"), new("bur", "mya"), + new("dut", "nld"), new("rum", "ron"), new("slo", "slk"), new("alb", "sqi"), new("chi", "zho") + // ReSharper restore BadExpressionBracesLineBreaks + #pragma warning restore format + }.ToFrozenDictionary(StringComparer.Ordinal); + public static async Task Load(Dict dict) { string fullPath = Path.GetFullPath(dict.Path, Utils.ApplicationPath); @@ -309,7 +321,7 @@ private static Sense ReadSense(XmlTextReader xmlReader) { if (s_canHandleCulture) { - if (Utils.s_iso6392BTo2T.TryGetValue(lang, out string? langCode)) + if (s_iso6392BTo2T.TryGetValue(lang, out string? langCode)) { lang = langCode; } diff --git a/JL.Core/Utilities/JapaneseUtils.cs b/JL.Core/Utilities/JapaneseUtils.cs index 5dd7df06..2c640158 100644 --- a/JL.Core/Utilities/JapaneseUtils.cs +++ b/JL.Core/Utilities/JapaneseUtils.cs @@ -53,66 +53,66 @@ public static partial class JapaneseUtils private static partial Regex KanaRegex { get; } - private static readonly FrozenDictionary s_katakanaToHiraganaDict = new Dictionary(87) + private static readonly FrozenDictionary s_katakanaToHiraganaDict = new KeyValuePair[] { #pragma warning disable format // ReSharper disable BadExpressionBracesLineBreaks - { 'ア', "あ" }, { 'イ', "い" }, { 'ウ', "う" }, { 'エ', "え" }, { 'オ', "お" }, - { 'カ', "か" }, { 'キ', "き" }, { 'ク', "く" }, { 'ケ', "け" }, { 'コ', "こ" }, - { 'サ', "さ" }, { 'シ', "し" }, { 'ス', "す" }, { 'セ', "せ" }, { 'ソ', "そ" }, - { 'タ', "た" }, { 'チ', "ち" }, { 'ツ', "つ" }, { 'テ', "て" }, { 'ト', "と" }, - { 'ナ', "な" }, { 'ニ', "に" }, { 'ヌ', "ぬ" }, { 'ネ', "ね" }, { 'ノ', "の" }, - { 'ハ', "は" }, { 'ヒ', "ひ" }, { 'フ', "ふ" }, { 'ヘ', "へ" }, { 'ホ', "ほ" }, - { 'マ', "ま" }, { 'ミ', "み" }, { 'ム', "む" }, { 'メ', "め" }, { 'モ', "も" }, - { 'ラ', "ら" }, { 'リ', "り" }, { 'ル', "る" }, { 'レ', "れ" }, { 'ロ', "ろ" }, + new('ア', "あ"), new('イ', "い"), new('ウ', "う"), new('エ', "え"), new('オ', "お"), + new('カ', "か"), new('キ', "き"), new('ク', "く"), new('ケ', "け"), new('コ', "こ"), + new('サ', "さ"), new('シ', "し"), new('ス', "す"), new('セ', "せ"), new('ソ', "そ"), + new('タ', "た"), new('チ', "ち"), new('ツ', "つ"), new('テ', "て"), new('ト', "と"), + new('ナ', "な"), new('ニ', "に"), new('ヌ', "ぬ"), new('ネ', "ね"), new('ノ', "の"), + new('ハ', "は"), new('ヒ', "ひ"), new('フ', "ふ"), new('ヘ', "へ"), new('ホ', "ほ"), + new('マ', "ま"), new('ミ', "み"), new('ム', "む"), new('メ', "め"), new('モ', "も"), + new('ラ', "ら"), new('リ', "り"), new('ル', "る"), new('レ', "れ"), new('ロ', "ろ"), - { 'ガ', "が" }, { 'ギ', "ぎ" }, { 'グ', "ぐ" }, { 'ゲ', "げ" }, { 'ゴ', "ご" }, - { 'ザ', "ざ" }, { 'ジ', "じ" }, { 'ズ', "ず" }, { 'ゼ', "ぜ" }, { 'ゾ', "ぞ" }, - { 'ダ', "だ" }, { 'ヂ', "ぢ" }, { 'ヅ', "づ" }, { 'デ', "で" }, { 'ド', "ど" }, - { 'バ', "ば" }, { 'ビ', "び" }, { 'ブ', "ぶ" }, { 'ベ', "べ" }, { 'ボ', "ぼ" }, - { 'パ', "ぱ" }, { 'ピ', "ぴ" }, { 'プ', "ぷ" }, { 'ペ', "ぺ" }, { 'ポ', "ぽ" }, + new('ガ', "が"), new('ギ', "ぎ"), new('グ', "ぐ"), new('ゲ', "げ"), new('ゴ', "ご"), + new('ザ', "ざ"), new('ジ', "じ"), new('ズ', "ず"), new('ゼ', "ぜ"), new('ゾ', "ぞ"), + new('ダ', "だ"), new('ヂ', "ぢ"), new('ヅ', "づ"), new('デ', "で"), new('ド', "ど"), + new('バ', "ば"), new('ビ', "び"), new('ブ', "ぶ"), new('ベ', "べ"), new('ボ', "ぼ"), + new('パ', "ぱ"), new('ピ', "ぴ"), new('プ', "ぷ"), new('ペ', "ぺ"), new('ポ', "ぽ"), - { 'ワ', "わ" }, { 'ヲ', "を" }, - { 'ヤ', "や" }, { 'ユ', "ゆ" }, { 'ヨ', "よ" }, - { 'ン', "ん" }, + new('ワ', "わ"), new('ヲ', "を"), + new('ヤ', "や"), new('ユ', "ゆ"), new('ヨ', "よ"), + new('ン', "ん"), - { 'ァ', "ぁ" }, { 'ィ', "ぃ" }, { 'ゥ', "ぅ" }, { 'ェ', "ぇ" }, { 'ォ', "ぉ" }, - { 'ャ', "ゃ" }, { 'ュ', "ゅ" }, { 'ョ', "ょ" }, + new('ァ', "ぁ"), new('ィ', "ぃ"), new('ゥ', "ぅ"), new('ェ', "ぇ"), new('ォ', "ぉ"), + new('ャ', "ゃ"), new('ュ', "ゅ"), new('ョ', "ょ"), - { 'ヮ', "ゎ" }, + new('ヮ', "ゎ"), - { 'ヴ', "ゔ" }, { 'ヽ', "ゝ" }, { 'ヾ', "ゞ" }, { 'ッ', "っ" }, + new('ヴ', "ゔ"), new('ヽ', "ゝ"), new('ヾ', "ゞ"), new('ッ', "っ"), - { 'ヸ', "ゐ゙" }, { 'ヹ', "ゑ゙" }, { 'ヺ', "を゙" } + new('ヸ', "ゐ゙"), new('ヹ', "ゑ゙"), new('ヺ', "を゙") // ReSharper restore BadExpressionBracesLineBreaks #pragma warning restore format }.ToFrozenDictionary(); - private static readonly FrozenDictionary s_kanaFinalVowelDict = new Dictionary(87, StringComparer.Ordinal) + private static readonly FrozenDictionary s_kanaFinalVowelDict = new KeyValuePair[] { #pragma warning disable format // ReSharper disable BadExpressionBracesLineBreaks //Hiragana - { "あ", 'あ' }, { "か", 'あ' }, { "さ", 'あ' }, { "た", 'あ' }, { "な", 'あ' }, { "は", 'あ' }, - { "ま", 'あ' }, { "ら", 'あ' }, { "が", 'あ' }, { "ざ", 'あ' }, { "だ", 'あ' }, { "ば", 'あ' }, - { "ぱ", 'あ' }, { "わ", 'あ' }, { "や", 'あ' }, { "ぁ", 'あ' }, { "ゃ", 'あ' }, { "ゕ", 'あ' }, - { "ゎ", 'あ' }, - - { "い", 'い' }, { "き", 'い' }, { "し", 'い' }, { "ち", 'い' }, { "に", 'い' }, { "ひ", 'い' }, - { "み", 'い' }, { "り", 'い' }, { "ぎ", 'い' }, { "じ", 'い' }, { "ぢ", 'い' }, { "び", 'い' }, - { "ぴ", 'い' }, { "ぃ", 'い' }, { "ゐ", 'い' }, { "ゐ゙", 'い' }, - - { "う", 'う' }, { "く", 'う' }, { "す", 'う' }, { "つ", 'う' }, { "ぬ", 'う' }, { "ふ", 'う' }, - { "む", 'う' }, { "る", 'う' }, { "ぐ", 'う' }, { "ず", 'う' }, { "づ", 'う' }, { "ぶ", 'う' }, - { "ぷ", 'う' }, { "ゆ", 'う' }, { "ぅ", 'う' }, { "ゅ", 'う' }, { "ゔ", 'う' }, - - { "え", 'え' }, { "け", 'え' }, { "せ", 'え' }, { "て", 'え' }, { "ね", 'え' }, { "へ", 'え' }, - { "め", 'え' }, { "れ", 'え' }, { "げ", 'え' }, { "ぜ", 'え' }, { "で", 'え' }, { "べ", 'え' }, - { "ぺ", 'え' }, { "ぇ", 'え' }, { "ゖ", 'え' }, { "ゑ", 'え' }, { "ゑ゙", 'え' }, - - { "お", 'お' }, { "こ", 'お' }, { "そ", 'お' }, { "と", 'お' }, { "の", 'お' }, { "ほ", 'お' }, - { "も", 'お' }, { "ろ", 'お' }, { "ご", 'お' }, { "ぞ", 'お' }, { "ど", 'お' }, { "ぼ", 'お' }, - { "ぽ", 'お' }, { "を", 'お' }, { "よ", 'お' }, { "ぉ", 'お' }, { "ょ", 'お' }, { "を゙", 'お' } + new("あ", 'あ'), new("か", 'あ'), new("さ", 'あ'), new("た", 'あ'), new("な", 'あ'), new("は", 'あ'), + new("ま", 'あ'), new("ら", 'あ'), new("が", 'あ'), new("ざ", 'あ'), new("だ", 'あ'), new("ば", 'あ'), + new("ぱ", 'あ'), new("わ", 'あ'), new("や", 'あ'), new("ぁ", 'あ'), new("ゃ", 'あ'), new("ゕ", 'あ'), + new("ゎ", 'あ'), + + new("い", 'い'), new("き", 'い'), new("し", 'い'), new("ち", 'い'), new("に", 'い'), new("ひ", 'い'), + new("み", 'い'), new("り", 'い'), new("ぎ", 'い'), new("じ", 'い'), new("ぢ", 'い'), new("び", 'い'), + new("ぴ", 'い'), new("ぃ", 'い'), new("ゐ", 'い'), new("ゐ゙", 'い'), + + new("う", 'う'), new("く", 'う'), new("す", 'う'), new("つ", 'う'), new("ぬ", 'う'), new("ふ", 'う'), + new("む", 'う'), new("る", 'う'), new("ぐ", 'う'), new("ず", 'う'), new("づ", 'う'), new("ぶ", 'う'), + new("ぷ", 'う'), new("ゆ", 'う'), new("ぅ", 'う'), new("ゅ", 'う'), new("ゔ", 'う'), + + new("え", 'え'), new("け", 'え'), new("せ", 'え'), new("て", 'え'), new("ね", 'え'), new("へ", 'え'), + new("め", 'え'), new("れ", 'え'), new("げ", 'え'), new("ぜ", 'え'), new("で", 'え'), new("べ", 'え'), + new("ぺ", 'え'), new("ぇ", 'え'), new("ゖ", 'え'), new("ゑ", 'え'), new("ゑ゙", 'え'), + + new("お", 'お'), new("こ", 'お'), new("そ", 'お'), new("と", 'お'), new("の", 'お'), new("ほ", 'お'), + new("も", 'お'), new("ろ", 'お'), new("ご", 'お'), new("ぞ", 'お'), new("ど", 'お'), new("ぼ", 'お'), + new("ぽ", 'お'), new("を", 'お'), new("よ", 'お'), new("ぉ", 'お'), new("ょ", 'お'), new("を゙", 'お') // ReSharper restore BadExpressionBracesLineBreaks #pragma warning restore format }.ToFrozenDictionary(StringComparer.Ordinal); @@ -144,37 +144,37 @@ public static partial class JapaneseUtils '\n' ]; - private static readonly FrozenDictionary s_leftToRightBracketDict = new Dictionary(28) + private static readonly FrozenDictionary s_leftToRightBracketDict = new KeyValuePair[] { // ReSharper disable BadExpressionBracesLineBreaks - { '「', '」' }, - { '『', '』' }, - { '【', '】' }, - { '《', '》' }, - { '〔', '〕' }, - { '(', ')' }, - { '[', ']' }, - { '〈', '〉' }, - { '{', '}' }, - { '<', '>' }, - { '〝', '〟' }, - { '"', '"' }, - { ''', ''' }, - { '「', '」' }, - { '⟨', '⟩' }, - { '(', ')' }, - { '[', ']' }, - { '{', '}' }, - { '︗', '︘' }, - { '﹁', '﹂' }, - { '﹃', '﹄' }, - { '︵', '︶' }, - { '﹇', '﹈' }, - { '︷', '︸' }, - { '︹', '︺' }, - { '︻', '︼' }, - { '︽', '︾' }, - { '︿', '﹀' } + new('「', '」'), + new('『', '』'), + new('【', '】'), + new('《', '》'), + new('〔', '〕'), + new('(', ')'), + new('[', ']'), + new('〈', '〉'), + new('{', '}'), + new('<', '>'), + new('〝', '〟'), + new('"', '"'), + new(''', '''), + new('「', '」'), + new('⟨', '⟩'), + new('(', ')'), + new('[', ']'), + new('{', '}'), + new('︗', '︘'), + new('﹁', '﹂'), + new('﹃', '﹄'), + new('︵', '︶'), + new('﹇', '﹈'), + new('︷', '︸'), + new('︹', '︺'), + new('︻', '︼'), + new('︽', '︾'), + new('︿', '﹀') // ReSharper restore BadExpressionBracesLineBreaks }.ToFrozenDictionary(); diff --git a/JL.Core/Utilities/Utils.cs b/JL.Core/Utilities/Utils.cs index 81043de8..0cb51c5f 100644 --- a/JL.Core/Utilities/Utils.cs +++ b/JL.Core/Utilities/Utils.cs @@ -1,4 +1,3 @@ -using System.Collections.Frozen; using System.Globalization; using System.Security.Cryptography; using System.Text.Encodings.Web; @@ -111,18 +110,6 @@ public static partial class Utils } }; - internal static readonly FrozenDictionary s_iso6392BTo2T = new Dictionary(20, StringComparer.Ordinal) - { - #pragma warning disable format - // ReSharper disable BadExpressionBracesLineBreaks - { "tib", "bod" }, { "cze", "ces" }, { "wel", "cym" }, { "ger", "deu" }, { "gre", "ell" }, - { "baq", "eus" }, { "per", "fas" }, { "fre", "fra" }, { "arm", "hye" }, { "ice", "isl" }, - { "geo", "kat" }, { "mac", "mkd" }, { "mao", "mri" }, { "may", "msa" }, { "bur", "mya" }, - { "dut", "nld" }, { "rum", "ron" }, { "slo", "slk" }, { "alb", "sqi" }, { "chi", "zho" } - // ReSharper restore BadExpressionBracesLineBreaks - #pragma warning restore format - }.ToFrozenDictionary(StringComparer.Ordinal); - #pragma warning disable CA5351 internal static string GetMd5String(ReadOnlySpan bytes) {