It is not clear from your question, but I think you mean the following problem: when in plunker demo I type 'fr' to the language and then enter something to suggest box it gets results for 'en' language instead.
This is because you already initialized suggest plugin with default language (en). The function provided to $observe
function is not called right here - it will be called later, after your directive is initialized. So when language is changed you need to re-initialize the suggest plugin.
I'm not sure what is the correct way to do that as I'm not familiar with that plugin, but at least the following change is working - just added re-initialization to the $observe
listener:
attrs.$observe('lang', function(value) {
console.log("lang val " + value);
language = value;
$(element).suggest({lang: language});
});