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