The challenge
Well, I think it is quite clear, isn't it? You have to make a function or a program that takes a string as an argument and outputs the corrispondent Yoda-speaking.
This is code-golf, so least number of bytes wins.
The input
The input could be any string without linefeed. You can translate a string if it is composed like this:
Subject + Verb + Something else.
Where Subject is a personal pronoun (I, you, he, she, it, we, they). You don't have to recognize that the second word is a verb.
If the first word isn't a pronoun, the input is valid but the output will be Too difficult, this sentence is.
You have to win this code challenge -> Translatable
Luke has to win this code challenge -> Untranslatable
Input can end with a letter, a . or a !, not with a ?.
Furthermore, strings can contain Non-Ascii, Parenthesis, commas, colons ...
The output
In case of a translatable sentence, the output is the same sentence, with the subject and the verb at the end of the sentence.
You have to win this code challenge -> To win this code challenge, you have.
Comma, period and lower-case on the pronoun are mandatory. (Except, of course, if the pronoun is I).
As stated before, if it is untranslatable you have to output the string Too difficult, this sentence is.
Examples
You have to win this code challenge -> To win this code challenge, you have.
He won this code challenge -> This code challenge, he won. (I know this is not yoda-speaking, but I don’t want to overcomplicate this challenge)
I ate an ice cream earlier! -> An ice cream earlier, I ate.
I liked the Star Wars original trilogy more than the prequel’s one. -> The Star Wars original trilogy more than the prequel’s one, I liked.
I find your lack of faith disturbing -> Your lack of faith disturbing, I find.
I think we are done with the examples -> We are done with examples, I think.
He is your son, Vader -> Your son, Vader, he is.
I think they’ll add new features -> They’ll add new features, I think.
I made a fantastic code challenge (I hope) -> A fantastic code challenge (I hope), I made.
I love constants like π -> Constants like π, I love.
I’ll be the next President, I swear! -> Too difficult, this sentence is.
This challenge is great! -> Too difficult, this sentence is.
Is this challenge great? -> Too difficult, this sentence is.
Luke is not ready for this task -> Too difficult, this sentence is.
Somebody loves constants like π -> Too difficult, this sentence is.
[Empty string] -> Too difficult, this sentence is.
You have to win this code challenge
should beThis code challenge, you have to win
. \$\endgroup\$!
? Is that guaranteed not to happen or should we handle that and print the same thing as when there is no leading pronoun. Can the input contain linefeeds? Apostrophes? Colons/parentheses/backticks? Non-ASCII characters? You say the "the input could be any string", but your test cases only cover very specific types of strings. \$\endgroup\$