If I'm calling the URL [http://example.com/piwik/index.php?module=CoreAdminHome&action=optOut&language=tw] a page with Language file 'tw' not found. is shown and some links to piwik are shown. This breaks usability and the integrated user interface. As I'm integrating with Drupal, I have no clue what languages Piwik supports. Drupal supports any language.
I do not like to add any static conditions to the Piwik module code just to make this working at all times and fallback to English if Piwik have no support for a language.
Please make a fallback to English if the language is not found in Piwik.
You can call the API http://demo.piwik.org/index.php?module=API&method=LanguagesManager.getAvailableLanguages to get the list of supported languages.
I agree that because "opt-out" is public on the website, it would make sense in this case to catch the exception and use english instead.
(In ) refs #2960
Instead of the hardcoded "en", the "fallback language" is default_language in config/global.ini.php.
I'll add some unit tests later.
Tests would be nice to have for sure :)
otherwise looks good to me!