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);
        }
Exemplo n.º 2
0
 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);
 }