--- a/includes/language.inc	2012-05-16 11:43:49.000000000 -0400
+++ a/includes/language.inc	2012-05-16 11:45:23.000000000 -0400
@@ -74,6 +74,9 @@
   $browser_langs = array();
 
   if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+    $browser_languages = array('zh-tw',   'zh-cn');
+    $drupal_languages  = array('zh-hant', 'zh-hans');
+    $_SERVER['HTTP_ACCEPT_LANGUAGE'] = str_replace($browser_languages, $drupal_languages, strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']));
     $browser_accept = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
     for ($i = 0; $i < count($browser_accept); $i++) {
       // The language part is either a code or a code with a quality.
