diff --git a/Language/Language.cs b/Language/Language.cs index 07e9e44..2635fab 100644 --- a/Language/Language.cs +++ b/Language/Language.cs @@ -22,8 +22,8 @@ SetCSJavaLanguage(Path.Combine(qwilightEntryPath, "Igniter", "Resources", "Language.json")); SetCSLanguageSystem(Path.Combine(qwilightEntryPath, "Igniter", "Resources", "Language.json"), Path.Combine(qwilightEntryPath, "Igniter", "System", "LanguageSystem", "LanguageSystem.g.cs"), "Igniter"); SetCSJavaLanguage(Path.Combine(twilightEntryPath, "src", "main", "resources", "Language.json")); -SetTSLanguage(Path.Combine(taehuiEntryPath, "qwilight-fe", "src", "Language.json")); -SetTSLanguage(Path.Combine(taehuiEntryPath, "taehui-fe", "src", "Language.json")); +SetTSLanguage(Path.Combine(taehuiEntryPath, "qwilight-fe", "src", "assets", "language")); +SetTSLanguage(Path.Combine(taehuiEntryPath, "taehui-fe", "src", "assets", "language")); void SetCSJavaLanguage(string languageFilePath) { @@ -119,67 +119,56 @@ } } -void SetTSLanguage(string languageFilePath) +void SetTSLanguage(string languageEntryPath) { - var textHeight = 0; var languageStore = new SortedDictionary>(); - var lastLanguage = string.Empty; - var lastPropertyName = string.Empty; - var r = new Utf8JsonReader(File.ReadAllBytes(languageFilePath)); - while (r.Read()) + foreach (var targetLanguage in new[] { "ko", "en" }) { - if (r.TokenType == JsonTokenType.StartObject) - { - ++textHeight; - continue; - } + languageStore[targetLanguage] = new SortedDictionary(); - if (r.TokenType == JsonTokenType.EndObject) + var textHeight = 0; + var lastPropertyName = string.Empty; + var r = new Utf8JsonReader(File.ReadAllBytes(Path.Combine(languageEntryPath, $"{targetLanguage}.json"))); + while (r.Read()) { - --textHeight; - continue; - } - - if (textHeight == 1) - { - if (r.TokenType == JsonTokenType.PropertyName) + if (r.TokenType == JsonTokenType.StartObject) { - lastLanguage = r.GetString() ?? string.Empty; - languageStore[lastLanguage] = new SortedDictionary(); + ++textHeight; continue; } - } - if (textHeight == 3) - { - switch (r.TokenType) + if (r.TokenType == JsonTokenType.EndObject) { - case JsonTokenType.PropertyName: - lastPropertyName = r.GetString() ?? string.Empty; - break; - case JsonTokenType.String: - languageStore[lastLanguage][lastPropertyName] = r.GetString() ?? string.Empty; - break; + --textHeight; + continue; + } + + if (textHeight == 1) + { + switch (r.TokenType) + { + case JsonTokenType.PropertyName: + lastPropertyName = r.GetString() ?? string.Empty; + break; + case JsonTokenType.String: + languageStore[targetLanguage][lastPropertyName] = r.GetString() ?? string.Empty; + break; + } } } } - using (var fs = File.OpenWrite(languageFilePath)) - using (var w = new Utf8JsonWriter(fs, new JsonWriterOptions + foreach (var targetLanguage in new[] { "ko", "en" }) { - Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, - Indented = true - })) - { - w.WriteStartObject(); - - foreach (var (targetLanguage, targetPropertyName) in new[] { ("ko", "ko-KR"), ("en", "en-US") }) + using (var fs = File.OpenWrite(Path.Combine(languageEntryPath, $"{targetLanguage}.json"))) + using (var w = new Utf8JsonWriter(fs, new JsonWriterOptions { - w.WritePropertyName(targetPropertyName); + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, + Indented = true + })) + { w.WriteStartObject(); - w.WritePropertyName("translation"); - w.WriteStartObject(); - var t = GetLanguageStore(targetLanguage, targetPropertyName); + var t = GetLanguageStore(targetLanguage); t.Wait(); foreach (var defaultLanguage in t.Result) { @@ -190,23 +179,20 @@ } } w.WriteEndObject(); - w.WriteEndObject(); } - - w.WriteEndObject(); } - async Task> GetLanguageStore(string targetLanguage, string targetPropertyName) + async Task> GetLanguageStore(string targetLanguage) { if (targetLanguage == "ko") { - return languageStore["ko-KR"]; + return languageStore["ko"]; } var targetLanguageStore = new SortedDictionary(); - foreach (var defaultLanguage in languageStore["ko-KR"]) + foreach (var defaultLanguage in languageStore["ko"]) { - if (languageStore[targetPropertyName].TryGetValue(defaultLanguage.Key, out var targetLanguageValue)) + if (languageStore[targetLanguage].TryGetValue(defaultLanguage.Key, out var targetLanguageValue)) { targetLanguageStore[defaultLanguage.Key] = targetLanguageValue; } diff --git a/Qwilight/Assets/Language.json b/Qwilight/Assets/Language.json index d08593c..3ec8bac 100644 --- a/Qwilight/Assets/Language.json +++ b/Qwilight/Assets/Language.json @@ -911,6 +911,10 @@ "ko-KR": "에디터 실행이 불가능합니다. ({0})", "en-US": "Editor cannot run ({0})" }, + "Enroll": { + "ko-KR": "회원 가입", + "en-US": "Join membership" + }, "EnterAutoComputeConfigure": { "ko-KR": "라이브 컨트롤", "en-US": "Live control" @@ -3055,10 +3059,6 @@ "ko-KR": "리버브 활성화", "en-US": "Enable Reverb" }, - "SignUp": { - "ko-KR": "회원 가입", - "en-US": "Join membership" - }, "SilentSiteAvatarContents": { "ko-KR": "회원의 1대1 대화만 받음", "en-US": "Only receive direct messages from members" diff --git a/Qwilight/MSG/GetSignUpCipher.cs b/Qwilight/MSG/GetSignUpCipher.cs index 2e36586..10460fa 100644 --- a/Qwilight/MSG/GetSignUpCipher.cs +++ b/Qwilight/MSG/GetSignUpCipher.cs @@ -2,7 +2,7 @@ namespace Qwilight.MSG { - public sealed class GetSignUpCipher : RequestMessage<(string, string)> + public sealed class GetEnrollCipher : RequestMessage<(string, string)> { } } \ No newline at end of file diff --git a/Qwilight/MSG/InitSignUpCipher.cs b/Qwilight/MSG/InitSignUpCipher.cs index 86a6fbe..f90e4c7 100644 --- a/Qwilight/MSG/InitSignUpCipher.cs +++ b/Qwilight/MSG/InitSignUpCipher.cs @@ -1,6 +1,6 @@ namespace Qwilight.MSG { - public sealed class InitSignUpCipher + public sealed class InitEnrollCipher { } } \ No newline at end of file diff --git a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs index 34b89d8..fa97564 100644 --- a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs +++ b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs @@ -230,6 +230,7 @@ public string EditorConfigureFault { get; set; } public string EditorContents { get; set; } public string EditorSoftwareFault { get; set; } + public string Enroll { get; set; } public string EnterAutoComputeConfigure { get; set; } public string EnterAutoComputeMediaInputConfigure { get; set; } public string EnterAutoComputeUIConfigure { get; set; } @@ -766,7 +767,6 @@ public string SetTotalText { get; set; } public string SFXContents { get; set; } public string SFXText { get; set; } - public string SignUp { get; set; } public string SilentSiteAvatarContents { get; set; } public string SilentSiteCallableContents { get; set; } public string SilentSiteCompetenceContents { get; set; } diff --git a/Qwilight/View/EnrollWindow.xaml b/Qwilight/View/EnrollWindow.xaml new file mode 100644 index 0000000..dac082e --- /dev/null +++ b/Qwilight/View/EnrollWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - -