public override bool Patch(StringResource stringTable) { var table = stringTable.ToArray(); foreach (var entry in stringTable) { ushort stringId = entry.Id; string s = entry.String; if (StringsScraper.IsNormalString(s)) { string id = StringsScraper.GetResId(entry); if (Translation.TryGetValue(id, out string translation)) { stringTable[stringId] = translation; } } } return(true); }
private bool PatchMenuItems(IReadOnlyList <IMenuBaseTemplateItem> menuItems) { foreach (var menuItem in menuItems) { if (StringsScraper.IsNormalString(menuItem.MenuString)) { string id = StringsScraper.GetResId(menuItem); if (Translation.TryGetValue(id, out string translation)) { menuItem.MenuString = translation; } } if (menuItem is IMenuBaseTemplateItemPopup popup) { if (!PatchMenuItems(popup.MenuItems)) { return(false); } } } return(true); }
private bool PatchInternal(IDialogBaseTemplate dialog) { if (StringsScraper.IsNormalString(dialog.Caption)) { string id = StringsScraper.GetResId(dialog); if (Translation.TryGetValue(id, out string translation)) { dialog.Caption = translation; } } foreach (var control in dialog.Controls) { if (StringsScraper.IsNormalString(control.CaptionId.Name)) { string id = StringsScraper.GetResId(control); if (Translation.TryGetValue(id, out string translation)) { control.CaptionId = translation; } } } return(true); }