To your first issue, it only shows it once as you only told it to trigger once.
Scanning it all every tick is basically rereading everything on a 'find'.
I tried to condition it, but it will always add another 'I' due to the rescanning.
You would probably do better trying to read and store each word separately, (in an array for example) so then you would know which words you processed and which ones you didn't.
Using find likely won't work. "I went to the zoo to see the zoo keeper" would not see the second 'to', the second 'the' or the second 'zoo', so your process would fail.
Storing as an array, you could keep track of each word, and the associated translation.
EG: You could have an array that has the word and true/false if you've translated it.
Finally, I'd also suggest something like a JSON table or database to do your lookups, it would be a lot easier to maintain. Making the table online would mean you could update the words without having to make a new release.
Hope that helps?