How do you make characters sound like non-native English speakers without using any grammar error in their dialogues? I don't want to make people uncomfortable by having a character speak like an idiot of some sort like they did during the 18th century.
Colloquial, Archaic, big, and non-English insertions:
To give the feel that a character is fluent in English, but not a native speaker, you need to make them flow differently than the flow of an English speaker while not actually using any inappropriate language.
- Colloquial: Make the character's speech sound like a regional accent. Use odd turns of phrase, like "The words are in the realm of it." While not violating any actual English rules, it isn't standard use, and shows that the character is thinking in different patterns. Think about how an Australian accent sounds to American ears, and make something that sounds similar but not identical.
- Archaic: Like it or not, using old words and phrases makes a person look like they learned English from reading Pride and Prejudice. It doesn't have to be extreme. like the 18th century. Think about how people spoke in the 1930's or 40's. But language found in romance novels has a distinct ring to it. "My dearest Clara. My heart pines for you and my breath aches knowing I don't share it with you."
- Inappropriately formal: You can have your character use "$20" words when everyone else is using simple language and taking shortcuts with speech. It gives the impression of a well-educated person who learned English in school, not on the streets. I mean, "Matriculated his English linguistics as a function of a formal educational system, versus a random assignation of babble."
- Non-English insertions: When the character gets mad, they curse in their native language. When happy, they make exclamations of joy in their tongue. A few repeated phrases that are reasonably self-explanatory but not in English make it clear the person spoke another language first. Das is Gut? Wunderbar!
I actually feel that "non-native english speaker" is too narrow as a category here. Rather the question should always be, how would a native speaker of X speak English? At a high enough level, most of the peculiarities in someone's speaking are not because they lack a good enough knowledge of English, but because things are simply done differently in their specific native language and that tends to bleed over.
It of course helps to know that language a bit, but even if you don't, just try to look at enough examples and figure out why someone's English sounds like the english of a native French or German speaker for example. A few things that come to mind:
Idioms: This is probably the quickest way to match your requirements. Every language has a different set of idioms for the same thing. Their meaning is generally easy enough to understand, they can be translated grammatically correct, but they immediately sound out of place and foreign. (E.g.: I am telling you that this gives you a foreign sound for an apple and an egg.)
Distinction between concepts: Translation is rarely one-to-one. A single English word might have three different translations, depending on the context or the other way round. In the latter direction, this can lead to people using incorrect words or simply confusing them (E.g. I have no idea about the difference between turtles and tortoises, because both use the same word in my native language). In the other direction, it can lead to overly complicated vocabulary in an attempt to keep the distinction. (E.g. "to know" can mean "to understand", "to be acquainted with" or "to be able to do". In most languages there is no single verb which covers all of these meanings, so someone might always say "I understand this", instead of "I know this", even if it sounds a bit too formal)
Common words: When learning a language, perhaps the most tedious task is learning the vocabulary. But there are almost always some words which are easier to learn because they have a common root. As a result, these tend to be more likely used and remembered, even if they are technically not the most common translation for something. Perhaps the biggest example are words originally derived from Latin. Those are often common many European languages. (E.g. even someone with little knowledge of English might talk about coordinating things)
False friends: This borders on the category of grammatical error, but since it is the mirror image of the previous I should probably mention it. There are words that sound the same but mean different things, sometimes even the opposite.
Sentence construction: There is rarely a only single way in any given language to express a specific idea in a grammatically correct way, but between languages these options differ. Furthermore, some of those ways do sound more natural, but these are not always those which overlap, which can lead to people saying things in a less natural way. (E.g. to indicate possession, an English speaker can use "Bob's dog" or "The dog of Bob" depending on what feels more natural in the sentence. In my native German, almost always the equivalent of the first construction is used, while I believe in most romance languages everything is stated in the latter way.)
Systematic grammatical errors: I know these were excluded in the questions with the argument that it makes people sound like idiots. But I would claim that this is not always the case. The point is to use errors that are consistent with the grammar of another language and to properly contrast it with the content of what the character is saying. As perhaps an almost too stereotypical example, take an arbitrary text on a scientific topic and just remove all the articles from it. You'll immediately get a "Russian scientist" kind of feeling from it, because Slavic languages do not have articles, so leaving them out is a common enough mistake to recognize. And it will not feel like this was written by an idiot, but by someone who simply has more important things to do than to perfect their English.
Ask, How Would This Non-Native Speaker Talk
Your character is going to have a specific background, and is going to sound very different from another non-native speaker from a different country who learned from a different source at a different age.
Their Grammar Might Resemble Their Native Language
For example, the speakers of a Romance language might systematically avoid ending a sentence with a preposition or splitting infinitives, since their native language doesn’t, and this often was taught in schools as bad grammar in English, too. In reality, it sounds unidiomatic not to, like you’re imitating old books written in overly-formal language. Or, Russians might typically omit definite and indefinite articles, maybe falling back on demonstratives some of the time, because that’s how their own native language works.
This might be getting more into grammatical errors, but many other languages might distinguish more regularly between things English lumps together, so if they get the idea that “I am verbing” is how you express the progressive aspect in English, “I used to” corresponds to the imperfect, or “I were” is how you express a hypothetical or counterfactual, they might use these constructions more often than native speakers do, and more like the corresponding constructions in their native language.
It’s also common for people who learned English as a second language outside North America to learn an older form of British English. This isn’t the same as an overly-formal register of American English; there are some very noticeable differences in things like preposition use. Alternatively, if their native country showed a lot of American movies and TV shows subtitled instead of dubbed, they might have picked up their speech patterns from those.
So Might Their Vocabulary
Another common tell is false friends, which often are related to an older meaning of an English word that’s still in the dictionary. This is most familiar to Americans with Spanish-speakers thinking that “molested” still means “worried or bothered,” mixing up assist and attend (We still call them “attendants!”), thinking lagoon has the same meaning as lacuna, or more commonly, being very perplexed by the illogical way we use in and on.
More subtly, English has a lot of Germanic vocabulary and a lot of Romance vocabulary, of which the native Germanic vocabulary is typically less formal. Speakers of a Germanic or Romance languages, or a language with a lot of loanwords from French or German, might naturally fall back on cognates they’re more familiar with. and be influenced by those cognates’ connotations in their own language.
@DWKraus has already written an excellent answer. I simply wish to expand upon his last point: One well-known fact is that when people need to count quickly, they use their native language. Number words throughout most European languages are so close to each other that your readers are likely to understand what's going on if your character speaks English, then quickly counts in another language, before switching back to English.
Secondly, to expand the 3rd point: You don't have to go so far. A person who doesn't use slang words would already stand out. There are so many words that are unlikely to appear in a dictionary (unless it's specifically a dictionary of slang terms) but are commonly understood by locals. Native English speakers probably know several times as many swear words as even fluent non-native speakers. So you can point out the characters foreign nature not by changing his language, but by putting a bit more effort into the language of other characters (e.g. more variety in slang terms, swear words, etc. while that character uses a much smaller selection).
If this is about spoken rather than written dialogues, there is a point I'd like to add (I am citing from memory a thing I read long ago on the internet, so it's not my idea): Humans are capable of producing a wide variety of sounds; however, every language uses a fairly small set out of them. These sets are different from one language to another, and whoever learns a language tends to replace the sounds of the new language by similar sounds of their own language.
For example, a German "sch" sounds slightly different from an English "sh"; a German "r" sounds quite different from an English "r". The German or English "h" sound is impossible for some French. German uses a glottal stop whenever a syllable appears to start with a vowel; English and French don't.
You'd have to know the language you are insinuating fairly well to make use of such differences.
Here's a revolutionary idea (not): instead of trying to find that impossible line between "noticeably incorrect" and "offensively incorrect", to convey the fact that your character speaks English with an accent, say that. When you introduce the character, describe how their vowels sound sort of Australian, but without the drawl; or that they pronounce words with 'th' so carefully that it's noticeable; or whatever other feature you can come up with. Once you've done this on their first intro, stop doing anything to call out their accent.
I know the usual advice is "show, don't tell", but the way to show sounds in writing is to describe them.
There are various techniques mentioned in the other answers to indicate that English is not a character's first language while avoiding grammatical mistakes, but I would like to challenge the frame of the question. Having your characters make grammatical errors is not necessarily a bad thing, and may even be necessary for an authentic portrayal of the character. However, it needs to be done carefully and accurately.
I speak a few L2s, have taught English to non-native speakers on an amateur basis, and am active in a number of language learning groups, and grammatical "errors" are anywhere from pervasive to occasional in the speech of all but the most proficient non-native speakers. For that matter, they are often more common in the speech of native speakers than is portrayed in most fiction. Even highly competent L2 speakers frequently make small mistakes.
What makes those 18th-century (and more recent) portrayals that you mention so problematic is that they employ eye dialect, alleged stereotypical features of the dialects spoken by particular groups, and overall "bad grammar," which combine to create an effect of disparaging the people thus portrayed. In essence, such portrayals are simply a portrayal of generic or stereotyped "foreign" or "stupid traits." The question seems to ask for ways to make a character sound like a generic "non-native English speaker," which may indicate that there is a risk of falling into some of these traps.
In reality, the way a foreign language speaker actually talks will heavily depend on the other languages that they know, as well as their level of education and experience in the language. For instance:
Prepositional errors are very common in languages that use them. It is common for Spanish-speaking learners of English up to intermediate level to say "depend of" or occasionally "depend from," a calque of the Spanish "depender de." English-speaking learners of Spanish often do the opposite: they may say "depender en" instead of "depender de."
Even more advanced learners can be tripped up by particular grammatical points. For instance, the distinction between preterite and imperfect in Spanish, or between the wa and ga particles in Japanese, though simple in theory, can be extremely subtle in more advanced cases, and most non-native speakers are bound to slip up occasionally.
Basic errors can still slip out occasionally, even if a speaker has great deal of practice. The most advanced speakers tend to notice when they slip up and correct themselves, though!
In other words, don't try to make characters sound like non-native English speakers. Try to make characters sound like the way people from their linguistic and educational background actually talk. If you are not already aware of it, this is likely to require extensive research into how people like your characters tend to learn a language. I strongly recommend having an English language L2 speaker with the same linguistic background and a similar level to the character evaluate how plausible the characters' mistakes are (and the frequency of the mistakes, and the character's reaction to these mistakes).
I also heavily recommend avoiding eye dialect. A word is a word is a word, in Steinian fashion. You would not spell it out phonetically when a speaker of a societally dominant dialect pronounced it, so no need to do it when an ESL speaker pronounces it differently. Needless to say, any speech patterns that you are tempted to put in "for effect" rather than because they are how people actually talk are verboten as well. Any speech in a language that a character speaks with complete ease should be translated by grammatically correct English, too (or not translated at all, if you are feeling ambitious).
One other thing is that a person who speaks English as a foreign language at a communicative level does not sound unintelligent, even if they may have difficulties expressing themselves in some contexts (and even if they may think that they do). If you are sure that you have gotten a character's speech style correct, and they still come across as less intelligent than the characters who speak English as a first language, it might be worth going back and making sure that you really have gotten their speech right.
Now, you can choose to have all your characters speak as if they have been learning English for decades and never slip up, in much the same way that most native speakers in fiction speak in flawless sentences 95% of the time or more, insofar as there is often no plot-based reason to indicate that a character is not a native speaker. It is certainly preferable to do this rather than trying to accurately portray the speech patterns of a character from a particular background and failing.
But it is potentially even better to get it right. If even the characters who have been learning English for mere months have no grammatical or lexical influences from their other languages, and they all speak English like Queen Elizabeth II, you risk simply not representing a whole group of L2 learners accurately. If you do put in the effort to accurately portray a particular ESL dialect, and you get it right, you are unlikely to cause offense, because L2 speakers of that variety will recognize the speaking style as accurate to their own. However, do make sure that the character's grammar and lexicon, besides being appropriate to their linguistic background, are also appropriate to their level. No one will find it amusing when your Hercule Poirot sprinkles extraneous articles everywhere when they have been learning English for decades.
Good answers already on changing words or language used but one thing I would add is a few minor hiccups with the flow of the conversation. Occasionally have the character hesitate a bit or stumble in coming up with the right word or phrase.
"I saw him run into the apo ... no, I mean pharmacy. He ran into the pharmacy."
And just once or twice, have them ask the meaning of a slang term that another person says, or misinterpret it.
Sorry, you said "yada-yada" ... I don't get that.
This is not really entirely in line with most answers, but it may be helpful anyway.
Any non-native speaker will know what he or she wants to say, so start by writing the dialog in your own common English.
Find a set of characteristics your characters native language does not have in common with the English language and define them. You may also want to add individual characteristics or characteristics from a particular English era or accent.
Apply the found set on someone else's text. Don't get inventive or artistic. This part is just work. It doesn't matter what the result looks or sounds like, as long as you can manage correctly applying the set. If you don't like the result, create another set by adding or deleting characteristics.
Keep testing and changing characteristics until the result gives you the image of the non-native speaking character you wish to depict.
Fixate the definitions of the resulting list of characteristics and consequently apply them on the dialog of your character.
Stop worrying about making your readers feel uncomfortable. There is only so much you can do to prevent that. You are not doing anyone a favor by overdoing it.
Frame challenge: don't do it.
One of the great joys of reading is that the reader imparts their own spin on what they read, and accents and tone are part of that. Nothing is more frustrating as a reader than to read a passage where the writer adds some sort of not-quite-right language, and it just doesn't sound like what I think the character sounds like.
Instead of giving them an accent, give them a cultural background full of detail, and then let the reader's imagination take it from there.
Features present in the language of some non-native speakers are
- perfect grammar
- excellent accent
- choice of phrases accurately representing the language as it was when they learnt it
Item 3 is the interesting one, they just sound old fashioned. For example an elderly person who learnt, say English, forty to sixty years ago and who developed their vocabulary partly from visits and partly from, say, the BBC radio, will have a dated speech.
It is particularly a feature of British English because the media in the past had a posh accent (and still do to an extent) - "received pronunciation". They would sound familiar to most British people of the same age but would be recognised as outsiders.