I speak three that uses the english alphabet, and the keyboards get annoying when it starts predicting english words when I'm typing something in a different language altogether.
Most of the time I even disable the dictionary on normal keyboards.
I speak three that uses the english alphabet, and the keyboards get annoying when it starts predicting english words when I'm typing something in a different language altogether.
Most of the time I even disable the dictionary on normal keyboards.
And I think that's the experience for a lot of people who live in a foreign country, or still have friends from other countries. Languages get mixed all the time.
It is a terrible design flaw, that is primarily due to the fact that a lot of software designers assume that the average person speaks one language; in fact there are more multilingual people than monolingual people in the world (cf first paragraph of [0]).
Ideally, software keyboards would be designed to take that fact into account - a few smart things could be done! But no, a lot of software is designed by upper middle class westerners which tend to only speak a single language, and the designs we have are victims of their creators' biases.
In the meantime, I have 5 different keyboards on my iPhone, and I find texting extremely painful.
The Minuum team includes a number of multilingual people; I mix french and english on a daily basis, others on the team speak slavic languages regularly. Similarly being based in Toronto, near the bilingual province of Quebec, our friends and family early user network included many multilingual people.
I think that more than almost any other type of software designers, keyboard makers are acutely aware of the importance and the myriad of issues surrounding multilingual support. We've known since very early on that language support is a major factor that will eventually make or break us.
For us, each new language actually brings a surprising number of exciting new technical challenges. Hopefully we'll be able to gain insights from the process and find those "few smart things" that can be done to get you from 5 keyboards to 1.
Toronto is so multicultural it doesn't make sense to claim proximity to Quebec as a language bonus.
In countries where people have to deal with two or more system on a daily basis (i.e: any country that is not on ASCII like alphabet) there is no such assumption, but there is still no very good solution for this problem after decades of trying.
I don't think it's laziness or short-sighness that impedes progress. We might need a big breakthrough in some field or disrupting idea to have thing move faster.
Once a language is detected it won't reevaluate the input, so you have to paste whole sentences in it. The implementation really goes above and beyond to guess the input, I think that's what you and other mean by matching several languages at ounce. For instance "J'aime pas la philosophie du 'just do it'" will translate both french and english parts at the same time.
The thing is, 'just do it' is a ready made english sentence, but you could autocorrect it to 'juste doit' or 'jus doit', both of which are valid single words in french. There's no way to know what you really meant on the autocorrection front (we have to assume you made a mistake to suggest something), and you'll need an interface constantly suggesting correction that you'll dismiss 99% of the time. This feels like hell in a popup to me.
Even just training the markov chain on two language corpuses simultaneously should be able to handle that quite decently already.
Not to be flippant or anything. I think these words that can cause the most visceral reaction in engineering when uttered by clients or 'idea' people. There can be a very huge gap between something simple to put in words, and a concept that is actually simple (both in the easy to understand, and in the low technical complexity sense).
For the point at hand, detecting which words belong to what language is an insanely difficult problem. Even excluding words that are purely invented but still make sense (like a new fad, a technical world, proper nouns, abbreviations, short hands etc.). Even within a single language you'll still have a hard time coming up with heuristics about what the user is typing 80% of the time (my personal experience with IMEs), especially when the user makes awful typos all the time.
Up until now, the best system I've ever seen is to use a dedicated switching button on your keyboard to switch between the language contexts. Japanese mac keyboard's 'eiji' and 'kana' buttons are really good for that, a lot better than the Control+Shift kind of pattern mainly used in linux distros for instance. It's fast, fool proof, very simple to understand from the user POV, and the input system is always focused on one kind of input only. But it translates very badly to touch screens I guess.
I have a near 50/50 split between two languages in my day to day usage and I would already derive massive benefit from some very small tweaks, ranging from autocorrect accepting words for two languages at the same time to, like I mentioned, just offering prediction with a Markov model trained on two languages simultaneously.
These are fixes that are very easy to implement and would offer a significant benefit, yet they aren't being implemented because the developers just don't care enough.
I agree this. This is so important and so easy. I have basically gotten used to those red markers to the point I barely notice them anymore. It is easier to ignore them than to change language every time.
And most IMEs already work with several languages in a way, since they use the sentence context coupled with a system and user dictionary that contains the most common and some set of arbitrary words from any language you want/use regularly enough to have the IME remember the words.
What I described is basically taking that mechanism and baking it into the standard OS without all the custom personalization options the IMEs offer and just offer a ready to use "English + OtherLang" option.
I don't think iOS does anything like that, but there you can still reduce the threshold at which you'll auto-correct and get a significant improvement.
Just goes to show that on all platforms there are still plenty of trade-offs to be explored.
I completely agree. I speak two languages regularly (English/French) and I also find it to be a pain point.
It's something that I hope we can address over time with Minuum. Certainly the first step will be making it really fast and painless to switch languages.
We've also considered having a quick way to disable auto-correction/disambiguation on the fly.
Do you have a favoured solution? Sounds like maybe simultaneous language support doesn't quite cut it for you.
I can see that Minuum works well using Bayes to predict a certain english word given the user input.
If you guys generate/use a language model for other languages that would give us around the same accuracy/prior probability as the english model, then I think it shouldn't be a problem.
Having quick settings and options that you can setup and choose which languages to include in the prior probability.
Being able to quickly turn off/turn a language, add/remove languages to the priori, etc.
I speak a few languages and often use words from other languages with SMSs etc. I'd estimate 90-95% of being english with other words thrown in between.
If I analyse my message history I will most likely find that I use less than 100-150 words from the other languages pretty often.
So, if there is a feature to quick way to disable auto-correction/disambiguation on the fly like you mentioned with an added feature to automatically add words that I use when auto-correct is turned off to a dictionary, my need to turn auto-correct off would decrease quite rapidly, to the point where I may not need it at all.
Let user to check which languages he is using (somewhere in settings) and then allow him to use them as he wish. Mix all selected languages into one, previous (or two previous word) should be enough to predict correct next word.
I haven't written or typed a word of French since high-school.
So, which is it? Should I read "must need" as "Microsoft assumes I need two layouts?" Isn't is possible to disable the French keyboard on the phone?
They all allow to mix multiple languages and are pretty awesome virtual keyboards. Using them with two or more languages at the same time is a very smooth experience. Couldn't imagine to go back to a single language keyboard.
A quick overview:
- Swiftkey has probably the best prediction capabilities and with its cloud sync it has many advanced features.
- Touchpad is very close to swiftkey
- Kii is the keyboard with the most configuration possibilities. You can change really everything with this keyboard, from the size of the buttons over padding, click sounds, prediction behaviors to gestures and many, many more. It's definitely the most powerful and fastest keyboard. On par with swiftkey except the cloud sync feature. Once you you set it up to your needs your type as fast as with a blackberry either with one hand (by swiping) or with two hands (by tapping). But again swiftkey and touchpad are very powerful too and at the end it's a matter of taste.
Swype is still quite popular but doesn't have good multi language support and the experience is not that smooth compared to the other ones.
I'm almost positive they use an n-gram Markov model, which is pretty cool. But, and the big but (might be wrong but it's my feeling) is that they share the model across languages.
I suspect so because I normally keep English/Spanish on and switch between Portuguese and French, and even when I'm writing Spanish in E/S/F mode I get Portuguese suggestions (because of identical and very similar words to Spanish).
No, you should be way, way stricter to tell languages apart and use different models for each one, probably using another model to adjust the probability of each language.
Example annoyance: After I type 3 words in Spanish that happen to be 2 words in Portuguese and 1 in English, I certainly don't want the English suggestion, even if I use that word more frequently in English.
Fr: liberté, libertés, libérer...
Sp: libertad, libertades, liberar...
Pt: liberdade, liberdades, liberar...
For a 2-3 word completion choice it's useless.