Issues in pig latin translator

I'm new to Stack Overflow and coding in general. I'm taking an object oriented programming course and am trying to learn C#. It's my second week in the course and my prof wants me to create a pig latin translator. Unfortunately, he's got some funky requirements that I'm struggling with. The basic Pig Latin part I think I have but I'm struggling with these issues:

  • If a word starts with the letter Y, the Y should be treated as a consonant. If the Y appears anywhere else in the word, it should be treated as a vowel.
  • Keep the case of the original word, whether it’s uppercase (TEST), title case (Test), or lowercase (test).
  • Keep all punctuation at the end of the translated word.
  • Translate words with contractions. For example, can’t should be an’tcay.
  • Don’t translate words that contain numbers or symbols. For example, 123 should be left as 123, and Jim!@# should be left as Jim!@#.

Here is my code so far:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btnTranslate_Click(object sender, EventArgs e)
    {
        String english = txtInput.Text;
        string piglatin = "";
        string firstletter;
        string restofword;
        string vowels = "AEIOUaeiou";                       
        int letterpos;

        foreach (string word in english.Split())
        {
            firstletter = word.Substring(0, 1);
            restofword = word.Substring(1, word.Length - 1);
            letterpos = vowels.IndexOf(firstletter);
            if (english.Contains("1"))
            {
                txtTranslation.Text = english;
                break;
            }
            if (english.StartsWith("y"))
            {
                piglatin = piglatin + " " + restofword + firstletter + "ay";
                txtTranslation.Text = piglatin;
                break;
            }
            if (english.StartsWith("Y"))
            {
                piglatin = piglatin + " " + restofword + firstletter + "ay";
                txtTranslation.Text = piglatin;
                break;
            }

            if (letterpos == -1)
            {
                piglatin = piglatin + " " + restofword + firstletter + "ay";
            }
            else
            {
                piglatin = piglatin + " " + "way";
            }

            txtTranslation.Text = piglatin;
            txtInput.Focus();
        }
    }

    private void btnClear_Click(object sender, EventArgs e)
    {
    }

    private void btnExit_Click(object sender, EventArgs e)
    {
    }

    private void txtInput_TextChanged(object sender, EventArgs e)
    {
    }

    private void txtTranslation_TextChanged(object sender, EventArgs e)
    {
    }
}

In regards to any that contains numbers or symbols or the like, I feel like I could make a lot of if statements that say: if (english.Contains("1"))

txtTranslation.Text = english;
break;

and just do this for 1 -9 but I believe there has to be an easier way. Same thing if symbols are used. I also came up with something similar for handling the letter Y but I believe that isn't necessary the best solution either.

I'm stuck on maintaining the casing of translated words and on keeping punctuation at the end of a translated word.