From 8ea91eb72b04bf143ec7dee8ca3da97455f593ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=82=BA=E3=82=BF=E3=82=B1?= Date: Wed, 13 Apr 2022 02:42:01 +0900 Subject: [PATCH] =?UTF-8?q?UX=E5=90=91=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bootstrapper.cs | 1 - JapanesePatcher.cs | 15 +++++++++++++-- README.md | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Bootstrapper.cs b/Bootstrapper.cs index 3b4ed6b..a7e6501 100644 --- a/Bootstrapper.cs +++ b/Bootstrapper.cs @@ -48,7 +48,6 @@ internal void Update() return; ForcePatching = true; Start(); - ForcePatching = false; } } } diff --git a/JapanesePatcher.cs b/JapanesePatcher.cs index 3cb3104..a2fcd4f 100644 --- a/JapanesePatcher.cs +++ b/JapanesePatcher.cs @@ -15,10 +15,12 @@ namespace ckjp { public class JapanesePatcher : MonoBehaviour { + private static ConfigEntry _isFirstRun; private static ConfigEntry _isIgnoreItemName; internal static void Setup() { + _isFirstRun = BepInExLoader.Inst.Config.Bind("General", "IsFirstRun", true, "初回起動を認識するためのオプションです。有効(true)にすると1回だけ強制的に日本語に切り替わります"); _isIgnoreItemName = BepInExLoader.Inst.Config.Bind("General", "IsIgnoreItemName", false, "アイテム名を日本語化しないようにします。変更後の適用にはゲームの再起動が必要です"); BepInExLoader.Inst.Log.LogMessage("Japanese Patcher Injected."); ClassInjector.RegisterTypeInIl2Cpp(); @@ -68,7 +70,6 @@ internal void Start() sr.Close(); st.Close(); - BepInExLoader.Inst.Log.LogMessage(">>>>>>> Waiting for localization manager <<<<<<<<<<<"); if (I2.Loc.LocalizationManager.Sources.Count == 0) I2.Loc.LocalizationManager.UpdateSources(); @@ -95,7 +96,15 @@ internal void Start() jaLang.Flags = 0; I2.Loc.LocalizationManager.Sources[0].UpdateDictionary(); - if (!Bootstrapper.Instance.ForcePatching) + if (_isFirstRun.Value) + { + BepInExLoader.Inst.Log.LogMessage(">>>>>>> 初回起動のため強制的に日本語にします <<<<<<<<<<<"); + _isFirstRun.SetSerializedValue(false.ToString()); + I2.Loc.LocalizationManager.CurrentLanguage = "japanese"; + Bootstrapper.Instance.ForcePatching = true; + } + + if (Bootstrapper.Instance.ForcePatching) { var texts = FindObjectsOfType(); foreach (var text in texts) @@ -103,8 +112,10 @@ internal void Start() if (text.localize) text.Render(false); } + Bootstrapper.Instance.ForcePatching = false; } + BepInExLoader.Inst.Log.LogMessage(">>>>>>> Finished japanese patch <<<<<<<<<<<"); Destroy(gameObject); } diff --git a/README.md b/README.md index d4fcd22..4bfa924 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ 3. `ckjp-all.zip` をインストールフォルダ内に解凍します。 **Core Keeperフォルダ内にさらにフォルダを作らないように注意してください。例えば、`Core Keeper` フォルダ内に `ckjp-all` フォルダが作られて、その中に解凍されている場合、正しくありません。以下の画像と同じになるようにしてください** ![SS](img/explorer_7tgBzy59mR.png) 4. ゲームを起動します。 **初回起動には1~2分ほど時間がかかります** -5. ゲームが起動したら、 `SETTINGS` を閲覧し、 `LANGUAGES` を何度かクリックしてみてください。日本語の項目が出現するはずです。 +5. ゲームが起動し、日本語化されていれば完了です # 設定 [BepInEx ConfigManager](https://github.com/sinai-dev/BepInExConfigManager) を別途利用することでゲーム内から `F5` キーで設定画面を開くことが出来ます