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` キーで設定画面を開くことが出来ます