For the love of all that's holy, never ever ever use the user's IP address to determine their locale, language preferences or anything similar. It works for the majority of the users and is an absolute nightmare for the rest. Can't even begin to count the times a site has thought I'm from some random country and then switched languages, leaving me to look for the language picker that's hidden somewhere in the page footer. Don't do that.
Indeed. I'm on Starlink and am constantly running into issues with this. My egress IP changes every so often from Denver to Salt Lake, occasionally Seattle, but even when static seems to be routinely misclassified. Some websites (most frustratingly GOG) will suddenly think I'm in Canada. Most of the time that's fine, but not when buying stuff. It's ludicrous (and has to be illegal) to force me to pay Canadian taxes, international shipping, and incur an exchange rate fee from the banks when I'm livingin in the US and buying a US product from a US company. It's pretty wild that I have to set up a VPN to fix geolocation so it's more accurate. There are also constant annoyances like Chromecasts and sometimes Android pohones randomly showing Seattle or Denver weather, random geo-locked things (like streaming services telling me the show I'm watching is no longer available in my region, even though it is) and others. So yeah, "nightmare" is not a huge exaggeration.
I once had to solve a captcha in a foreign language because of that. Wasn't something obvious like motorcycles either, it was something like "click on all hamsters" in a grid full of various rodents.