Поддержу идею использования Accept-Language.
Вдруг я турист в Китае, но по китайски не шпрехаю. А агент мой на русском. Ну и грузите мне контент на языке моего агента.
Но, дабы дать человеку выбор, могу предложить вытащить диапазоны ip-адресов для каждой требуемой страны и подгружать соответствующий языковой пакет при определении ip-адреса клиента. В иных случаях - грузить дефолтный языковой пакет.