diff --git a/Assets/Scripts/Clue/Clue.cs b/Assets/Scripts/Clue/Clue.cs index f612c8c95..9e77c6a20 100644 --- a/Assets/Scripts/Clue/Clue.cs +++ b/Assets/Scripts/Clue/Clue.cs @@ -1,3 +1,4 @@ +using AibisDream.Framework; using UnityEngine; public enum ClueType @@ -10,6 +11,8 @@ public abstract class Clue { public string Category { get; set; } public string ClueName { get; set; } + public string YarnNodeName => LocalizationKit.GetL10NParamKey(ClueName); + public string LocaleClueName => LocalizationKit.LocalizeParam(ClueName); public ClueType ClueType { get; protected set; } public Clue(string category, string name) { diff --git a/Assets/Scripts/Clue/ClueManager.cs b/Assets/Scripts/Clue/ClueManager.cs index 9b12d0821..40664ad88 100644 --- a/Assets/Scripts/Clue/ClueManager.cs +++ b/Assets/Scripts/Clue/ClueManager.cs @@ -46,8 +46,7 @@ public class ClueManager : MonoBehaviour public void GeneratePunchTapeWindow(string clueName, string category, string memoryIndex, bool directlyAddToFavorites = false) { - var l10nClueName = LocalizationKit.LocalizeParam(clueName); - PunchTape punchTape = new PunchTape(category, l10nClueName, memoryIndex); + PunchTape punchTape = new PunchTape(category, clueName, memoryIndex); if (directlyAddToFavorites) { diff --git a/Assets/Scripts/Clue/PunchTape.cs b/Assets/Scripts/Clue/PunchTape.cs index bd6149a3a..102661e15 100644 --- a/Assets/Scripts/Clue/PunchTape.cs +++ b/Assets/Scripts/Clue/PunchTape.cs @@ -39,7 +39,7 @@ public class PunchTape : Clue if (clueItem.categoryText != null) clueItem.categoryText.text = "分类:" + Category; if (clueItem.nameText != null) { - clueItem.nameText.StringReference.Arguments = new object[] { ClueName }; + clueItem.nameText.StringReference.Arguments = new object[] { LocaleClueName }; clueItem.nameText.RefreshString(); } } diff --git a/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs b/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs index 18335430d..57fa6c7c0 100644 --- a/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs +++ b/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs @@ -292,7 +292,7 @@ public class MemoryProcess : MonoBehaviour // Set material properties MemoryClarityVloume.weight=0; Memoryfrequencyloume.weight=0; - DialogController.Instance.StartDialogNode(clueSlot.punchTape.ClueName); + DialogController.Instance.StartDialogNode(clueSlot.punchTape.YarnNodeName); } } diff --git a/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs b/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs index 3e9903d19..74ca6e54c 100644 --- a/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs +++ b/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs @@ -95,6 +95,12 @@ namespace AibisDream.Framework { return LocalizeParam(param, _paramTable); } + + public static string GetL10NParamKey(string key) + { + // 本地化参数则去除前缀,非本地化参数直接返回 + return key.StartsWith(LocalizationPrefix) ? key[LocalizationPrefix.Length..] : key; + } } public class LocalizationTable