Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My biggest gripe with smart keyboards is that it doesn't work well for multiple languages.

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 came here to say the same thing. I have friends I text in a mixture of English and Portuguese, and just my simple iPhone keyboard drives me nuts. I don't want to have to cycle through the language button on every other word.

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.


> 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.

[0]: http://en.wikipedia.org/wiki/Multilingualism


I completely agree that as software makers, keyboard makers in particular, we have to be understand how prevalent and important multilingualism is. ASCII and the subsequent long road to Unicode is a fantastic example of this western centric bias.

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.


Funny you mentioned Québec when you're in Toronto: I wouldn't be surprised if there were more multilingual people in the GTA as there are in all of Québec.


Most Québecois speak both French and English, but I get what you're saying.

Toronto is so multicultural it doesn't make sense to claim proximity to Quebec as a language bonus.


I meant to suggest that between toronto's multiculturalism and Quebec's bilingualism we had a lot of early users who were multilingual. Sorry if that was unclear.


> 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 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.


I suspect it is more the bias than the technical difficulty. You can you the same techniques used to predict words to predict the language they are in, especially if you limit it to a user-defined set of languages. I would be tempted to try it but I don't speak multiple languages so I would be a terrible test subject.


If think you could experiment with an interface that actually does to solve this problem and does auto detect the language: http://translate.google.com/#auto

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.


And the fix is so simple: just detect when something you're typing makes (some degree) more sense in another one of your frequently used languages and then switch over.

Even just training the markov chain on two language corpuses simultaneously should be able to handle that quite decently already.


> * And the fix is so simple

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.


Not be flippant or anything; but one of the most visceral reactions I get is when someone tells me something is massively complex only because it's something nobody has cared enough about to really look into it.

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.


>from autocorrect accepting words for two languages at the same time

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.


I'm not sure. Imagining the current iOS autocorrect for instance working on french and english at the same time would be a mess. or a mass, or messe, or mers, or messes, or miss, or moss, or Messieurs. And now I feel like playing scrabble.

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.


My comment referred to the typical Markov chain type word prediction, which is the mechanism behind the 'sentence context' you referred to in those custom IMEs.

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.


My cofounder (spaky here) seems to be comment-limited on HN, but here are his thoughts on this:

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 don't really have a favoured solution, as of now, other than not using predictive typing.

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.


We do have English, German French, Spanish, and Italian now actually, but the experience of switching between them could be improved.


This might not work at all but I wonder how it would work if you supplied it with a "mixed" language model. That is, a language model based around a person using multiple languages interchangably on the fly, simultaneously, instead of doing this modal switching stuff that causes so many headaches.


Given it's the name, I understand that one of the main objectives of your keyboard is to save space. However an option to simply stack two or three boards for those who could compromise screen space for multiple languages would be nice.


Switching languages does not work for me well. I type in 3 languages, two of them has accents. I usually type in different language than is set in the keyboard, because I forgot to set it. My phone keyboard (default on galaxy s3) has learned it well, so it is not problem. I have another recomendation:

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.


disclaimer: I haven't used minuum yet, so I do not know if this is already possible.

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.


I find the exact opposite problem on my old WinPhone - since I'm Canadian, I automatically must need the language-switcher button on my keyboard so that I can switch to french. And unlike the letter-keys, there is no autocorrect for this status-toggle. So I accidentally hit the "ENU/FRC" toggle when I meant to hit N and suddenly the autocorrect is turning my words into French.

I haven't written or typed a word of French since high-school.


Would selecting US-English as your language preference fix this?


But then we'd be spelling things like colour incorrectly!


"I automatically must need the language-switcher button on my keyboard so that I can switch to french. [...] 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?


Did you try Kii, Swiftkey or TouchPal X?

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 don't know about Kii (seemed pretty bad long time ago) nor TouchPal X, but although I love SwiftKey, I hate its model.

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.


I haven't tried it, but do answer this. does it support only pre-defined languages? What if my language isn't based on the roman alphabet, but i use them phonetically. Does it support that?


I run Danish, English and Spanish on Swifthkey, and it works very well. As soon as I have typed one or two words, it knows exactly what language I'm typing.


But they're very different languages that share very few words, aren't they? Try speaking a few romanic languages that share a bigger proportion of their words and you'll see where the problem is.


Example root: liber-

Fr: liberté, libertés, libérer...

Sp: libertad, libertades, liberar...

Pt: liberdade, liberdades, liberar...

For a 2-3 word completion choice it's useless.


I regularly type in multiple languages, and SwiftKey has been amazing at this on my Android phone. I can highly recommend it to anyone.


SwiftKey is amazing. Almost reason enough alone to prefer an Android phone over other options.


Not to mention that often, we'll use words in multiple languages in the same text (or email, or note...)


Swype is getting better at this, you can type in English + [language of your choice]. Predictably, its guess become less precise because now it has to choose from a data set twice as large, but one can swap between setups...


Well android's default keyboard learns it pretty well. Not only does it learn words, but also their usage by observing patterns in sentences. One time i had to type a fb comment 3 times because the sending kept failing . On the third time, the keyboard was predicting entire words of the sentence, sometimes even before i wrote a single letter!


They are equally borked for typing names, addresses, text messages, shell commands, numbers...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: