We are rebuilding our travel site to have both en-US and en versions, storing the language/region code in the url as a subfolder. Eg:
www.domain.com/africa/botswana (hreflang="x-default") www.domain.com/en/africa/botswana (hreflang="en") www.domain.com/en-US/africa/botswana (hreflang="en-US")
All pages will be available in all three versions. A visitor landing on the x-default url will have their origin detected via geoip and be redirected to one of the language/region-specific urls.
We plan on offering a site selector (flag dropdown) on each page to let a visitor override the detected origin - this will drop a cookie to remember the preference.
When a visitor does land on a non-specific url and is redirected, should this be a permanent (301) or temporary (302) redirect?