Maybe introduce base class sth like this:
```
abstract class MenuCommandsBase : ITranslate
{
 string   Name; //for translation category
        public void Translate()
        {
            Translator.Translate(this, Settings.CurrentTranslation);
        }

        public virtual void AddTranslationItems(Translation translation)
        {
            TranslationUtl.AddTranslationItemsFromFields(Name, this, translation);
			TranslationUtl.AddTranslationItemsFromList(Name, translation, GetMenuCommandsForTanslation());
        }

        public virtual void TranslateItems(Translation translation)
        {
            TranslationUtl.TranslateItemsFromFields(Name, this, translation);
			TranslationUtl.TranslateItemsFromList(Name, translation, GetMenuCommandsForTanslation());
        }
		
		protected abstrac IEnumerable<MenuCommand> GetAllMenuCommands(); //override and return all commands created by extending class
		
		private IEnumerable<Tuple<string, object>> GetMenuCommandsForTanslation()
		{
			return GetAllMenuCommands().Select(menu => new Tuple<string, object>(menu.Name, menu));
		}
		
  
  
}
```