At present, Piwik assumes the browser language is a two letter code, following the limitation of the HTTP/1.1 spec which refers to the alpha-2 codes from ISO 639.
We should handle locale specific translations. (Also, we should keep in mind that alpha-3 codes are potentially valid.)
For example, lang/tw.php is currently misnamed ... "tw" is allocated to the Twi language, not Taiwanese. This should be renamed to lang/zh-TW.php (or lang/zh_tw.php or similar). Thus, lang/zh.php might be a "generic", Traditional Chinese translation, while lang/zh-CN.php might be a Simplified Chinese translation.
Sample list of locales: http://www.microsoft.com/globaldev/reference/win2k/setup/localsupport.mspx
Consolidate in #504.