I am a native English speaker but have lived in a non-English community for about 4 years where I have about intermediate command of the language.
As such, I end up on both sides of the situation fairly regularly. Someone speaks to me in English and makes a mistake, or I make a mistake in my second language.
What I really appreciate when I make a mistake, and what I have come to do, is to work into your response a repetition of what they said, but corrected.
For example, if someone asks
"Do you like onges?"
but pronounces oranges wrong, you can say
"Yeah, I love oranges, they're full of vitamin C!"
and use the correct pronunciation.
Or if they make a grammar mistake:
"Do you has any cats?"
You can say
"Nope, I don't have any cats"
With a bit of practise this can be done really naturally and effectively. To some extent we do repeat what others say during the course of normal conversations in any case. The trick is to do it as naturally as possible and not to emphasise or accentuate your words any differently.
What's really important is that they hear you say it correctly. It's all about exposure. It's not about telling them they made a mistake, it's about giving them immediate feedback. They can do a direct comparison between what they said and what you said. One of my best friends is a speech therapist and she uses this technique a lot with patients who have pronunciation and language issues.
This works really well because it:
- Doesn't disrupt the flow of conversation.
- Gives a correct, natural example of how the mistake can be corrected.
- Provides immediate feedback to the speaker.
- Doesn't draw attention to their mistake.
- Doesn't require any kind of permission and can be used on anyone.
Strangers, kids, anyone you meet without insulting them.
And finally,
Don't be too worried about correcting them. Improvements to language (especially second language and adult learners) is often very slow and incremental. One correction isn't going to make a significant impact on their ability. Language development occurs over long periods of regular language exposure. If you don't correct it, they'll figure it out eventually over time. If you can't work into your response a correct example, don't worry about it! Just enjoy the conversation. You're helping them just by talking to them. The above technique just allows you to naturally aid in this process without being a pain in the arse!