Merge branch 'cassidy'
This commit is contained in:
commit
982ddf3c84
6 changed files with 98 additions and 36 deletions
|
|
@ -147,11 +147,11 @@ namespace PvZ_Fusion_Translator__BepInEx_.AssetStore
|
||||||
// Regex-based dynamic translation
|
// Regex-based dynamic translation
|
||||||
foreach (var entry in translationStringRegex)
|
foreach (var entry in translationStringRegex)
|
||||||
{
|
{
|
||||||
var regex = new Regex(entry.Key);
|
if (TestRegex(originalText, entry.Key))
|
||||||
if (regex.IsMatch(originalText))
|
|
||||||
{
|
{
|
||||||
// Extract dynamic parts from the original text
|
// Extract dynamic parts from the original text
|
||||||
var match = regex.Match(originalText);
|
var regex = new Regex(entry.Key);
|
||||||
|
var match = regex.Match(originalText);
|
||||||
int groupCount = match.Groups.Count;
|
int groupCount = match.Groups.Count;
|
||||||
|
|
||||||
if (isLog)
|
if (isLog)
|
||||||
|
|
@ -180,7 +180,12 @@ namespace PvZ_Fusion_Translator__BepInEx_.AssetStore
|
||||||
return originalText;
|
return originalText;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static TextAlignmentOptions TextAnchorToTMPAlignment(TextAnchor anchor)
|
private static bool TestRegex(string originalText, string pattern)
|
||||||
|
{
|
||||||
|
return Regex.IsMatch(originalText, pattern);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TextAlignmentOptions TextAnchorToTMPAlignment(TextAnchor anchor)
|
||||||
{
|
{
|
||||||
return anchor switch
|
return anchor switch
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -47,5 +47,31 @@ namespace PvZ_Fusion_Translator__BepInEx_.Patches.Managers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(nameof(InGameUI.Update))]
|
||||||
|
[HarmonyPostfix]
|
||||||
|
private static void Update(InGameUI __instance)
|
||||||
|
{
|
||||||
|
foreach(TextMeshProUGUI txt in __instance.ShovelBank.GetComponentsInChildren<TextMeshProUGUI>())
|
||||||
|
{
|
||||||
|
txt.text = StringStore.TranslateText(txt.text);
|
||||||
|
txt.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(InGameUI_IZ))]
|
||||||
|
public static class InGameUI_IZ_Patch
|
||||||
|
{
|
||||||
|
[HarmonyPatch(nameof(InGameUI_IZ.Update))]
|
||||||
|
[HarmonyPostfix]
|
||||||
|
private static void Update(InGameUI_IZ __instance)
|
||||||
|
{
|
||||||
|
foreach (TextMeshProUGUI txt in __instance.shovel.GetComponentsInChildren<TextMeshProUGUI>())
|
||||||
|
{
|
||||||
|
txt.text = StringStore.TranslateText(txt.text);
|
||||||
|
txt.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -402,7 +402,7 @@ namespace PvZ_Fusion_Translator__BepInEx_
|
||||||
// Ukrainian,
|
// Ukrainian,
|
||||||
// Slovak,
|
// Slovak,
|
||||||
Polish,
|
Polish,
|
||||||
Hungarian,
|
Turkish,
|
||||||
Arabic,
|
Arabic,
|
||||||
|
|
||||||
LANG_END
|
LANG_END
|
||||||
|
|
|
||||||
|
|
@ -145,10 +145,10 @@ namespace PvZ_Fusion_Translator.AssetStore
|
||||||
// Regex-based dynamic translation
|
// Regex-based dynamic translation
|
||||||
foreach (var entry in translationStringRegex)
|
foreach (var entry in translationStringRegex)
|
||||||
{
|
{
|
||||||
var regex = new Regex(entry.Key);
|
if (TestRegex(originalText, entry.Key))
|
||||||
if (regex.IsMatch(originalText))
|
|
||||||
{
|
{
|
||||||
// Extract dynamic parts from the original text
|
// Extract dynamic parts from the original text
|
||||||
|
var regex = new Regex(entry.Key);
|
||||||
var match = regex.Match(originalText);
|
var match = regex.Match(originalText);
|
||||||
int groupCount = match.Groups.Count;
|
int groupCount = match.Groups.Count;
|
||||||
|
|
||||||
|
|
@ -178,6 +178,11 @@ namespace PvZ_Fusion_Translator.AssetStore
|
||||||
return originalText;
|
return originalText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool TestRegex(string originalText, string pattern)
|
||||||
|
{
|
||||||
|
return Regex.IsMatch(originalText, pattern);
|
||||||
|
}
|
||||||
|
|
||||||
private static TextAlignmentOptions TextAnchorToTMPAlignment(TextAnchor anchor)
|
private static TextAlignmentOptions TextAnchorToTMPAlignment(TextAnchor anchor)
|
||||||
{
|
{
|
||||||
return anchor switch
|
return anchor switch
|
||||||
|
|
|
||||||
|
|
@ -8,45 +8,71 @@ using Unity.Collections;
|
||||||
|
|
||||||
namespace PvZ_Fusion_Translator.Patches.Managers
|
namespace PvZ_Fusion_Translator.Patches.Managers
|
||||||
{
|
{
|
||||||
[HarmonyPatch(typeof(InGameUI))]
|
[HarmonyPatch(typeof(InGameUI))]
|
||||||
public static class InGameUI_Patch
|
public static class InGameUI_Patch
|
||||||
{
|
{
|
||||||
[HarmonyPatch(nameof(InGameUI.Start))]
|
[HarmonyPatch(nameof(InGameUI.Start))]
|
||||||
[HarmonyPostfix]
|
[HarmonyPostfix]
|
||||||
private static void Start(InGameUI __instance)
|
private static void Start(InGameUI __instance)
|
||||||
{
|
{
|
||||||
TextMeshProUGUI[] array = new TextMeshProUGUI[]
|
TextMeshProUGUI[] array = new TextMeshProUGUI[]
|
||||||
{
|
{
|
||||||
__instance.transform.GetChild(4).GetComponent<TextMeshProUGUI>(),
|
__instance.transform.GetChild(4).GetComponent<TextMeshProUGUI>(),
|
||||||
__instance.transform.GetChild(4).GetChild(0).GetComponent<TextMeshProUGUI>(),
|
__instance.transform.GetChild(4).GetChild(0).GetComponent<TextMeshProUGUI>(),
|
||||||
__instance.transform.GetChild(5).GetComponent<TextMeshProUGUI>(),
|
__instance.transform.GetChild(5).GetComponent<TextMeshProUGUI>(),
|
||||||
__instance.transform.GetChild(5).GetChild(0).GetComponent<TextMeshProUGUI>(),
|
__instance.transform.GetChild(5).GetChild(0).GetComponent<TextMeshProUGUI>(),
|
||||||
__instance.transform.GetChild(6).GetComponent<TextMeshProUGUI>(),
|
__instance.transform.GetChild(6).GetComponent<TextMeshProUGUI>(),
|
||||||
__instance.transform.GetChild(6).GetChild(0).GetComponent<TextMeshProUGUI>()};
|
__instance.transform.GetChild(6).GetChild(0).GetComponent<TextMeshProUGUI>()};
|
||||||
TextMeshProUGUI[] array2 = array;
|
TextMeshProUGUI[] array2 = array;
|
||||||
for (int i = 0; i < array2.Length; i++)
|
for (int i = 0; i < array2.Length; i++)
|
||||||
{
|
{
|
||||||
array2[i].text = array2[i].text.Replace("\n", " ");
|
array2[i].text = array2[i].text.Replace("\n", " ");
|
||||||
Regex checkFusionChallenge = new Regex("^超级([^\\s:]+)(:?挑战1?)");
|
Regex checkFusionChallenge = new Regex("^超级([^\\s:]+)(:?挑战1?)");
|
||||||
|
|
||||||
if (array2[i].text.Contains("配方:") && !checkFusionChallenge.IsMatch(array2[i].text))
|
if (array2[i].text.Contains("配方:") && !checkFusionChallenge.IsMatch(array2[i].text))
|
||||||
{
|
{
|
||||||
string[] lines = array2[i].text.Split(":");
|
string[] lines = array2[i].text.Split(":");
|
||||||
lines[1] = Utils.GetPlantNameFromAlmanac(lines[1]);
|
lines[1] = Utils.GetPlantNameFromAlmanac(lines[1]);
|
||||||
if (lines[1] == "")
|
if (lines[1] == "")
|
||||||
{
|
{
|
||||||
Log.LogError("Couldn't find plant! (Fusion Showcase)");
|
Log.LogError("Couldn't find plant! (Fusion Showcase)");
|
||||||
lines[1] = StringStore.TranslateText(lines[1]);
|
lines[1] = StringStore.TranslateText(lines[1]);
|
||||||
}
|
}
|
||||||
array2[i].text = StringStore.TranslateText("配方:") + lines[1];
|
array2[i].text = StringStore.TranslateText("配方:") + lines[1];
|
||||||
array2[i].autoSizeTextContainer = true;
|
array2[i].autoSizeTextContainer = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
array2[i] = StringStore.TranslateText(array2[i]);
|
array2[i] = StringStore.TranslateText(array2[i]);
|
||||||
array2[i].text = array2[i].text.Replace("\n", " ");
|
array2[i].text = array2[i].text.Replace("\n", " ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
[HarmonyPatch(nameof(InGameUI.Update))]
|
||||||
|
[HarmonyPostfix]
|
||||||
|
private static void Update(InGameUI __instance)
|
||||||
|
{
|
||||||
|
foreach (TextMeshProUGUI txt in __instance.ShovelBank.GetComponentsInChildren<TextMeshProUGUI>())
|
||||||
|
{
|
||||||
|
txt.text = StringStore.TranslateText(txt.text);
|
||||||
|
txt.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(InGameUI_IZ))]
|
||||||
|
public static class InGameUI_IZ_Patch
|
||||||
|
{
|
||||||
|
[HarmonyPatch(nameof(InGameUI_IZ.Update))]
|
||||||
|
[HarmonyPostfix]
|
||||||
|
private static void Update(InGameUI_IZ __instance)
|
||||||
|
{
|
||||||
|
foreach (TextMeshProUGUI txt in __instance.shovel.GetComponentsInChildren<TextMeshProUGUI>())
|
||||||
|
{
|
||||||
|
txt.text = StringStore.TranslateText(txt.text);
|
||||||
|
txt.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -351,7 +351,7 @@ namespace PvZ_Fusion_Translator
|
||||||
// Ukrainian,
|
// Ukrainian,
|
||||||
// Slovak,
|
// Slovak,
|
||||||
Polish,
|
Polish,
|
||||||
Hungarian,
|
Turkish,
|
||||||
Arabic,
|
Arabic,
|
||||||
|
|
||||||
LANG_END
|
LANG_END
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue