1. Как эффективнее хранить эти локализационные массивы: в файлах php и подключать (include_once) определенный файл в зависимости от языка или в json с применением memcache и выбирать нужный?
По моему БД MySQL удобнее всего в данном случае.
2. Как определить системный язык пользователя (причем независимо от операционки)?
Насколько я знаю — никак. Обычно на сайтах какойто язык стоит стандартно, а можно переключится на другие.
3. Возможно есть более эффективный подход?
Если писать с нуля, то эффективнее не знаю, если на Zend Framework, то там специальные классы уже разработаны.